web-dev-qa-db-ja.com

ddrescue:他のすべてのデータが安全に保存された後、1つの不良ブロックを再試行するにはどうすればよいですか?

昨日はddrescueを使用して、1:1のコピーを取得し、それをイメージとして新しいドライブに保存しました。故障したドライブの先頭に不良クラスターがあることを知っていたので、逆方向に読んだとします。つまり、-Rスイッチ、マニュアルページから:

-R
--reverse

すべてのパスの方向を逆にします(コピー、トリミング、スクレイピング、再試行)。通常は順方向に実行されるすべてのパスが逆方向に実行されるようになり、その逆も同様です。 '--reverse 'は、各フェーズでコピーされるブロックのサイズを変更するのではなく、試行される順序のみを変更します。

もちろん、私はmapfileを使用してプロセスを再開できるようにしました。

さらに、私は直接アクセスを使用しました。すべてのドライブがこれをサポートすることになっているわけではありませんが、私のものはサポートしています。


私が使用した完全なコマンドラインは次のとおりです。

ddrescue -d -R /dev/sdb baddrive.ddrescue.img baddrive.ddrescue.log

結果は、サイズが4096バイトの1エラーです。


mapfileの関連部分は次のとおりです。

# current_pos  current_status
0x1375BCE00     +
#      pos        size  status
0x00000000  0x1375BC000  +
0x1375BC000  0x00001000  -
0x1375BD000  0xE7A97F9000  +

質問

不良クラスターを100回再試行して、完全に停止していることを確認することはできますか?

1

はい、可能です。

mapfileの行を変更する必要があります。

0x1375BC000  0x00001000  -

そのように最後に疑問符を含めるには:

0x1375BC000  0x00001000  ?

これで、回復プロセスを再開する準備ができました。そこに再試行オプションを追加するだけです。

-r n
--retry-passes=n

指定された回数の再試行パスの後に終了します。デフォルトは0です。-1は無限大を意味します。すべての不良セクタは、各パスで1回だけ試行されます。前回の実行で検出された不良セクタを再試行するには、ゼロ以外の数の再試行パスを指定する必要があります。

1