Tag: Badblocks

badblocks関連

いろいろやってみたが

仕事だと怖くて不良セクタのHDDは使えないのですが、個人だともったいないので色々調べた記録。

badblockでのチェックを試みたが1ヶ月以上かっても終わらない

HDDに[ 1 ]を書き込んで[ 0 ]を書き込んでsmartctlでの結果を比較するような形の方が良いだろう

HDDの復旧は、最近のHDDでは『書き込めなかったら、予備セクタを割り当てる』という振る舞いをするので

とにかくddで全領域書き込んでみれば良い、ということかも。もちろん新しいHDDを買うのがベスト。

badblock -w だと、もう少しましな文字列を書き込むので、より良い、という点は残るかも

あとbadblockを使う時は badblockのセクタ番号を取得するためだが、smartctlでも値を取得できる。 複数セクタがダメになっている、とかでなければ、smartctlの値の方が正確かも。 badblockの値を使うことにネガティブな意見が多い http://unix.stackexchange.com/questions/92076/how-can-i-check-for-bad-blocks-on-an-lvm-physical-volume ファイルシステムのツールか、HDDが不良セクタを使おうとしたら予備領域割り当てるし、smart機能を使った方がよい、という意見

私の考え

  • 結局の所、HDDのbadblockを調べて,ddでゼロを書き込むしかない。ような? というか、その方が確実のような気がする。

手軽にやれそうなのでext4でフォーマットしてfsckでテストしてみた

mkfs.ext4 は対象パーティションの既存データを消す。実行前に lsblk などでデバイス名を確認する。

mkfs.ext4 /dev/sdb1
nohup fsck -p -t -y -f -c /dev/sdb1 &

英語のページだがext2, ext3, raiserfs, LVMでの方法が乗っている

http://linoxide.com/linux-how-to/how-to-fix-repair-bad-blocks-in-linux/

検査の手順

# cd /
# badblocks -s -o badblocks.hda4 /dev/hda4

このオプションならば非破壊。

-s は経過表示 -o ファイル名 は、不良セクタがあったときのブロック番号のファイル化です。(登録時に使う)

なお、すでに不良セクタが登録されている場合は

# badblocks -s -i badblocks.hda4 -o badblocks2.hda4 /dev/hda4

とすることで登録済みの領域をスキップ。

作成される badblocks2.hda4 は、新規の不良セクタ分のみです。既存のは出力されません。

Read more...