ext3とext4について何も知らないオペレーティングシステム(例えば、Linuxの古代バージョン)がext4を読み書きすることができ、すべてのext4ファイルシステムがext2として検出されることをどこかで読みました。
Tux2でtux3またはFAT12が同じことを実行できるかどうかはわかりません。 (FAT64はexFATです)
一体どのようにこれが可能ですか?
具体的にはどうすればいいですか?ext4をext2のように扱えますか?ファイルやメタデータが破損する危険はありませんか?
答え1
これは、ext4ファイルシステムの形式によって大きく異なります。いくつかの新しいext4機能(例えば、extents
または64bit
)は、古いext2ドライバでは認識されず、カーネルはファイルシステムのマウントを拒否します(たとえば、次を参照)。この投稿)。通常、最新の形式を使用し、デフォルトオプションmke2fs
で-t ext4
フォーマットされたすべてのファイルシステムは、いいえ既存のext2ドライバを介してインストールが可能ですが、ファイルシステムを元のフォーマットしてから古くなってext4にアップグレードした場合、可能最新のext4特定の機能を有効にすることなくext2を介してインストールできます。
compat
rocompat
ext2/3/4ファイルシステムは、使用中の機能とincompat
機能フラグを追跡します。これらの機能は通常mke2fs
時間によって設定されますが、時々によって変更されることがありますtune2fs
。不明なcompat
関数が見つかると、カーネルはそれをインストールしますが、何かが間違っている可能性があるため、確認e2fsck
を拒否します。不明な機能が見つかると、rocompat
カーネルはファイルシステムを読み取り専用でマウントできます。不明なincompat
機能があると、ファイルシステムはマウントされません(/var/log/messages
この場合はメッセージが印刷されます)。
debugfs -c -R features <device>
次のように、ダンプファイルシステムで有効になっている機能を使用できます。
# debugfs -c -R features /dev/sdb1
debugfs 1.42.13.wc5 (15-Apr-2016)
/dev/sdb1: catastrophic mode - not reading inode or group bitmaps
Filesystem features: has_journal ext_attr resize_inode dir_index filetype
needs_recovery dirdata sparse_super large_file huge_file uninit_bg dir_nlink
compat
しかし、これはどちらが、またはであるかをrocompat
教えてくれませんincompat
。お客様のバージョンがdebugfs
一部の最新機能を認識していない場合は、類似I0400
または類似のコンテンツが印刷されます。