根本的にはHDDはクラッシュする可能性があるので、かならずバックアップを取っておくべき物だけど。それはそれとしてサルベージの方法を知っておくのは有用か。
要するに「クラッシュしたHDD」でいろいろと作業すると故障がより進行してしまうから、新品のHDDにデータのイメージを丸ごとコピーしてから、新しいほうにディスクチェックをしよう。ということ。(追記:KNOPPIXを使う時は、クラッシュしたHDDのスワップ領域を使わないようにboot: knoppix noswapで起動する方が良い。swapにはデータは書かれていないから指定しなくても致命的ではないだろうけど、できるだけ余計な書き込みはしない方が良いと思う)
コピーには普通のddコマンドを使っても別に大丈夫だけど、bs=512だと割り込みが大量に入るからコピーに数時間以上は平気でかかってしまう。(過去に80Gをサルベージしたときは一晩たっぷりかかった)。だからCD起動のKNOPPIXやFreeSBIEを使って dd_rhelp_ や dd_rescue_ を使うのがオススメ。(dd_rhelpは内部でdd_rescueを呼んでいるので、どっちを使っても機能的には一緒)
dd_rescueが使えない場合は
dd if=/dev/hda of=/dev/hdc ibs=512 obs=1024k conv=sync,noerrorとかでibs(読み込みブロックサイズ)はセクターサイズである512byteにしてobs(書き込みブロックサイズ)を大きい値にすれば良い。そうすれば、書き込みは1メガ単位でまとめてくれるのでスピードが早くなる。ちなみにconv=sync,noerrorは読み込みエラーは飛ばすために指定している。(この例は/dev/hdaにクラッシュしたHDDを。/dev/hdcに新品HDDを接続している。FreeSBIEであれば/dev/ad0と/dev/ad2などと読み替え)
それでイメージがコピーできたら、Linux/BSDであればfsckと ディスクからファイルを救出する: salvage-1.0_ で。
WindowsであればFINALDATAで。
Mac OS XであればData Rescue Xを使う事で、イメージファイルからファイルを救いだせる。
ただし、クラッシュしたセクターに書き込まれていたファイルはさすがにサルベージは無理なので、それだけは失われる。
それ以外のファイルはこの手法でほぼ救い出す事が出来る。
関連過去ログ
2006年3月27日。dd_rhelpというdd_rescueよりも優れたハードディスクのサルベージ用コマンドがあるのを知った_
2005年4月11日。クラッシュしたHDDをddでコピーするときは「ibs=512 obs=65536」と読み書きブロックサイズを分けて指定すると速くなる_



コメントを読む(6) [ コメントする ]