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

ddrescue sehr langsam

Hallo,

ich versuche grade mit ddrescue meine NTFS Festplatte zu retten. Es sind zwei Partitionen drauf, die erste war in relativ kurzer Zeit in ein Image gerettet (70gb).

Die zweite (400GB) "hängt" jetzt seit 7 STunden bei 104GB mehr oder weniger fest und schreitet nur megabyteweise fort.

Ich hab jetzt extra ddrescue ohne "_" verwendet, da dieses defekte Sektoren anscheinend erstmal konsequent übergehen soll und diese am Ende versucht zu reparieren.

Also bis jetzt sind wie gesagt 100 von 400gb kopiert und es liegen 330 Fehler mit 31MB vor.

Mein verwendeter Befehl lautet:
mkdir festplatte
ntfs-3g /dev/sdb6 /root/festplatte
ddrescue -n /dev/sda2 /root/festplatte/daten.iso /root/festplatte/logfile.log

Und gehe ich richtig in der Annahme, dass wenn ich folgenden Befehl verwenden würde, dass ich dann direkt auf einImage verzichten könnte und ich quasi die Festplatte direkt klone?

ddrescue -n /dev/sda2 /dev/sdb6

Warum dauert das ganze nun - nicht wie erwartet mit ddrescue - so lange?

mfg,
Nils
 
Das physische Lesen besorgt immer noch die Elektronik der Festplattte, sie ist schließlich die Einzige, die weiß, wo jeder einzelne logische Sektor zu finden ist, und sie ist nicht darauf ausgelegt, bei einem nicht lesbaren Sektor gleich das Handtuch zu werfen (sie probiert es immer wieder, auch wenn sie nach einer Anzahl erfolgloser Versuche bereits "Sektor fehlerhaft" gemeldet hat). Jede Festplatte hat bereits bei der Herstellung defekte Sektoren, im Betrieb können es durchaus mehr werden, die dann (nach einem irgendwann einmal erfolgreichen Lesen) durch Reserve-Sektoren ersetzt werden. Je mehr nicht lesbare Sektoren (die ddrescue dann durch Nullen ersetzt) vorhanden sind, desto länger dauert Deine Operation.

Ob Du eine Image-Datei erzeugst oder auf eine Partition schreibst, ist Geschmackssache.
 
Ok. Dann die Frage, was ich tun kann um die Aktion zu beschleunigen? Gibt es noch andere Programme oder bin ich zur Datenrettung mit ddrescue verdammt? Kann es sein, dass ich dd_rescue statt ddrescue verwende, ohne es zu merken - was ich mir nicht vorstellen kann?

ddrescue hängt jetzt seit gestern um 10 Uhr bei 105GB~ rum und es geht nur MB-weise vorane. Es hat jetzt seit gestern 10 Uhr 3 GB geschafft. In dem Tempo würde die Kopie der Platte mehrere Monate in ANspruch nehmen.

Ich werde mal den Kopiervorgang pausieren, hab ja ne Logfile angelegt.

mfg
Nils
 
Du solltest die Aktion nicht beschleunigen, sondern geduldig warten, auch wenn es Tage dauert, wenn dir deine Daten lieb und wichtig sind.
 
Es geht einfach darum, ggf. auf ein paar Daten zu verzichten. Ich hab jetz noch 24 Stunden laufen lassen, der kam aber kein Gigabyte voran.Wenn es paar Tage dauern würde wäre ja in Ordnung, aber so dauert es Monate.

Bis zu diesen 102Gb hat ddrescue normal gearbeitet. Vll sollte ich es mal von hinten laufen lassen und dann zwei Datein zusammenfügen?
 
Curby schrieb:
Vll sollte ich es mal von hinten laufen lassen
Mache es, dann kannst Du errechnen, wie groß der problematische Bereich ist, und danach entscheiden, ob Du weitere Versuche machen willst (was meiner Meinung nach nur dann etwas bringt, wenn es mehrere problematische Bereiche und dazwischen größere Mengen korrekter Daten gibt).
 
A

Anonymous

Gast
Wenn dir ddrescue zu gründlich ist, es geht auch mit dd selbst.

Code:
dd if=/dev/sd?? of=/PATH/image_datei  bs=512 conv=noerror,sync
ob es was bringt ?. Je nachdem was das für Lesefehler sind, versucht erst mal das Betriebssystem und der Treiber schon einige Mal das zu korrigieren, bis es endgültig an die Applikation einen Lesefehler meldet. Wenn dann ddrescue das Ganze noch was weiß ich wie oft vom Betriebssystem wiederholen lässt. :???: dauert das natürlich ewig.
dd mit den obrigen Optionen setzt den jeweiligen Block beim ersten vom BS gemeldeten Fehler auf NULL. Als Log müsstest du stderr in eine Datei leiten.
zb
Code:
dd if=/dev/sd?? of=/PATH/image_datei  bs=512 conv=noerror,sync  2> logdatei.txt

hast dann aber selbst keine Ausgabe von dd mehr, kannst das Ganze also nur noch mit
Code:
tail -f logdatei
verfolgen und solange es keine Fehler gibt hast du gar keine Meldungen. Vorsicht, nicht übertreiben und mit kill Signale an dd zu schicken um Status-Ausgaben zu erhalten. Ich habe schon mehrfach gesehen das dd das sich nicht permanent gefallen lässt.

Fehler könntest du verringern, und damit die Lesegeschwindigkeit an den defekten Stellen verbessern, mit einem vergrößern der Blocksize. Je nachdem was die Log von ddrescue für Fehlerhäufungen anzeigt könntest du eventuell 1024 oder auch mehr einsetzen (wichtig, muss in diesem Fall immer durch 512 teilbar sein)

Aber bedenke, eine defekte Platte mit solchen Fehlern wird nicht besser wenn immer und immer wieder die defekten Blöcke gelesen werden.

robi
 
Oben