Step 1) ddrescueの稼動するマシンにコピー元のHDDと新しいHDDを繋ぐ。
atacontrolやdmesgなどで接続状況の確認。
コピー元のHDDをセカンダリに繋ぐとして、コピー先はUSB接続などにした方が経験上確かな場合が
多いので、次のようになったとします。
atacontrol list
ATA channel 4:
Master: ad8 SATA revision 2.x
Slave: no device present
ATA channel 5:
Master: ad10 SATA revision 2.x
Slave: no device present
ここで、ad8がddrescueが稼動するマシン。ad10がコピー元のHDD。コピー先はUSBに接続されてて、da0という名前だったとします。
コピー元HDD:ad10
コピー先HDD:da0
なお、ddrescueは言ってみればコピー元HDDのデータを「完コピ」しますので、
コピー先HDDの容量は、コピー元HDDの容量以上でないといけません。
Step 2) ddrescue実行
では実行。
ddrescue -r 3 /dev/ad10 /dev/da0 ddrescue.log
ここでは、読み込めなかったときのリトライ回数を3回、コピー進行状況のログファイル名は、
ddrescue.logに記録する設定になっています。
コピー元のHDDの状況によっては、ddrescueが途中で停止してしまうことがあります。
壊れかけのHDDから読み出そうとするも、「動くのイヤ」とかいって消えてしまう(atacontrolで見つからなくなる)
というのを何度か経験しました。
ログファイルが作成してあると、すでにコピー済みの箇所を飛ばして続きから処理を行っ
てくれますが、ログファイルがないと、何度やっても同じところで止まるという危険が
ありますので、ログファイルは作成するようにした方がよいでしょう。
当然のことながら、使用するシステムによって、ddrescueの引数などの仕様が上記の
書き方と異なることも十分考えられます。かならずman ddrescueを確認してから実行しましょう。