Ddrescueプロセスを再開する方法?


9

1 TBのUSB HDを復元する必要があります。私はddrescueこれを達成するために使用しています。ddrescue開始したら再開できる方法はありますか?

私は次のコマンドを使用しています:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image

回答:


14

ddrescueは再開できますが、再開するにはログファイルが必要です。ログファイルにはddrescueのこれまでの進捗状況が記録され、ddrescueを再起動するとログファイルが読み取られ、中断したところから開始されます。

ログファイルは3番目のパラメータになります。

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log

ログファイルなしですでにddrescueの実行を開始し、それをキャンセルした場合、次回のddrescueの実行時には、すでに回復されたものの記録がないため、最初から開始されます。

ddrescuedd_rescueは異なるプログラムです。


1
したがって、最初にログファイルから開始して同じコマンドを再度実行すると、最後のログ位置から自動的に再開しますか?/ edit:最後の位置から始まります。
Qwerty、2006

6

ログファイルを指定するのを忘れたとしても、希望があるかもしれません:

生成モード

したがって、チュートリアルを読まずに、ログファイルなしで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

救済されているディスクをinfileし、レスキューデータをoutfileしていますか?
バスティオン

3

他の人が言ったように、再開を許可する3番目のパラメータとして常にログファイルを指定する必要があります。あなたはそれをしなかったので、それはここではあなたを助けにはなりません。プロセスの到達点がおおよそわかっている場合は、--input-positionおよび--output-positionパラメーターを使用して、その時点から開始できます(これらのパラメーターを両方とも同じ値に設定してください。そうしないと、出力が破損します)。


2

ログファイルを3番目のパラメータとして指定しなかったため、再開を自動的に行うことはできません。すでに救出されたセクターを知っていれば、手作業でログファイルを作成でき、構文は簡単です。ログを指定しながら、別のダミーレスキューを開始して、別の領域を読み取らせるだけです。次に、ログを編集して、最初のファイルですでに救出された領域を表します。ここで前のコマンドを再実行しますが、3番目のパラメーターとしてログファイルの名前を指定します。ddrescueは、最初の未試行のセクターで再開します。


2

パーhttps://wiki.archlinux.org/index.php/Disk_cloningでているようですconv=noerror,syncスイッチ、dd実際の追加のゼロでありません終了時にブロックの、場所を正確に読み取りエラーが発生していません。これは、2013-08-29のMiles Wolbeの回答の情報に反しています。

たとえば、正しいシーケンスが198123283あり、途中で読み取りエラーが発生した場合198283000、書き込みは行われますが、198000283ます。

そのため、実際に読み取りエラーがあった場合、提案された方法は正確ではありません-ゼロで埋められてしまう「読み取り可能」な領域がありますが、「救出された」と見なされます。

ちなみに、復元先のドライブをゼロ(または、少なくともWinHexで実行できる空き領域など)で埋めることによって、このような回復を試みることをお勧めします。


こんにちはGabrielB、スーパーユーザーへようこそ。あなたの回答を編集しましたが、それだけで十分かどうかはわかりません。おそらく、さらに編集して、元の質問に対応する小さなセクションを含めることもできますか?
bertieb 2015

私が正しく覚えている場合は、Miles Wolbeの回答にコメントしたかったのですが、新しいメンバーとして参加できなかったため、新しい回答を投稿する必要がありました。可能であれば、上記の投稿を表示される場所に移動して、この投稿を削除してください。
GabrielB、2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.