起動時の EXT4 FS チェック: クリーンであると宣言する条件

起動時の EXT4 FS チェック: クリーンであると宣言する条件

1 台のハード ディスクに 4 つの EXT4 ファイル システムがホストされています。これらを A(1,2,3,4) と名付けます。各ファイル システムは fstab にエントリを持ちますが、マウントされることはほとんどなく、ドライブは初期化時に udiskctl によって電源がオフにされることさえあります。

1 台のハード ディスクに 8 つの EXT4 ファイル システムがホストされており、それぞれのファイル システムが fstab にエントリを持ちます。そのうち 4 つ (B(1,2,3,4) とします) は初期化時に自動的にマウントされ、他の 4 つ (C(1,2,3,4) とします) は必要に応じて時々マウントされます。

これらの条件(A(1,2,3,4) がマウントされておらず、関連するドライブの電源がオフ、C(1,2,3,4) ファイルシステムのいずれもマウントされていない)および何らかの理由(電源障害、カーネルパニック、ハードリセットなど)により、システムは正常にシャットダウンされません。
次回の再起動時に、これらのファイルシステムのそれぞれがチェックされます。

異常シャットダウン時にマウントされなかったすべてのファイルシステムはすぐにクリーンであると判断されます。

質問1:この結論はスーパーブロックのs_stateフィールドまたはその他のチェックが行われていますか?

質問2:それは、異常シャットダウンを引き起こした理由、つまり基礎となるドライブに電源が入っていたかどうかによって決まりますか?

質問3:これらのチェックはファイルシステムをマウントするために fsck コマンドを実行しますか?

質問4:これらのクリーンなステータスはコンソールに報告されますが、実際に修復が必要で、最終的にジャーナルから回復するファイル システムのトレースが表示されているのに、カーネル (またはその他の) ログにこれらのレポートが反映されないのはなぜですか。


Linux-5.4 / e2fsck 1.46.5 / の場合オープンRCinitシステムとしてメタログ重要な場合は、syslog デーモンとして機能します。metalog
の最も関連性の高いルール:

Kernel messages :
        facility        = "kern"
        logdir          = "/var/log/kernel"
        break=1
Fallback:
        facility        = "*"
        minimum         = 6
        logdir          = "/var/log/fallback"

答え1

複数の質問をしないでください。

パーティションがmounted されると、ファイルシステム コードはパーティションのブロック割り当てテーブルをメモリにコピーし、ディスクのテーブルを「回復が必要」としてマークします。

ファイルシステム コードは、ディスク速度よりもはるかに高速なメモリ速度でブロック割り当てを管理します。

メモリ内テーブルは、比較的最新の状態に保つため、また一度にすべてのテーブルをメモリ内に保持する必要を回避するために、定期的にディスクに書き戻されます。

パーティションがumounted されると、メモリ内のテーブルがディスクに書き込まれます (「回復が必要」フラグがクリアされます)。メモリ内のテーブルは破棄されます。

システムがクラッシュすると、最新のメモリ内テーブルが失われ、ディスクに「回復が必要」フラグが設定された状態になります。

ファイルシステムがブートに必要であり (/etc/fstabエントリに があるauto)、ディスク上で「回復が必要」フラグが設定されている場合、ファイルシステム固有のfsckが実行され (たとえば、ファイルシステムfsck.ext4の場合ext4)、ファイルシステムが「回復」されます。つまり、ブロック割り当てテーブルが「正しく」なり (データ損失を最小限に抑え、空きブロックも使用済みブロックもないことを確認するなど)、「回復が必要」の間に書き込まれたブロックが保持されます。 はfsck独自のテーブルを構築しているため、ディスクは ed されない可能性がありmount、さらに、 がfsck成功するまでディスクには「回復が必要」フラグが設定されます。

このマウント前のシステムによるfsckアクティビティは、ブート プロセスが実際にメッセージをログに記録できるほど「起動」する前に実行されますが、試してみてくださいdmesg

ありがとう、LustreOne、

マウント時に、e2fsck はジャーナルの「回復が必要」フラグをチェックするとともに、ファイルシステムをマウントするために必要なスーパーブロックとグループ記述子ブロックの基本チェックを実行します。「回復が必要」が設定されている場合は、ジャーナルを再生します。その他のエラーが見つかった場合は、ファイルシステムの完全な e2fsck を実行します。 – LustreOne

関連情報