Posted:
| Categories:
cheatsheet
| Tags:
badblocks, cheatsheet
いろいろやってみたが 仕事だと怖くて不良セクタの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 /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...