root@host [/]# fsck -cc /dev/sdb1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
/dev/sdb1: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 11/18317312 files (0.0% non-contiguous), 1198478/73258400 blocks
「ファイル システムが変更されました」と表示されました。だから何ですか? フォーマットしただけです。何か問題がありますか?
答え1
何も見つからなかったようです。そして、その結果で不良ブロックの inode を更新しましたが、何も見つかりませんでした。
FILE SYSTEM WAS MODIFIED
吐き出されるfsck
どれでもファイルシステムへの書き込みが行われるたびに、その 1 つの不良ブロック inode が変更されます。
特に、あなたに確認せずに問題を修正するようには指定していませんでしたが ( -y
)、ディスクに修正が必要な問題が見つかった場合は、何か言ってくるはずです。
答え2
もう一度実行します。-cc
不良ブロックが見つかり、それを修復するプログラムを呼び出しましたbadblocks
。次のように実行するだけでよいかもしれません:
$ fsck /dev/sdb1
fsck.ext3 マニュアルページからの抜粋
-c
このオプションにより、e2fsck は badblocks(8) プログラムを実行してファイルシステム上の不良ブロックを検出し、不良ブロック inode に追加して不良としてマークします。このオプションを 2 回指定すると、不良ブロックのスキャンは非破壊的な読み取り/書き込みテストを使用して実行されます。
更新#1: フォローアップの質問
fsck は不良ブロックを検出しましたか? 非破壊読み取り書き込みテストとは何ですか?
fsck
は、ファイルシステム全体の状態に関するさまざまなチェックを実行するフロントエンド ツールです。スイッチは、より徹底的なチェックが実行されるようにも呼び出すように-cc
指示します。fsck
badblocks
非破壊的な読み取り/書き込みでは、まず場所の内容がバックアップされ、次にパターンを使用して場所がテストされ、元の内容が返されます。
参考文献
答え3
心配しないでください。このメッセージは、名前や Unicode 名が間違っているファイルや、ファイルシステムに作成されていないエラーが発生したファイルなど、不正なファイルがある場合に表示されます。
答え4
dumpe2fs -b
どうやら、不良ブロックのリストを表示するには、次のように実行できるようですdumpe2fs -b /dev/sdb1
。出力が空であれば、不良ブロックはないと思われます (ただし、現在、不良ブロックのあるドライブがないため、テストできません)。