web-dev-qa-db-ja.com

ddrescue:最初の実行後に失敗したブロックを再試行します

故障したハードドライブをddrescueでバックアップしました。私が使用したコマンドは

# ddrescue -vv -d -J /dev/sda /mnt/rescue/winxp.img winxp.map

プログラムは約60のエラーで完了しました。失敗したブロックだけを再試行したかった。私はこのセクションをマンページで見つけました:

-m file
--domain-mapfile=file
    Restrict the rescue domain to the blocks marked as finished in the
    mapfile file. This is useful for merging partially recovered images of 
    backups, or if the destination drive fails during the rescue. Use '-' 
    as file to read the domain mapfile from standard input. Specialized 
    tools like ddrutility or partclone can produce a domain mapfile 
    listing all the used blocks in a partition, making the rescue more
    efficient.
-M
--retrim
    Mark all failed blocks inside the rescue domain as non-trimmed before
    beginning the rescue. The effect is similar to '--retry-passes=1', but
    the bad sectors are tried in a different order, making perhaps
    possible to rescue some of them.

私が出した次のコマンドは

# ddrescue -vv -d -M -m winxp.map /dev/sda /mnt/rescue/winxp.img winxp.2.map

これは以前に失敗したブロックのみを再試行すると思いました。ただし、プロセス全体から再開し、ディスク全体をレスキューしようとしているように見えました。

失敗したブロックのみを再試行し、成功した場合は前のイメージに保存する方法はありますか?

1
nautical

毎回sameマップファイルを使用する必要があります-これは、試行された領域と、それらが成功したか失敗したかを記録する場所です。

通常、コマンドを実行ごとに変更する必要はありません。コマンドを再発行するだけで、失敗した領域が再試行されます(再試行)。


-mを使用すると、(手動で述べられているように) "レスキュードメインをブロックに制限します終了としてマークされますマップファイルファイル内。 "-ie:成功したブロックのみを読み取ってみてください。

繰り返しになりますが、マニュアルに記載されているように、これは他のユーティリティと組み合わせて、読み取られるデータの量を減らし、実行時間と発生するエラーの数を減らすのに役立ちます。

2
Attie