web-dev-qa-db-ja.com

ext4ファイルシステム構造の完全なチェックを実行する方法

2TBのext4パーティションに50万個のファイルが入っています。
このパーティションにエラーがないかどうかを確認したい。
不良ブロックを検索したくありません。論理構造のみをチェックする必要があります。

パーティションをアンマウントしてfsck /dev/sda2を実行しましたが、fsckはファイルシステム全体を実際にチェックせずに、終了コード0ですぐに戻ります。
フルパーティションチェックが完了するまでに数時間かかると思います。
man fsckを読みましたが、「完全なテスト」のオプションが見つかりませんでした。

パーティションにいくつかのセクターが誤って不要なデータで上書きされている可能性があります。
私のHDDは以前に別のOSに接続されていましたが、ext4パーティションはそのOSの誤った動作によって害を受ける可能性があります。
これが、ツリー構造全体が完全に正しいことを確認したい理由です。

つまり、Windowsでユーティリティchkdsk.exeが行うのと同じようなチェックを実行したいのです。
ext4ファイルシステムを完全にチェックするには、Debianで何を使用すればよいですか?

27

SatōKatsura で述べたように、e2fsck「強制」モード:

e2fsck -f /dev/sda2

これにより、ファイルシステムがクリーンであるとシステムが判断した場合でも、チェックが強制されます。 「冗長」オプションも役に立ちます。

e2fsck -vf /dev/sda2

補足として、あなたのケースには適用されませんが、ストレージにLVMを使用している場合は、きちんとした小さな lvcheck ツールを使用して、「オフライン」のファイルシステムチェックを実行できます。マウントされたファイルシステム(LVMスナップショットを使用し、チェックでエラーが見つからない場合はファイルシステムのメタデータを更新します)。

28
Stephen Kitt

また、-yフラグを追加して、質問に答えないようにすることもできます。

マニュアルから

-yは、すべての質問に対してyesの回答を想定しています。 e2fsckを非対話的に使用できるようにします。

したがって、(まだコメントできないため) @ Sato から回答を拡張すると、次のように実行できます。

e2fsck -vfy /dev/sda2
7
impalle

これを使用して、読み取り専用モードでライブファイルシステムをチェックすることもできます。

e2fsck -vfn /dev/sda2
0
Attila