Irgendwo im Internet habe ich gelesen, dass gddrescue dd zumindest in Bezug auf die Anzahl der in einem problematischen Sektor durchgeführten Festplattenlesevorgänge überlegen ist. Ist das wirklich der Fall?
Zeit dd if = / dev / sda skip = 900343967 von = a.bin count = 4 iflag = direct conv = noerror, sync
dd: Lesen von `/ dev / sda ': Eingabe- / Ausgabefehler
2 + 0 Datensätze in
2 + 0 Datensätze aus
1024 Bytes (1,0 kB) kopiert, 18.6057 s, 0,1 kB / s
3 + 1 Datensätze in
4 + 0 Datensätzen aus
2048 kopierte Bytes (2,0 kB), 18,6707 s, 0,1 kB / sreal 0m18.672s
Benutzer 0m0.000s
sys 0m0.004s
Übrigens hilft die direkte Flagge wirklich, ohne sie konnte ich nur 1 von 4 Sektoren lesen (gegenüber 3/4 damit). Dies verlangsamt jedoch die Übertragungsgeschwindigkeit spürbar - sie ist für mich mindestens fünfmal langsamer: 5 MB / s gegenüber 25 MB / s ohne dieses Flag. Wie auch immer, jetzt zum gddrescue (ddrescue) Teil.
Zeit ddrescue -b512 -c1 -s4b -dnvD -i900343967b -o0b / dev / sda b.bin
Über 2048 Bytes von / dev / sda nach b.bin kopieren
Startpositionen: infile = 460976 MB, outfile = 0 B
Blockgröße kopieren: 1 harte Blöcke
Harte Blockgröße: 512 Bytes
Max_retries: 0
Direkt: ja Sparse: nein Split: nein Abschneiden: nein
Drücken Sie Strg-C, um die Rettung zu unterbrechen : 1536 B, Fehlergröße: 512 B, aktuelle Rate: 53 B / s
ipos: 460976 MB, Fehler: 1, durchschnittliche Rate: 53 B / s
opos: 1536 B, Zeit vom letzten erfolgreichen Lesevorgang: 0 s
Fertigreal 0m18.736s
Benutzer 0m0.004s
sys 0m0.000s
Wie oben gezeigt, hat die Ausführung genau genauso lange gedauert. Wie erwartet - gleiche Statistik: 3/4. Obwohl ich die problematischen Sektoren mit 0x00 für dd (conv = sync) auffüllen konnte, scheint gddrescue diese Funktionalität zu vermissen? Stattdessen überspringt es einfach den problematischen Sektor, ohne etwas an seine Position zu schreiben, und fährt mit dem nächsten folgenden Sektor fort (wenn ich bereits Daten über diesen Sektor in der Ausgabedatei geschrieben habe - werden sie nicht überschrieben: Manchmal ist dies möglicherweise nicht wünschenswert ). Ich bin nicht sicher, wie die Option -t (Abschneiden) für ein Blockgerät mit gddrescue funktioniert(Ich denke, es wird es vollständig mit 0x00 überschreiben), aber in einer regulären Datei wird, wie vorhergesagt, die gesamte Datei abgeschnitten, ohne dies nur innerhalb der versetzten Dimensionen (dh -o1) zu tun. Das ist also etwas ähnlich wie dd sync , aber weit davon entfernt, dasselbe zu sein, da es nur die Identifikationsfunktionalität nachahmt, wenn Sie bereit sind, das gesamte Ausgabegerät / die gesamte Ausgabedatei zu überschreiben.
Dank der ausführlichen Option und der Möglichkeit, fehlerhafte Sektoren / Blöcke zu protokollieren, scheint gddrescue eine bessere Wahl zu sein. Es ist wichtig zu beachten, dass beide Apps mit (ziemlich) identischen Parametern gestartet wurden.
Die Ausgabe von
diff? .bin
ist leer (Exit 0), was bedeutet, dass die Dateien genau gleich sind.
Dies ist der Teil, den ich NICHT verstehe:
dd ist selbst bei fehlerfreien Dingen langsam, da es winzige Lese- und Schreibvorgänge ausführt. Es verbringt viel Zeit damit, durch die fehlerhaften Teile des Laufwerks zu kauen, anstatt so viel fehlerfreies Zeug wie möglich zu lesen, und dann wieder die harten Sachen zu machen.
Worum geht es? Besonders der Teil " Es verbringt viel Zeit damit, durch die fehlerhaften Teile des Laufwerks zu kauen, anstatt so viel fehlerfreies Zeug wie möglich zu lesen und dann wieder das harte Zeug zu machen "? Es hat genauso lange gedauert wie oben gezeigt (obwohl ich einen sehr kleinen Teil der Daten überprüft habe, aber sollte das wichtig sein?).
gddrescue bietet den Schalter -r an , der die Anzahl der erneuten Lesevorgänge in einem "fehlerhaften Sektor" steuern soll. Dd scheint jedoch die ganze Zeit mit -r0 zu laufen (da dies dieselbe Zeit in Anspruch nahm). Ist diese Option also nur für die "Nachbearbeitung" gedacht? Was ich bei bekommen, ist , dass die ursprünglich beide dd und gddrescue scheinen zu laufen -r0 und dd scheint nicht zu kauen durch die fehlerhaften Teile mehr als gddrescue (sie scheinen beide halt an einem schlechten Block für 15-18 Sekunden geben oder nehmen, also was ist los , wie ist gddrescue schneller ???)
Wofür ist die Option -D (verwenden Sie synchrone Schreibvorgänge für die Ausgabedatei)? Ich habe keinen Unterschied zu einigen der durchgeführten Tests festgestellt.
Kann jemand das Ganze kommentieren? Vielen Dank.
Abhängig davon, wann Ihre Festplatte sowie der Hersteller hergestellt wurde und welche Firmware-Version mit modernen Festplatten ausgeführt wird, werden fehlerhafte Sektoren von der Firmware entfernt und das Laufwerk kann die fehlerhaften Sektoren überspringen. Daher kann der Gedanke, eine Festplatte aus schlechten Sektoren zu "retten", in dieser Hinsicht umstritten sein. Die Frage, ob die jetzt schlechten Sektoren einst gültige Daten hatten, scheint die von Ihnen gesuchte Falllösung zu sein - kein Wortspiel beabsichtigt!
Auf grc.com gibt es eine Software namens Spinrite 6, die behauptet, Festplatten mit fehlerhaften Sektoren reparieren zu können. Es ist kostenpflichtige Software, und ich habe es nie ausprobiert. Es lohnt sich, darüber zu lesen, insbesondere wenn versucht wird, eine Festplatte "wiederzubeleben", und sie tatsächlich wie beschrieben funktioniert. Die FAQ auf grc.com zu Spinrite 6 gibt an, dass es eine 30-tägige Geld-zurück-Garantie gibt (und es gibt keine Testversion oder kostenlose Version). Hinweis: Ich bin weder mit grc.com verbunden, noch empfehle ich es für Ihre Situation. Ich weiß nur, dass es existiert und möglicherweise wie angekündigt funktioniert. Nehmen Sie einfach nicht mein Wort dafür - Vorbehalt.
In Bezug auf die Beurteilung, ob gddrescue dd "überlegen" ist, zumindest in Bezug auf die Fähigkeit, zwischen der Anzahl der auf einem problematischen Sektor durchgeführten Festplattenlesevorgänge und einer beliebigen Anzahl von Lesevorgängen auf einem fehlerhaften Sektor zu unterscheiden (da es als nicht markiert ist) Funktionssektor in einer Liste fehlerhafter Sektoren in einer Firmware-Liste) scheint mir für eine qualitative Verwendung von gddrescue oder dd nicht nützlich zu sein.
Es kann nützlich sein, die Webseite dd (Unix) unter folgender Adresse zu lesen: https://secure.wikimedia.org/wikipedia/en/wiki/Gddrescue#Recovery-oriented_variants_of_dd
Es kann auch nützlich sein, einen Blick darauf zu werfen: So erstellen Sie ein Image einer abgestürzten Festplatte mit UBCD, dd-retten und P2 eXplorer unter: http://www.myfixlog.com/fix.php?fid= 21
quelle