物理的に壊れたHDDをddコマンドでファイル救出

ハードディスクが物理的に壊れてしまってデータを取り出したいけれどディスクエラーで取り出しが出来ない、Linuxでもパーティションが壊れてしまっているためマウント出来ないよ、とエラーになって接続できない場合、専門の業者に頼むか諦めるかしか方法がありませんでした。
でも専門の業者に頼むと数十万円の費用がかかる。
でもでも諦めたくない。
そんな場合の何とかなるかも!って方法です。

データが取り出せるかも?という条件として

です。
ddコマンドを使ってハードディスクをそのままファイルシステムやエラーを無視して別のハードディスクにコピーします。
例ではLinuxで行います。
壊れたHDD /dev/sdb
新しいHDD /dev/sdc

に接続しているとします。(どちらもUSB接続でOK)
※新しいHDD ≧ 壊れたHDD
の大きさで用意してください。
※パーティションはmountしません。

この状態で

# dd if=/dev/sdb of=/dev/sdc bs=512 conv=noerror,sync

を実行しドライブをコピーします。
※数時間かかります。
※convでエラーをスキップするように指定します。
※bs=512
は512バイトずつコピーしますよ、という意味です。
エラーがある部分をスキップする際もこの単位でスキップします。
この値が大きいとコピー速度が速くなりますが壊れている部分があると道連れになる範囲も大きくなります。
この値を小さくするとエラー時に道連れになる範囲は最小で済みますがコピー速度が遅くなります。

エラーも含めてコピーが終わると
新しいHDDをWindowsパソコンに接続します。(USB接続でOK)
パーティションにエラーはありますが物理的に壊れていませんので何とか認識しますのでこの後コマンドプロンプトで

c: chkdsk x: /f

を実行しエラーを修復してください。
※x:はつないでいるドライブ番号。
※修復しなくても見れると思います。

これでデータの救出が可能になります。
※ダメな場合は業者へGO!

コメント (1件)


墜落日誌
http://kusumoto-jp.org/article.php/dd