- Registriert
- 14 Juli 2013
- Beiträge
- 6.830
[anchor="vorwort"]Vorwort[/anchor]
Eine defekte Festplatte ist immer ärgerlich, vor allem wenn sich wichtige Daten darauf befinden. Im besten Fall hat man ein aktuelles Backup. Solltet ihr keines haben, dann ist es jetzt zu spät. Bedenkt daher für die Zukunft: Eine Festplatte kann, genauso wie auch eine SSD, immer und zu jedem Zeitpunkt den Geist aufgeben. Sowohl ein Softwarefehler, als auch ein Hardwarefehler können eure Daten sofort in's Nirvana befördern. Ein vernünftiges Backupkonzept ist daher unerlässlich!
Ist aber mal der "Fall der Fälle" eingetreten, solltet ihr versuchen, das beste daraus zu machen. In vielen Fällen ist eine Festplatte nur "halb" defekt und viele Daten sind noch rettbar. Solltet ihr lebenswichtige Daten auf der Festplatte haben, klemmt diese bitte sofort ab und gebt sie an einen professionellen Datenretter (z. B. http://www.datenretter.de/ oder http://www.krollontrack.de/datenrettung/), wird allerdings auch etwas Geld kosten.
Wenn euch ein professioneller Datenretter zu teuer ist oder die Daten nicht so wichtig sind, dann seid ihr gerne dazu eingeladen, es nach dieser Anleitung zu probieren.

[anchor="inhaltsverzeichnis"]Inhaltsverzeichnis[/anchor]
- Habe ich einen Software- oder Hardwarefehler?
- Datenrettung: Live-CD vorbereiten
- Komplettsicherung der Festplatte
- Hardwarefehler: Ist meine Festplatte wirklich defekt? (Optional)
- Hardwarefehler: Image aufarbeiten und zurückspielen
- Softwarefehler: Partitionstabelle zerstört
- Softwarefehler: Einzelne Dateien gelöscht
[anchor="fehlerklassifizierung"]Habe ich einen Software- oder Hardwarefehler?[/anchor]
Je nachdem, ob ein Hardware- oder Softwarefehler vorliegt, ergibt sich eine komplett unterschiedliche Vorgehensweise. Daher solltet ihr zuerst einmal feststellen, welcher Fehler bei euch vorliegt.
- Hardwarefehler: Die Festplatte wird im BIOS gar nicht mehr erkannt?
In diesem Fall versucht bitte die Punkte, die hier aufgelistet sind.
- Hardwarefehler: Festplatte ist im "sterben"?
Die Festplatte ist nur "halb" defekt und weist daher einen oder mehrere dieser Punkte auf:
- Daten sind teilweise nicht mehr lesbar.
- Schreiben und Lesen dauert sehr lange bzw. deutlich länger als gewöhnlich.
- Klacken der Festplatte ist hörbar.
- Festplatte macht generell neue Geräusche.
- Kopieren der Daten bricht unter Windows mit einer Fehlermeldung ab.
Hier lohnt es sich durchaus, eine Datenrettung zu versuchen, hier kann man Glück haben. Bevor ihr irgendwelche Rettungsversuche startet, beachtet bitte die folgenden Punkte, denn sie steigern eure Erfolgsaussichten deutlich:
- Auf die Festplatte nur lesend zugreifen, keine neuen Daten schreiben. Festplatte nicht mehr unter Windows benutzen, denn Windows liest/schreibt gerne mal ungefragt was.
- Ein- und Ausschaltvorgänge der Festplatte minimieren.
- Festplatte nur so lange laufen lassen, wie es nötig ist.
- Festplatte möglichst wenig bewegen, Erschütterungen jetzt erst recht vermeiden.
- Sollte das das auf der Festplatte installierte Betriebssystem noch laufen, nutzt das auf keinen Fall um die Daten zu retten. Es belastet die Festplatte nur unnötig und schreibt viele neue Daten.
- Softwarefehler
Anzeichen für Probleme mit Partitionstabelle/Dateizuordnungstabelle:
- Festplatten-Partitionsformat ist "RAW".
- Dateien haben kryptische Namen.
- Partition/Festplatte versehentlich formatiert (Formatieren löscht nur die Zuordnungstabelle).
- Einzelne Dateien versehentlich gelöscht.
[anchor="livecd"]Datenrettung: Live-CD vorbereiten[/anchor]
In diesem Thread möchte ich euch zeigen, wie ihr viele Probleme mit einer Linux-Live-CD lösen könnt. Meine Wahl fiel bei der Live-CD auf "grml", einer auf Debian basierenden Distribution. Die Bedienung der Distribution ist weitestgehend per Kommandozeile. Für Windowsnutzer ungewohnt, aber die Kommandozeile ist unter Linux sehr mächtig!
Um die Tools verwenden zu können, ist zuerst ein wenig Vorarbeit nötig. Für die meisten Linuxnutzer mag der Teil eher langweilig sein, aber trotzdem habe ich es für Windowsnutzer extra ausführlich zusammengeschrieben.
- Was wird benötigt?
- grml Live-CD oder Live-USB-Stick (Unetbootin). Nehmt bitte grml-full, bei grml-small ist kein testdisk enthalten. Das brauchen wir unter Umständen später noch.
- Zweite Festplatte mit genügend freiem Speicherplatz um alle Daten der alten Festplatte aufnehmen zu können. Bei einer 1:1-Sicherung mindestens so groß, wie die zu rettende Festplatte.
- PC, den ihr ein paar Tage nicht braucht und der daher ein paar Nächte durchlaufen kann. Je nach Defekt kann es sehr lange dauern.
- grml booten
Startet grml bitte mit der Standard-Bootoption. Nach einem kurzen Bootvorgang begrüßt euch grml mit einem freundlichen "Press a key:". Dort könnt ihr mit "d" das DE-Tastaturlayout einstellen (sonst US). Wenn ihr die Sicherung über das Netzwerk machen wollt, dann könnt ihr das Netzwerk mit der Taste "e" konfigurieren. Mit Enter gelangt ihr in die Kommandozeile (root@grml ~ #), welche wir benötigen.
- Festplatten identifizieren
Zuallererst müsst ihr herausfinden, welche Gerätenamen eure Festplatteund Partitionen bekommen haben. Vergleichbar ist das mit den Laufwerksbuchstaben (C:\, D:\) unter Windows. Dieses Bild zeigt recht gut, wie die Bezeichnungslogik unter Linux im Vergleich zu Windows funktioniert.
Welche Gerätenamen eure Festplatten bekommen haben, könnt ihr mit dem Befehl [kw]fdisk -l[/kw] herausfinden. Die Ausgabe sieht folgendermaßen aus:
Anhand der Festplattengröße und Partitionierungsstruktur kann man normalerweise die Festplatten ziemlich eindeutig zuordnen. Schreibt euch bitte genau auf, welche Namen Festplatteund Partitionen bekommen haben. Wenn ihr das später vertauscht, kann das fatale Folgen haben!
Hier: /dev/sda ist eine alte 430MB-Festplatte aus meinem Windows 3.1 PC (1 Partition), /dev/sdb ist ein USB-Stick, auf den gerettet werden soll (2 Partitionen). Mit externen USB-Festplatten funktioniert es genauso wie auch mit dem USB-Stick. Wenn ihr also eine interne Festplatte auf eine externe Festplatte kopieren wollt, so sollten die Befehle i. d. R. schon passen. Bei allen Befehlen aber trotzdem immer über die Gerätenamen schauen und nicht blind kopieren!
- Backupfestplatte vorbereiten
Nun müsst ihr zuerst den Ort vorbereiten, wo die Daten gesichert werden sollen. Alle möglichen Speichermedien sind in Ordnung: Interne oder externe Festplatte, USB-Stick oder eine Netzwerkfreigabe bzw. ein NAS. Wichtig ist nur, dass genügend Speicherplatz frei ist (1TB HDD → >1TB freier Speicher).
Um euer Backup auf ein Speichermedium legen zu können, müsst ihr dieses zuerst einhängen (=mounten). Das ist man von Windows nicht gewohnt, denn Windows erledigt das automatisch. Auch viele Linuxdistributionen tun das von selbst. grml aber nicht.
Um eure Festplatte zu mounten erstellt ihr zuerst mit [kw]mkdir /media/disk[/kw] einen neuen Ordner.
Mit dem folgenden Befehl könnt ihr dann eure Festplattenpartition im Ordner /media/disk einhängen:
Code:[COLOR="#ff0000"]↓ Gerätename der Backup[U]partition[/U] (Anpassen, siehe Punkt 2)[/COLOR] mount /dev/sd[COLOR="#ff0000"]b1[/COLOR] /media/disk
Wenn ihr ein Netzlaufwerk (Windows/Samba-Freigabe) mounten wollt, so geht das mit diesem Befehl:
Code:mount //[COLOR="#ff0000"]IP-Adresse[/COLOR]/[COLOR="#ff0000"]Freigabename[/COLOR] /media/disk -o username=[COLOR="#ff0000"]Benutzername[/COLOR],password=[COLOR="#ff0000"]Passwort[/COLOR] Beispiele: mount //192.168.2.120/freigabe /media/disk mount //192.168.2.100/daten /media/disk -o username=thomas,password=12345
Mit [kw]ls /media/disk[/kw] könnt ihr die auf der Partition/Freigabe enthaltenen Daten sehen. Ist es die falsche gewesen, könnt ihr mit [kw]umount /media/disk[/kw] nochmal von vorne anfangen.
[anchor="komplettsicherung"]Komplettsicherung der Festplatte[/anchor]
Egal ob Hard- oder Softwarefehler, bevor ihr irgendwelche Rettungsversuche unternehmt, solltet ihr zuerst eine 1:1-Kopie eurer bestehenden Festplatte erstellen. Bei einem Hardwaredefekt kann eine Festplatte ziemlich schnell komplett sterben. Deswegen ist es viel entspannter, die Daten von einem Backup auf einer guten Festplatte zu retten, als am lebenden Objekt.

Einzige Ausnahme: Bei versehentlich gelöschten Dateien kann man sich i. d. R. eine Komplettsicherung sparen. Hier greifen wir nur lesend auf die Festplatte zu.
Sicherung starten
Für die Sicherung benutzen wir das Programm ddrescue. Dieses Programm macht eine bitweise Kopie der Festplatte und läuft dabei ziemlich fehlertolerant, was vor allem bei einem Hardwaredefekt gut ist. Auch hier gilt es wieder, den Festplattennamen anzupassen, diesmal auf die defekte Festplatte, die ihr retten wollt.
Code:
ddrescue -r0 -v -d -n /dev/sd[COLOR="#ff0000"]a[/COLOR] /media/disk/ddrescue.img /media/disk/ddrescue.log
Die Parameter besagen folgendes:
- -r0 Anzahl der Wiederholungsversuche im Fehlerfall (bewusst auf 0 gewählt, um die Festplatte nicht unnötig zu belasten)
- -v "Verbose"=Alle Meldungen anzeigen
- -d Direkter Hardwarezugriff
- -n Image bei Fehlern nicht aufteilen
Und so sieht es aus:

Die Sicherung kann nun, je nach Zustand und Größe der Festplatte, mehrere Stunden bis Tage dauern. Unter "errors" kann man die Anzahl an physikalischen Lesefehlern sehen, unter "errsize" die Größe der Fehlerstelle
Nach dem Sichern habt ihr dann eine 1:1-Kopie in Form eines Images (Festplattenabbilds). Dieses muss man dann weiter aufbereiten oder kann es im besten Fall (keine Lesefehler) direkt wieder auf eine neue Festplatte zurückspielen.
[anchor="wirklichdefekt"]Hardwarefehler: Ist meine Festplatte wirklich defekt? (Optional)[/anchor]
Da nun erstmal alle wichtigen Daten gesichert sind, könnt ihr nun schauen, ob die Festplatte auch wirklich defekt ist oder ob ein anderes Problem vorliegt. Auch dafür hat grml die passenden Tools an Bord.
- SMART
Für alle, denen SMART nichts sagt: SMART (Self-Monitoring, Analysis and Reporting Technology) ist eine Festplatten-interne "Überwachungsssoftware", welche ständig die wichtigsten Parameter einer Festplatte überwacht. Über die SMART-Werte kann man Rückschlüsse auf die Zuverlässigkeit einer Festplatte ziehen. Eine Auflistung aller gängigen Parameter und ihrer Aussage findet man hier oder auf anderen einschlägigen Seiten.
Die Smartwerte kann man unter grml wie folgt auslesen:
Code:smartctl -a /dev/sd[color="#ff0000"]a[/color]
- badblocks
Badblocks ist ein kleines Tool, welches die Festplatte mit Daten beschreibt und nachher wieder versucht, die Daten zu lesen. Dabei fallen defekte Blöcke sehr schnell auf. Ein einfacher Test, welcher keine Daten auf der Festplatte überschreibt, lässt sich so starten:
Code:badblocks -nvs /dev/sd[color="#ff0000"]a[/color]
Badblocks arbeitet sehr gründlich, man sollte rund 4-8 Minuten pro GB einplanen. Ein kompletter Test wird daher bei aktuellen Festplatten mehrere Tage beanspruchen.
[anchor="zurueckspielen"]Hardwarefehler: Image aufarbeiten und zurückspielen[/anchor]
Hat man nun von der defekten Festplatte ein Image erstellt, kommt es ganz auf die Fehleranzahl und -position an, wie weit man das Image nun weiterverwenden kann.
- Wenige Fehler
Hier kann man das Image meist direkt wieder auf eine neue Festplatte spielen. Nach 1-2 Durchläufen von chkdsk sollten die verbleibenden Fehler behoben sein - zumindest die, die auch behebbar sind. In vielen Fällen bootet das Betriebssystem auch wieder. In jedem Fall sollte man alle seine Daten danach durchschauen, ob etwas fehlt oder beschädigt ist.
Es wäre auch empfehlenswert, das Betriebssystem neu zu installieren oder zumindest (unter Windows) mittels [kw]sfc /scannow[/kw] alle Systemdateien auf Beschädigung zu überprüfen.
Das Image kann man wie folgt auf eine neue Festplatte zurückspielen:- Festplatte mit [kw]umount /media/disk[/kw] aushängen, damit auch alle Daten sauber darauf geschrieben wurden.
- grml mit [kw]shutdown -h now[/kw] herunterfahren.
- Neue Festplatte einbauen.
- Die Schritte unter "Live-CD vorbereiten" nochmal durchführen, auch die Backupfestplatte einhängen (denn wir wollen nun davon lesen).
- Mit dem Tool dd könnt ihr dann die Daten vom Festplattenimage auf die neue Festplatte zurückkopieren:
Code:dd if=/media/disk/ddrescue.img of=/dev/sd[COLOR="#ff0000"]a[/color]
- Viele Fehler
Schlecht, sehr schlecht. Aber die Hoffnung stirbt zuletzt. Ihr könnt das Image genauso wie bei "wenig Fehler" einmal auf die Festplatte zurückspielen. Allerdings kommt es ganz darauf an, ob Partitionstabelle und Dateizuordnungstabelle soweit heile geblieben sind. Wenn nicht, weitermachen mit "Einzelne Dateien wiederherstellen".
[anchor="partitionstabelle"]Softwarefehler: Partitionstabelle zerstört[/anchor]
Hier sollte man sich kurz mit der Funktionsweise der Datenspeicherung auf Festplatten befassen. In den ersten 512 Byte einer Festplatte, dem sogenannten MBR (Master Boot Record), liegen der Bootloader (zum Starten des Betriebssystems), sowie eine Partitionstabelle. Diese enthält Anzahl, Position und Größe der auf der Festplatte befindlichen Partitionen. Diese Partitionen sind wiederum mit einem Dateisystem (FAT, NTFS) formatiert. Dieses verwaltet die Namen, Größe, Position, etc. der in der Partition befindlichen Daten. Alle Informationen darüber werden, je nach Dateisystem, z. B. in einer "Dateizuordnungstabelle" gespeichert.

Anm.: Das ist nur ein grundlegendes Prinzipbild zur besseren Veranschaulichung und legt daher keinen Wert auf 100%ige Korrektheit. Position und Art der "Dateizuordnungstabelle" hängt ganz vom verwendeten Dateisystem ab.
Moderne GPT-partitionierte Festplatten (GUID Partition Table, Nachfolger von MBR) funktionieren leicht anders, prinzipiell aber genauso.
Hier gibt es am Festplattenanfang noch einen MBR als Fallback für alte Software und Hardware, damit die GPT-Partitionstabelle nicht beschädigt wird (weist die komplette Festplatte als unbekannt/belegt aus). GPT ist ein verbesserter MBR, macht aber grundsätzlich nichts anderes. Vorteilhaft ist hier aber, dass es immer noch einen sekundären Header am Ende der Festplatte gibt. Falls einer der Header beschädigt wird, gibt es im Gegensatz zu MBR noch ein Backup.

Ist die Partitionstabelle nun aus irgendeinem Grund kaputt oder wurde eine Partition gelöscht, dann sind die Daten noch lange nicht weg. Nur niemand weiß mehr, wo sie liegen. Man hat hier nun zwei Möglichkeiten: Die komplette Partition "wiederfinden" und in der Partitionstabelle wieder eintragen oder die komplette Festplatte nach nutzbaren Dateien durchsuchen. Wir versuchen zuerst, die komplette Partition wiederzufinden, da das einfacher und besser ist. Die andere Methode folgt weiter unten bei "Einzelne Dateien wiederstellen".
Partitionstabelle wiederherstellen
Hierzu benötigen wird das Tool testdisk. Das Tool durchsucht die komplette Festplatte nach nutzbaren Partitionen, ungeachtet der in der Partitionstabelle eingetragenen Partitionen. Jede Partition hat eine bestimmte Abfolge an Bits am Partitionsanfang (Partitionsheader), welche testdisk in dem "Datenmüll" sucht. So findet es relativ schnell die Partitionen, die wirklich auf der Festplatte sind.
Da die Chancen auf Wiederherstellung i. d. R. ziemlich hoch sind, solange keine weiteren Daten auf die Festplatte geschrieben wurden, können wir testdisk direkt an der normalen Festplatte benutzen. Sollte wirklich was schiefgehen, hat man immer noch ein Backup auf der externen Festplatte.
Wir starten testdisk mit:
Code:
testdisk /dev/sd[color="#ff0000"]a[/color]
Auf die weitere Benutzung von testdisk möchte ich hier nicht weiter eingehen, da diese bereits im Wiki der Herstellerseite - wenn auch maschinell übersetzt - sehr gut dokumentiert ist. Hier geht's weiter.
Nach der Wiederherstellung einer Partition sollte diese auf jeden Fall auf Fehler überprüft werden!
[anchor="einzelnedateien"]Softwarefehler: Einzelne Dateien gelöscht[/anchor]
Hat man nur eine einzelne Datei gelöscht, so ist diese in den meisten Fällen noch auf der Festplatte vorhanden. Nur ihr Platz im "Inhaltsverzeichnis" des Dateisystems wird gelöscht und der Speicherplatz so zum Überschreiben freigegeben. Daher kann man die Festplatte auch nach verlorenen (gelöschten) Dateien durchsuchen.

Auch ist das die einzige Methode, wenn bei einem Hardwarefehler nichts mehr hilft, also die halbe Festplatte inkl. Partitonsstruktur und Dateisystem hinüber ist oder bereits ein Teil einer gelöschten Partition überschrieben wurde.
Festplatte bitweise nach Dateien durchsuchen und diese wiederherstellen
Hier brauchen wir das Tool "photorec". Jede Datei hat, abhängig von ihrem Dateiformat, immer eine eindeutige "Signatur", also eine bestimmte Bitfolge auf der Festplatte durch den Datei-Header. Photorec durchsucht die Festplatte nun nach diesen "Signaturen" und kann so viele bekannte Dateiformate wiederherstellen. Unbekannte Dateiformate und fragmentierte Dateien können aber so in den meisten Fällen nicht (vollständig) wiederhersgestellt werden.
Zuerst brauchen wir einen neuen Ordner, auf der externen Festplatte, in den wir alle Dateien retten wollen. Diesen kann man dann später in photorec auswählen.
Code:
mkdir /media/disk/Ordnername
Wir starten photorec direkt auf der Festplatte mit:
Code:
photorec /dev/sd[color="#ff0000"]a[/color]
Wenn ihr, wie oben beschrieben, ein Image einer defekten Festplatte gemacht habt, dann könnt ihr auch das mit photorec durchsuchen:
Code:
photorec /media/disk/ddrescue.img
Die Benutzung von photorec, ist genauso wie auch bei testdisk, im Wiki der Herstellerseite sehr gut beschrieben. Hier geht's weiter.
[anchor="beenden"]grml beenden[/anchor]
Hat man alle Daten gerettet, ist es nun an der Zeit, grml sauber zu beenden. Das kann man wie folgt tun:
Code:
umount /media/disk #USB-Festplatte aushängen, damit auch alle Dateien darauf geschrieben wurden
shutdown -h now #grml herunterfahren und PC ausschalten
Zuletzt bearbeitet: