• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

ddrescue - wie werden die Lücken gefüllt?

D.o.S.

Member
Versuche gerade zu verstehen, was ddrescue mit den fehlerhaften / nicht lesebaren Bereichen macht?
Hier ist folgendes zu lesen:
Ddrescue does not write zeros to the output when it finds bad sectors in the input, and does not truncate the output file if not asked to.

Also was genau macht ddrescue dann bei so einen Durchlauf
ddrescue -n [input.file] [output.file] output.log
mit den nicht lesbaren Bereichen, wenn weder Nullen geschrieben werden noch diese Bereiche rausgeschnitten werden?
Das obige Zitat widerspricht sich doch, so wie ich es verstehe.
 

susejunky

Moderator
Teammitglied
Hallo D.o.S.,

Hier wird in Kapitel 4 beschrieben, wie der Wiederherstellungsprozess genau abläuft; u.a. steht da
... When ddrescue finishes the steps above, any areas marked as bad-sector will remain untouched in the output file. If the output file is a regular file created by ddrescue, the areas marked as bad-sector will contain zeros. If it is a device or a previously existing file, the areas marked as bad-sector will still contain the data previously present there. ...

Viele Grüße

susejunky
 
OP
D

D.o.S.

Member
Hallo D.o.S.,

Hier wird in Kapitel 4 beschrieben, wie der Wiederherstellungsprozess genau abläuft; u.a. steht da


Viele Grüße

susejunky

Das hatte ich auch bereits gelesen, aber nicht verstanden.

Dort steht:

The first pass reads the non-tried parts of the input file, marking the failed blocks as non-trimmed and skipping beyond them.
Was bedeudet das für den ersten Lauf?
Worauf bezieht sich "marking the failed blocks as non-trimmed and skipping beyond them"?
Auf das mapfile?
Heißt das, dass nach dem ersten Lauf alle fehlerhaften Blöcke im Mapfile eingetragen werden?
Und was bedeutet dies, für das Output-Image nach dem ersten Lauf?
Dass dort alle fehlerhaften Stellen übersprungen wurden?
D.h aus 010BBB110 wird im ersten Lauf 010110?
 

susejunky

Moderator
Teammitglied
Hallo D.o.S.,

vorab:

Ich habe ddrescue noch nie benutzt und kann Dir daher nur sagen, wie ich das Benutzerhandbuch verstehe. Ob das Handbuch an sich korrekt ist, kann ich nicht sagen (und ich bin auch kein "native English speaker").

... Worauf bezieht sich "marking the failed blocks as non-trimmed and skipping beyond them"?
Auf das mapfile?

... Heißt das, dass nach dem ersten Lauf alle fehlerhaften Blöcke im Mapfile eingetragen werden?


ddrescue versucht das zu rettende Medium (z.B. HDD) so wenig wie möglich zu "belasten" (um weitere Datenverluste zu vermeiden). Daher würde ich erwarten, dass die problematischen Bereiche des zu rettenden Mediums in der MAP-Datei vermerkt werden (da diese NICHT auf dem defekten Medium angelegt werden sollte).

Und was bedeutet dies, für das Output-Image nach dem ersten Lauf?
Dass dort alle fehlerhaften Stellen übersprungen wurden?
D.h aus 010BBB110 wird im ersten Lauf 010110?

Im Handbuch steht, dass das von der gewählten Vorgehensweise abhängt:

If the output file is a regular file created by ddrescue, the areas marked as bad-sector will contain zeros.

Meine (freie) Übersetzung:

Erfolgt die Ausgabe von ddrescue in eine von ddrescue erzeugte Datei (Anm.: die beim Start von ddrescue noch nicht existiert), dann werden alle Bereiche der Quelle, die nicht erfolgreich fehlerfrei gelesen werden konnten, in der Ausgabedatei mit Nullen gefüllt.

If it (the output) is a device or a previously existing file, the areas marked as bad-sector will still contain the data previously present there. ...

Meine (freie) Übersetzung:

Erfolgt die Ausgabe von ddrescue in eine Partition oder eine bereits vorhandene Datei, dann werden alle Bereiche der Quelle, die nicht erfolgreich fehlerfrei gelesen werden konnten, in der Zielpartition oder der Zieldatei nicht verändert; d.h. die betroffenen Bereiche in der Zielpartition oder der Zieldatei enthalten die Daten, die bereits vor dem Start von ddrescue dort abgelegt waren.

Viele Grüße

susejunky
 
OP
D

D.o.S.

Member
Ok, vielen Dank!
Jetzt glaub' ich, hab' ich es verstanden.

Das hier war für meine Frage entscheidend:

If the output file is a regular file created by ddrescue, the areas marked as bad-sector will contain zeros.
If it (the output) is a device or a previously existing file, the areas marked as bad-sector will still contain the data previously present there. ...
Also wenn man als output direkt auf ein HDD/SSD schreibt, werden die entsprechenden fehlerhaften Blöcke (also an der Stelle, wo das Input-Device fehlerhafte Blöcke hat) auf der Ausgabe-HDD/SSD einfach übersprungen. Somit bleibt dort einfach stehen, was dort vorher war.
Wird dagegen in eine neue Datei geschrieben, also ein Image-Datei, werden die entsprechenden Stellen der BadBlocks mit Nullen gefüllt.
Wenn ich es richtig verstehe, passiert dies bereits beim 1.Lauf.
Was danach beim Trimming und Scraping passiert sind nur noch verfeinerte Methoden, um noch mehr Bereiche zu retten.
Damit müsste das Img-File bereits nach dem 1.Lauf die Größe des Input-Devices haben. Danach würde sich nichts mehr an der Größe des IMG-Files ändern. Nur ggf. mehr bisherige BadBlocks gerettet.
 

susejunky

Moderator
Teammitglied
Hallo D.o.S.,

... Also wenn man als output direkt auf ein HDD/SSD schreibt, werden die entsprechenden fehlerhaften Blöcke (also an der Stelle, wo das Input-Device fehlerhafte Blöcke hat) auf der Ausgabe-HDD/SSD einfach übersprungen. Somit bleibt dort einfach stehen, was dort vorher war.
Wird dagegen in eine neue Datei geschrieben, also ein Image-Datei, werden die entsprechenden Stellen der BadBlocks mit Nullen gefüllt.
Wenn ich es richtig verstehe, passiert dies bereits beim 1.Lauf.
Was danach beim Trimming und Scraping passiert sind nur noch verfeinerte Methoden, um noch mehr Bereiche zu retten.
Damit müsste das Img-File bereits nach dem 1.Lauf die Größe des Input-Devices haben. Danach würde sich nichts mehr an der Größe des IMG-Files ändern. Nur ggf. mehr bisherige BadBlocks gerettet.

ja, das ist auch meine Interpretation des Handbuchs.

Allerdings habe ich noch nie überprüft, ob dem tatsächlich so ist ;)

Viele Grüße

susejunky
 
Oben