Versuch Daten mit ddrescue zu kopieren
Die alte und die neue Festplatte sollten elektrisch und datentechnisch an ein funktionsfähiges System angeschlossen werden. Man kann jedoch auch über Netzwerk etc. wegsichern, je nachdem was einem besser liegt.Booten mit Linux-Live-Cd (am besten sollte ddrescue schon enthalten sein).
Ich habe das Ganze mit einer Kubuntu Live-CD gemacht und habe ddrescue nach Modifikation der sources.list
(Universal Repos freischalten) live nachinstalliert.Beide Festplatten (alt und neu) sind am System angeschlossen.
Die Eingabe von fdisk -l zeigt beide Festplatten im System an.
Wichtig, die Geräte müssen als Device existieren. Von einer Festplatte, die nicht unter /dev/xxx gelistet ist kann man nichts mehr runterkopieren.
Nun starten wir den Kopiervorgang mit ddrescue. Wichtig dabei ist, unbedingt ein Logfile anzugeben (welches natürlich idealerweise an einem externen Speicherort abgelegt werden sollte, weil über dieses Logfile jederzeit eine Abbruch/Pausieren des Kopiervorgangs möglich ist und eine Fortsetzung an genau der gestoppten Stelle möglich ist, z.B. notwendig, wenn man die defekte Festplatte immer mal wieder ausbauen und über Nacht in den Kühlschrank stellen muss.
Hier die Hilfe von ddrescue
GNU ddrescue – Data recovery tool.
Copies data from one file or block device to another,trying hard to rescue data in case of read errors.
Usage: ./ddrescue [options] infile outfile [logfile]
Options:
-h, –help display this help and exit
-V, –version output version information and exit
-b, –block-size= hardware block size of input device [512]
-B, –binary-prefixes show binary multipliers in numbers [default SI]
-c, –cluster-size= hardware blocks to copy at a time [128]
-C, –complete-only do not read new data beyond logfile limits
-d, –direct use direct disc access for input file
-e, –max-errors= maximum number of error areas allowed
-i, –input-position=
starting position in input file [0]
-n, –no-split do not try to split error areas
-o, –output-position=
starting position in output file [ipos]
-q, –quiet quiet operation
-r, –max-retries= exit after given retries (-1=infinity) [0]
-s, –max-size= maximum size of data to be copied
-t, –truncate truncate output file
-v, –verbose verbose operation
Numbers may be followed by a multiplier: b = blocks, k = kB = 10^3 = 1000,Ki = KiB = 2^10 = 1024,
M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc…Einige neuere Funktionen wie -d stehen erst in neueren Versionen von ddrescue zur Verfügung, wenn nötig eben halt selbst kompilieren.
Ich habe bewusst -r0 gewählt, da ich ewige Leseversuche vermeiden wollte, damit die defekte Platte weitestgehendst geschont wird. Mit -d kann man den Kernel umgehen und direkt vom Gerät lesen, was u.U. auch bessere Ergebnisse bringt.
Der Befehl könnte also ungefähr so aussehen:
ddrescue -r0 -v -d -n /dev/sda /dev/sdb /mnt/usbstick/ddrescue.log
/dev/sda = Quelle
/dev/sdb = Ziel (in meinem Fall die neue Disk, könnte aber auch eine Datei sein z.B. target.img)
/mnt/usbstick/ddrescue.log = Logfile auf externem USB-Stick
Man kann nun jederzeit mit Ctrl+C den Kopiervorgang abbrechen und mit obigem Befehl wieder fortsetzen.
Im Nachhinein muss ich sagen ist es besser als Ziel für den Kopiervorgang ein File auf einer anderen Festplatte anzugeben (nicht die neue Platte), damit man auf jedenfall eine Sicherungskopie der maximal lesbaren Daten als Datei hat. !!! Achtung, bitte beachten, die Festplatte auf die man in ein File sichert muss entsprechend große Dateien abkönnen! Da der Kopiervorgang sehr lange dauert kann man ggf. auch zur Laufzeit die Zieldatei komprimieren um Platz zu sparen.
Nach ca. 72 Stunden war dann der Kopiervorgang abgeschlossen.
Natürlich habe ich die neue Festplatte nicht sofort ins Notebook eingebaut und gestartet, sondern von der Kopie ein Acronis Image abgezogen.