ハードディスク復旧作業

昨日は dd でコピーしたドライブから FINALDATA を使ってサルベージ。大体復旧できてるっぽい。
いろいろ遠回りとかしたけど、一応これにて復旧完了。


せっかくだから失敗談クイズでも書いてみるかw
■その1 パーティション単位で復旧してみようとした時の失敗。

さて、なんででしょう?


答え:パーティションID が NTFS になってなかったから。確か、 e (Win95 FAT16 (LB) と f (Win95 拡張領域) になっていたような。
なので ID を 7 (HPFS/NTFS) に書き換えてやれば認識したのかもしれず。気づいた時には別の作業していたので後の祭りだったけど。


■その2 一旦中断した dd の処理を再実行しようとした時の失敗。

  • dd が全然終わらず、どこまで進んでいるのか分からないので一旦中断。
  • 思ったより進んでいなくてガッカリしつつも続きをやるべく再実行。コマンドはこんな感じ。セクタ位置は適当なので気にしない事。
dd if=/dev/hdb conv=sync,noerror of=/dev/hda bs=512 skip=10000 seek=10000
  • ふと、ブロックサイズを大きくした方が速度上がるかと思いつき、ブロックサイズの指定を変更して再実行。
dd if=/dev/hdb conv=sync,noerror of=/dev/hda bs=1024 skip=10000 seek=10000
  • 数時間後、結果を見てみたらなんと読み込み数も書き込み数も 0 で終了していた。

さて、なんででしょう?


答え:skip で指定した値の単位は ibs の値が基準になる。同様に seek の単位は obs の値である。 bs の値だけ変えた結果、skip と seek で指定した位置が HDD の範囲を超えてしまっていたのであった。