badblocksで不良ブロックを見つけてパーティションを分割
不良ブロックは使えない。ここにはデータが書き込めないか、書き込んでも読み出せないか、読み出せたとしても書き込まれたデータと同じデータが読み出せているとは限らない。ということで、まずはこれを探す。
# badblocks -o badblocks.dat -p 10 -vsn /dev/hda1
-sはいちいち調査中のブロックを表示、-vは何をやっているか表示、-nは非破壊書き込み読み込みテスト、-pは調査回数、-oは不良ブロックの出力先。さて、時間がかかるがこれが終わればbadblocks.txtに不良ブロックが書き込まれる。このブロックを使わないようにするのがいいが、ピンポイントで指定したのではなんだか不安。なので、不良ブロックのある付近のブロックをざっくりと切り分けて、使わないようにする。そのために不良ブロック付近を避けてパーティションを切る。
# fdisk /dev/hda
どう切ってもかまわないが、切れる単位は勝手に調整されるということを忘れてはならない。
その後どうなった
結果は失敗。フォーマットとかOSインストールとか運用とか、どのレベルまで使えるのかまったく予想がつかない。これはパーティションの切り方によるのか、それとも何なのか。やはり壊れたHDDは使うべきではないのか。
というわけで、1.4GB位のHDDを古いLavieから取り外してFMVに取り付けた。これに現行でサポートが受けられるMicrosoftOSのWin2Kをインストールした。インストールしたWin2Kは初期版のため、SP4を入れて修正パッチを当てた。初期状態で空き領域は600M位あったと思ったけど、パッチ当て終わった時点で残りの空き容量はほとんど消費されて、28MB。サポート期限までにリリースされるであろう修正パッチを考えると、これではほとんど使い物にならないな。しょうがないのでVineでもインストールするか。うちのFMVはメモリ64MBしか載ってないので、Vineも3.2だけど。とりあえず修正パッチやメンテナンスパッチを当ててその後の空き領域がもう少し欲しいところだ。
[ハードウェア] Data Advisorでhdd診断
[ハードウェア] smartmontoolsでHDD診断
[ハードウェア] GNU ddrescueでデータ救出
RAIDに使っているディスクが頻繁にだめになるようになったので。badblocksと同じような使い方が出来るのかな。読み込めない書き込めないセクタに対して適当な代替セクタを用意させることが出来ればよいのだけれど。