ddrescue コマンドによるクローンについて

dd コマンドでは、クローン(コピー)できないハードディスクを
ddrescue を使用して、クローン(コピー)を取る方法


【 前置き 】


 ddrescue コマンドは、通常の dd コマンドとは違い
 不良セクタがあるハードディスクに(最適化)されたコマンドです。
 不良セクタは無視して、とりあえずクローン(コピー)を優先し
 のちに、不良部分を読み取りを行うというアルゴリズムになっています。

 dd コマンドのオプションでも
 conv=sync,noerror というオプションはありますが
 それでも止まってしまう場合などに有効です。
 ちなみに・・・sync は、エラーの分を 0 で埋める。
 noerror は、エラーがあっても継続する。です。

 ※ddrescue には "dd_rescue" と "GNU ddrescue" が存在するようです。
 詳しくはWiKiでも見てください・・・。
 説明は後者の "GNU ddrescue" になります。


【 Ubuntu にて 実行する方法 】


1.インストール方法


 ターミナルを開き以下、コマンドでインストール

sudo apt-get install gddrescue


2.ソフトウェアのディスクで対象のドライブをチェック

 今回は、以下の条件で
 ソース(不良ハードディスク) /dev/sda
 ターゲット(正常ハードディスク) /dev/sdb


3.ターミナルにてコマンドを実行


 [説明]
 #sudo ddrescue [オプション] [ソース] [ターゲット]

 という書式で実行します。
 ※ソース、ターゲットの順に注意、逆にするとデータ消えます。

 (例)
sudo ddrescue -f -n -v /dev/sda /dev/sdb

 -f (上書き※ターゲットが物理ディスクでは必須)
 -n (リードエラーを無視※付けなくても標準は 0 のため不要かも)
 -v (詳細表示)


4.応用編


(例)
sudo ddrescue -f -r1 -d /dev/sda /dev/sdb logfile.log

 -r1 (不良セクタの再読み込み回数 1 )
  ※回数を増やすことで復旧率は上がる可能性はあるがHDDへ負担増
 -d (ダイレクトアクセス)
  ※キャッシュを使用せずダイレクトにアクセスする
 logfile.log (ログファイルを作成)
  ※ログファイルを作成する。

 ログファイルを指定することで、 ctrl+c でキャンセルした場合など
 途中から進めることができたり、一度 -n で完了後 -r1 でエラー箇所だけ
 読み直すこともできるので、作成しておきましょう。

 ↓

sudo ddrescue -f -n -v /dev/sda /dev/sdb logfile.log

で一度実行し完了後

sudo ddrescue -f -d -r1 -v /dev/sda /dev/sdb logfile.log

とすることで、2回目はダイレクトアクセスで不良個所のみ1回、再読み込みする
という風になります。


・ログについて



 errsize: *****B, (エラーサイズ)
 errors: *****,(エラー箇所)

 例えば、オプション -n で実施後

sudo ddrescue -f -d -n -v /dev/sda /dev/sdb logfile.log

 errsize: 1000KB,
 errors: 77,

となってる場合は、エラーの容量が約1MB、77個のエラーがあり。

その後、オプション -n からオプション -r1 に変更して再実行

sudo ddrescue -f -d -r1 -v /dev/sda /dev/sdb logfile.log

※必ずログファイルを指定する。(指定しなかった場合は初めから実行されます)
 (カーソル↑キーを押して -n を -r1 に書き換える)

その結果、以下になった場合は
読み取りエラーが出ていた場所を再度1回読み込み、22個読み込みに成功
約0.3MBが読み取りできたという結果になります。

 errsize: 700KB,
 errors: 55,

ログファイルを指定することで、正常な部分は再読取りせず
不良となっている部分のみ再読取りするので、時間が短縮できます。

このブログの人気の投稿

ping テストのログを記録する方法

Ubuntu を使用しDDコマンドでクローンの作成