Ich muss meine 1-TB-USB-Festplatte wiederherstellen. Ich verwende ddrescue
dafür. Gibt es eine Möglichkeit, sie fortzusetzen, ddrescue
nachdem ich sie gestartet habe?
Ich verwende den Befehl:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
Antwort1
Abonnierenkann fortgesetzt werden, aber dazu ist eine Protokolldatei erforderlich. Die Protokolldatei zeichnet den Fortschritt auf, den ddrescue bisher gemacht hat, und beim Neustart von ddrescue wird die Protokolldatei gelesen und dort begonnen, wo es aufgehört hat.
Der dritte Parameter wäre die Protokolldatei:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
Wenn Sie einen ddrescue-Lauf bereits ohne Protokolldatei gestartet haben und ihn abbrechen, wird ddrescue beim nächsten Lauf von vorne begonnen, da es keinen Datensatz darüber gibt, was bereits wiederhergestellt wurde.
Notiz:AbonnierenUnddd_rescuesind verschiedene Programme.
Antwort2
Auch wenn Sie vergessen haben, eine Protokolldatei anzugeben, besteht möglicherweise Hoffnung:
Sie haben also das Tutorial nicht gelesen und ddrescue ohne Logdatei gestartet. Jetzt, zwei Tage später, ist Ihr Computer abgestürzt und Sie können nicht wissen, wie viele Daten ddrescue retten konnte. Und was noch schlimmer ist: Sie können die Rettung nicht fortsetzen; Sie müssen sie von vorne neu starten.
Oder Sie haben mit dem Kopieren eines Laufwerks begonnen dd conv=noerror,sync
und befinden sich nun in der oben beschriebenen Situation. Beachten Sie in diesem Fall, dass Sie eine mit dd erstellte Kopie nur verwenden können, wenn sie mit dem sync
Konvertierungsargument aufgerufen wurde.
Verzweifeln Sie (noch) nicht. Ddrescue kann in einigen Fällen aus der Eingabedatei und der (Teil-)Kopie eine ungefähre Protokolldatei erstellen, die fast so gut ist wie eine genaue Protokolldatei. Dies geschieht, indem einfach angenommen wird, dass Sektoren, die nur Nullen enthalten, nicht gerettet wurden.
Wenn das Ziel der Kopie jedoch ein Laufwerk oder eine Partition war (oder eine vorhandene normale Datei und keine Kürzung angefordert wurde), müssen Sie ddrescue höchstwahrscheinlich von Anfang an neu starten. (Dieses Mal natürlich mit einer Protokolldatei). Der Grund dafür ist, dass auf dem Laufwerk möglicherweise alte Daten vorhanden sind, die noch nicht überschrieben wurden und daher möglicherweise nicht überschrieben wurden, aber ungleich Null sind.
Wenn Sie beispielsweise zuerst einen dieser 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
Antwort3
Wie andere bereits gesagt haben, sollten Sie als dritten Parameter immer eine Protokolldatei angeben, damit der Vorgang fortgesetzt werden kann. Da Sie das nicht getan haben, hilft Ihnen das hier nicht weiter. Wenn Sie ungefähr wissen, an welchem Punkt der Vorgang angekommen ist, können Sie die Parameter --input-position
und verwenden --output-position
, um an diesem Punkt zu beginnen (stellen Sie sicher, dass Sie beide Parameter auf denselben Wert setzen, da sonst die Ausgabe beschädigt wird).
Antwort4
Prohttps://wiki.archlinux.org/index.php/Disk_cloninges scheint conv=noerror,sync
, dass mit dem Schalter dd
tatsächlich Nullen hinzugefügt werdenAm Endeeines Blocks, nicht genau, wo die Lesefehler auftraten. Dies steht im Widerspruch zu den Informationen in Miles Wolbes Antwort vom 29.08.2013.
Wenn beispielsweise eine korrekte Sequenz lautet 198123283
und in der Mitte ein Lesefehler auftritt, wird geschrieben 198283000
und nicht 198000283
.
Falls es also tatsächlich Lesefehler gibt, wird die vorgeschlagene Methode nicht genau sein: Es wird Bereiche geben, die lesbar gewesen wären, die am Ende mit Nullen aufgefüllt werden, aber dennoch als „gerettet“ gelten.
Übrigens empfiehlt es sich, einen solchen Wiederherstellungsversuch damit zu beginnen, das Ziellaufwerk (oder zumindest den freien Speicherplatz, was beispielsweise mit WinHex möglich ist) mit Nullen zu füllen.