理由を理解しようとしていますkworker Flashは99%I / Oを使用し、システムからのファイルの書き込みを中断します。、以下を使用してext4データパーティションのロギングを無効にしました。
tune2fs -O ^has_journal /dev/sdg1
再起動後、エントリを介したパーティションの自動マウントは/etc/fstab
失敗します。
# mount /mnt/das.f
mount: /mnt/das.f: wrong fs type, bad option, bad superblock on /dev/sdf1, missing codepage or helper program, or other error.
奇妙な。
私たちのマシンのうち、古いマシンは(古い)ext3としてフォーマットされており、最新のマシンはext4です。この混合により、共通管理スクリプトを使用して、parted
存在する物理パーティションのタイプに基づいてパーティションが自動的に作成されます。/etc/fstab
ただし、ext4パーティションのログを削除すると、parted
ext2として報告されます。他のツールはまだそれをext4として報告します。
どちらが正しいですか?ログを削除すると、ファイルシステムはext4からext2に「変換」されますか、それとも?のparted
バグですか?file
# parted /dev/sdc1 p
Model: Unknown (unknown)
Disk /dev/sdc1: 7580GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 7580GB 7580GB ext2
# file -sL /dev/sdc1
/dev/sdc1: Linux rev 1.0 ext2 filesystem data, UUID=8fde102f-1047-4b3b-83f9-43c40face046 (extents) (large files)
# blkid /dev/sdc1
/dev/sdc1: UUID="8fde102f-1047-4b3b-83f9-43c40face046" TYPE="ext4" PARTUUID="8935788a-939d-4d2c-8495-dc38afc47164"
/etc/fstab
(手動でext4に変更すると、ボリュームがうまくマウントされます...)
マシン: Centos 8.1, 4.18.0-147.el8.x86_64
答え1
コードを見ると、libpartedとlibblkidがextバージョンを検出する方法に違いがあります。バージョンはスーパーブロックではなく、両方のツールがサポートされている機能を使用してバージョンを区別します。
どちらのツールも、ジャーナリングなしでext3についてext2を報告します。これは、2つの違いは基本的にジャーナリングサポートのみであるため、意味があります。
ext4の場合、libblkidは大容量ファイルやファイル形式のサポートなど、ext4固有の機能を確認し、これらの機能がある場合はデバイスをext4として報告します。 Libpartedは同様のチェックを実行しますが、ログがある場合にのみ実行されるため、ログのないすべてのextファイルシステムをext2として報告します。間違いだと言いたいのですが、状況によって違うと思います。
Libblkid拡張スーパーブロックはQRコードをスキャンして使用できます。ここprobe_ext3
ジャーナルのサポートを確認しますが、確認しませんprobe_ext4
。
libparted拡張コードが利用可能ここそして、_ext2_generic_probe
ext3チェックが合格した場合にのみext4をチェックするので、ログのないデバイスはext4を検出しようとしません。