ext4ファイルシステム構造を包括的に調べる方法は?

ext4ファイルシステム構造を包括的に調べる方法は?

500,000個のファイルを持つ2TBのext4パーティションがあります。
このパーティションにエラーがあるかどうかを確認したいと思います。
不良ブロックを検索したくなく、論理構造だけを確認するだけです。

パーティションをアンマウントして実行しましたが、fsck /dev/sda2実際にファイルシステム全体を確認せずに、fsckはすぐに終了コード0を返します。
完全なパーティション検査が完了するまでに数時間かかることが予想されます。
読みましman fsckたが、「徹底的なテスト」のオプションが見つかりませんでした。

私のパーティションには、一部のセクタが誤ってジャンクデータで上書きされている可能性があるという心配があります。
私のHDDが以前に他のOSに接続されていて、そのOSの誤った動作によりext4パーティションが破損する可能性がありました。
そのため、ツリー構造全体が正確に正しいことを確認したいと思います。

つまり、chkdsk.exeWindowsでユーティリティが実行するのと同様のチェックを実行したいと思います。
Debian で ext4 ファイルシステムを完全にスキャンするには、何を使うべきですか?

答え1

言ったように桂里e2fsck「強制」モードで実行:

e2fsck -f /dev/sda2

これは、システムがファイルシステムがきれいであると思う場合でも、強制的にチェックを実行します。 「Verbose」オプションも便利です。

e2fsck -vf /dev/sda2

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

答え2

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

マニュアルから:

-yyesすべての質問に対する答えは、e2fsck非対話型の使用を許可すると仮定します。

したがって、拡張された回答(まだコメントできないため)@佐藤- 以下を実行できます。

e2fsck -vfy /dev/sda2

答え3

Linuxシステムの起動時に確認システムテーブルforcefsckまたは、デバイスのルートディレクトリに名前付きファイルがある場合。 fstabのマウントラインの最後の番号がある場合は、0起動中にデバイスを確認してください。ファイルを生成するには、forcefsck次のコマンドを使用します。

sudo touch /forcefsck
sudo reboot

このファイルをルートディレクトリに配置すると、fstabの内容に関係なく(再)起動中に同じボリュームを確認します。

欠点は、fsck中にシステムを使用できないことです。いいえたとえば、SSHを介してリモート要求に応答します。

(@kusalanandaのコメントに基づいて編集)

答え4

また、使用することができます2fs調整この目的のために、たとえば、次のコマンドは2ヶ月または100回のインストール後にディスクを確認します。

tune2fs -c 100 -i 2m /dev/sda1

関連情報