ddrescueが読み書きエラーを処理するために他のマッピングファイルを使用しないのはなぜですか? (そして書き込みエラーを検出する方法は?)

ddrescueが読み書きエラーを処理するために他のマッピングファイルを使用しないのはなぜですか? (そして書き込みエラーを検出する方法は?)

時々、ハードドライブを正常に見える別のドライブに複製する必要がありますが(SMART値は正常です)、表面に不良セクタがあるかどうかを完全に確認することはできません。

通常、通常のハードドライブを複製すると、以前に削除されていないため、完全に確認されていないターゲットドライブが使用されます。

間違っていたら教えてください。私はddrescueが読み取りエラーだけを報告すると思います。 これはまた、書き込みエラーのために一部のセクタをターゲットドライブにコピーできない場合でも、ddrescueがエラーなしで複製に成功したことを示します。同様に、マッピングファイルは、ターゲットドライブにエラーがあるかどうかを知らせません。

それで、ddrescueがなぜ2つのマッピングファイル(read.log)(write.log)の生成を許可しないのか疑問に思いました。

これは2番目の質問につながります。書き込みエラーを検出する方法はありますか?

注:複製後、両方の1TBドライブのチェックサムを計算するのに時間がかかるとします。より良い解決策はありますか?

ベストアンサー1

ddrescue書き込みエラーは致命的であるため、書き込みエラーは記録されません。ブロックを書き込む必要があるたびに書き込まれると予想されるバイト数を追跡​​し、そのバイトが正常に書き込まれない場合はエラーメッセージで中断されます。これを実行すると見ることができます

$ ddrescue --force /dev/zero /dev/full
GNU ddrescue 1.23
Press Ctrl-C to interrupt
     ipos:        0 B, non-trimmed:        0 B,  current rate:       0 B/s
     opos:        0 B, non-scraped:        0 B,  average rate:       0 B/s
non-tried:    9223 PB,  bad-sector:        0 B,    error rate:       0 B/s
  rescued:        0 B,   bad areas:        0,        run time:          0s
pct rescued:    0.00%, read errors:        0,  remaining time:         n/a
                              time since last successful read:         n/a
Copying non-tried blocks... Pass 1 (forwards)
ddrescue: Write error: No space left on device

正常に完了すると、ddrescue最善を尽くして読み取ったすべてのデータが正しく記録されます。

おすすめ記事