回答:
ddrescueは再開できますが、再開するにはログファイルが必要です。ログファイルにはddrescueのこれまでの進捗状況が記録され、ddrescueを再起動するとログファイルが読み取られ、中断したところから開始されます。
ログファイルは3番目のパラメータになります。
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
ログファイルなしですでにddrescueの実行を開始し、それをキャンセルした場合、次回のddrescueの実行時には、すでに回復されたものの記録がないため、最初から開始されます。
ログファイルを指定するのを忘れたとしても、希望があるかもしれません:
したがって、チュートリアルを読まずに、ログファイルなしでddrescueを開始しました。さて、2日後、コンピューターがクラッシュし、ddrescueがどれだけのデータを保存できたかがわかりません。さらに悪いことに、救助を再開することはできません。最初からやり直す必要があります。
または、ドライブのコピーを開始し、dd conv=noerror,sync
上記と同じ状況になっている可能性があります。この場合、ddによって作成されたコピーは、sync
変換引数を指定して呼び出されない限り使用できないことに注意してください。
(まだ)絶望しないでください。Ddrescueは、場合によっては、入力ファイルと(部分的な)コピーから、正確なログファイルとほぼ同じくらいの近似ログファイルを生成できます。これは、すべてのゼロを含むセクターが救出されなかったと単に仮定することでこれを行います。
ただし、コピー先がドライブまたはパーティションである場合(または既存の通常のファイルであり、切り捨てが要求されていない場合)は、ほとんどの場合、最初からddrescueを再起動する必要があります。(もちろん今回はログファイルを使用します)。その理由は、まだ上書きされていない古いデータがドライブに存在する可能性があり、そのため、未試行でゼロではない可能性があるためです。
たとえば、次のいずれかのコマンドを最初に試した場合:
ddrescue infile outfile
または
dd if=infile of=outfile conv=noerror,sync
次のコマンドでおおよそのログファイルを生成できます:
ddrescue --generate-mode infile outfile logfile
パーhttps://wiki.archlinux.org/index.php/Disk_cloningでているようですconv=noerror,sync
スイッチ、dd
実際の追加のゼロでありません終了時にブロックの、場所を正確に読み取りエラーが発生していません。これは、2013-08-29のMiles Wolbeの回答の情報に反しています。
たとえば、正しいシーケンスが198123283
あり、途中で読み取りエラーが発生した場合198283000
、書き込みは行われますが、198000283
ます。
そのため、実際に読み取りエラーがあった場合、提案された方法は正確ではありません-ゼロで埋められてしまう「読み取り可能」な領域がありますが、「救出された」と見なされます。
ちなみに、復元先のドライブをゼロ(または、少なくともWinHexで実行できる空き領域など)で埋めることによって、このような回復を試みることをお勧めします。