Antworten:
ddrescue kann fortgesetzt werden, erfordert jedoch eine Protokolldatei, um dies zu tun. Die Protokolldatei zeichnet den Fortschritt auf, den ddrescue bisher gemacht hat, und ein Neustart von ddrescue liest die Protokolldatei und beginnt dort, wo sie aufgehört hat.
Die Protokolldatei wäre der dritte Parameter:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
Wenn Sie bereits einen ddrescue-Lauf ohne Protokolldatei gestartet und abgebrochen haben, wird ddrescue beim nächsten Ausführen am Anfang gestartet, da keine Aufzeichnung darüber vorhanden ist, was bereits wiederhergestellt wurde.
Hinweis : ddrescue und dd_rescue sind unterschiedliche Programme.
Auch wenn Sie vergessen haben, eine Protokolldatei anzugeben, besteht möglicherweise Hoffnung:
Sie haben das Tutorial also nicht gelesen und ddrescue ohne Protokolldatei gestartet. Jetzt, zwei Tage später, stürzte Ihr Computer ab und Sie können nicht wissen, wie viel Daten ddrescue gespeichert hat. Und noch schlimmer, Sie können die Rettung nicht wieder aufnehmen. Sie müssen es von Anfang an neu starten.
Oder Sie haben mit dem Kopieren eines Laufwerks begonnen dd conv=noerror,sync
und befinden sich jetzt in der oben beschriebenen Situation. Beachten Sie in diesem Fall, dass Sie eine von dd erstellte Kopie nur verwenden können, wenn sie mit dem sync
Konvertierungsargument aufgerufen wurde .
Verzweifle (noch) nicht. Ddrescue kann in einigen Fällen aus der Eingabedatei und der (Teil-) Kopie eine ungefähre Protokolldatei generieren, die fast so gut ist wie eine exakte Protokolldatei. Dies geschieht, indem einfach angenommen wird, dass Sektoren, die alle Nullen enthalten, nicht gerettet wurden.
Wenn das Ziel der Kopie jedoch ein Laufwerk oder eine Partition war (oder eine vorhandene reguläre Datei und ein Abschneiden nicht angefordert wurden), müssen Sie ddrescue höchstwahrscheinlich von Anfang an neu starten. (Diesmal natürlich mit einer Logdatei). Der Grund dafür ist, dass möglicherweise alte Daten im Laufwerk vorhanden sind, die noch nicht überschrieben wurden, und daher möglicherweise nicht ausprobiert, aber nicht Null sind.
Wenn Sie beispielsweise zum ersten Mal einen der folgenden Befehle ausprobiert haben:
ddrescue infile outfile
oder
dd if=infile of=outfile conv=noerror,sync
Mit diesem Befehl können Sie eine ungefähre Protokolldatei erstellen:
ddrescue --generate-mode infile outfile logfile
Wie andere bereits gesagt haben, sollten Sie als dritten Parameter immer eine Protokolldatei angeben, die die Wiederaufnahme ermöglicht. Da du das nicht getan hast, wird dir das hier nicht helfen. Wenn Sie ungefähr wissen, zu welchem Punkt der Prozess gelangt ist, können Sie die Parameter --input-position
und verwenden --output-position
, um an diesem Punkt zu beginnen (stellen Sie sicher, dass beide Parameter auf denselben Wert eingestellt sind, da sonst die Ausgabe beschädigt wird).
Da Sie keine Protokolldatei als dritten Parameter angegeben haben, kann die Wiederaufnahme nicht automatisch erfolgen. Sie können eine Protokolldatei von Hand erstellen, wenn Sie die bereits geretteten Sektoren kennen. Die Syntax ist einfach. Starten Sie einfach eine weitere Dummy-Rettung für eine andere Datei, während Sie ein Protokoll angeben, und lassen Sie es verschiedene Bereiche lesen. Bearbeiten Sie dann das Protokoll, um die bereits geretteten Bereiche in Ihrer ersten Datei darzustellen. Führen Sie nun Ihren vorherigen Befehl erneut aus, geben Sie jedoch den Namen der Protokolldatei als dritten Parameter an. ddrescue wird dann auf dem ersten nicht erprobten Sektor fortgesetzt.
Per https://wiki.archlinux.org/index.php/Disk_cloning scheint es, dass mit dem conv=noerror,sync
Schalter dd
tatsächlich Nullen am Ende eines Blocks hinzugefügt werden , nicht genau dort, wo die Lesefehler aufgetreten sind. Dies steht im Widerspruch zu den Informationen in der Antwort von Miles Wolbe vom 29.08.2013.
Wenn zum Beispiel eine korrekte Sequenz 198123283
vorliegt und in der Mitte ein Lesefehler auftritt 198283000
, wird nicht geschrieben 198000283
.
Falls also tatsächlich Lesefehler aufgetreten sind, ist die vorgeschlagene Methode nicht genau - es gibt Bereiche, die lesbar gewesen wären, die mit Nullen gefüllt sind, jedoch als "gerettet" betrachtet werden.
Übrigens empfiehlt es sich, einen solchen Wiederherstellungsversuch zu starten, indem Sie das Ziellaufwerk mit Nullen füllen (oder zumindest den freien Speicherplatz, der beispielsweise mit WinHex ausgeführt werden kann).