ext2はどのように親バージョンと互換性がありますか?

ext2はどのように親バージョンと互換性がありますか?

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を介してインストールできます。

compatrocompatext2/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または類似のコンテンツが印刷されます。

関連情報