2014年8月22日金曜日

弱ったストレージからデータを救出する

 HDDの調子が悪くなった時、まずは丸々どこかへコピーします。調子の悪いHDD上であれやこれややってしまうと余計に壊れて本当にアクセスできなくなるかもしれませんからね。

 いつもこの最初のデータ退避作業にddrescueを使っていて、使うために必要なツール二つをメモしておく。

 こちらはデータ救出用のLinuxディストリビューション。いろいろなツールが用意されていて、私がいつも使うddrescueもインストール済み。
 一般のディストリビューションでは普通入っていないと思う。元になっているddだけ。

 こちらはLinuxのインストールイメージをUSBメモリにブータブルな状態で展開してくれるツール。Windows用。

 後はSystemRescueCdを起動して、ターミナル上でddrescueを使うだけっす。ヤバそうなディスクは下記の順でコピーしています。
ddrescue [オプション] [コピー元 /dev/sdbとか] [コピー先 /dev/sdcとか] [ログファイル]
例)sdb→sdcにコピー
ddrescue -fvn /dev/sdb /dev/sdc copy.log
ddrescue -fvr 1 /dev/sdb /dev/sdc copy.log
ddrescue -fndr -1 /dev/sdb /dev/sdc copy.log

 ディスク全体だったりパーティションをコピーする場合は強制オプションの-f をつけろと怒られるのでつけます。
 -nは不良ブロックをスルーさせる。ディスクが動くうちに多くのデータを救出したいので、先に不良ブロックの読み取りをリトライし続けてディスクの寿命を短くするのは愚か者らしいです。-nをつけない場合は、不良ブロックを分割して部分的に読み取る。読めないブロックはさらに分割して部分的に読む。
 -rはリトライ数。-1にすると無限。あきらめたときにctrl+cで終了。
 残りが読み込みの難しい不良セクタだらけになった状態になったら、-dオプションを付けるとなぜか読み取れる確率が上がる気がする。
 -vは詳細表示。
 ログが無くても実行はできますが、あるとコピー中断してもレジュームできたり、再度試行した時に読めなかった不良セクタ分だけを読んでくれます。上の例のように何度か違うコマンドを使いながらコピーを進める場合は必須。

軽症だと、コピー後にチェックディスクとかして完全な状態に戻ったりしますが、そういう時はNTFSなりファイルシステムって凄いなと思う。


参考:
Ddrescue

----------------------------
ddrescueは、UNetbootin, Universal Netboot InstallerでオンラインインストールできるParted Magicにも入っていました。
こちらの方が圧倒的に簡単です。

2021/1/4追記

0 件のコメント:

コメントを投稿