Bevor man anfängt sollte man ein Image der kompletten Partition anlegen und Reparaturversuche nur an der Kopie vornehmen.
dd if=/dev/hda of=/Ort/Datei.
Genauer wird das in dem Artikel Imageerstellung mit dd und ddrescue beschrieben.
Wenn man sich nicht sicher ist, ob es nicht doch an anderer Hardware liegt, mal ein Speichertest/Systemcheck machen bzw. die Festplatte mit dem Programm badblocks
testen.
Die Dateien sollte nur entweder
Wenn man geöffnete Dateien schon gelöscht aber noch geöffnet hat, beschreibt dieser Artikel (Bring back deleted files with lsof) wie man sie trotzdem wieder herstellen kann. Nur darf das Programm (das die Datei geöffnet hat) darf nicht vorher geschlossen werden. Der Grund ist das Datenblöcke bzw. der Speicherplatz von Dateien/Verzeichnissen erst wirklich freigegeben wird wenn der Linkcount auf 0 steht. Eine geöffnete (aber schon gelöschte) Datei zählt auch als 1, bei schließen ist der Linkcount 0 und der Platz wird freigegeben. Die Problematik wird in dem Artikel The mysteriously persistently exploitable program explained aus der Sicherheitsperspektive beleuchtet.
fdisk -l
zeigt die aktuelle Partitionierung an.
conv=noerror
ist nur nötig wenn Lesefehler zu erwarten sind bzw. dann nicht abgebrochen werden soll)dd if=/dev/sda of=/dev/sdb bs=8225280 conv=noerror
dd_rescue /dev/sr0 defekte-CD.iso
Grundsätzlich erschweren fragmentierte Daten die Wiederherstellung,
Dateisystem | Wiederherstellungschancen bei | |
---|---|---|
fragmentierten Daten | zusammenhängenden Daten | |
fat32 | schlecht, mit FAT-Eintrag wird auch die Liste der Cluster gelöscht. | gut, Verzeichniseintrag enthält Startposition |
ext2/3 | schlecht, im Rohdatenscan wird meist nur der erste Teil gefunden | Chancen im Rohdatenscan |
ntfs | gut, Verzeichniseintrag enthält eine komplette List der Cluster („Run List“) in denen Daten zu finden sind |
Die superblocks enthalten wichtige Informationen über das Dateisystem, wie Größe, freier Speicher etc. (ähnlich der File Allocation Table bei FAT-Partitionen). Eine Partition mit defektem Superblock kann nicht eingehangen/gemountet werden.
Daher existieren auf der Platte auch mehrere Kopien davon. Mit dem Befehl
sudo mke2fs -n /dev/sdb1
kann man sich die Speicherorte alternativer Superblocks anzeigen lassen.
Mit einem der alternativen Superblöcke kann man dann reparieren (hier 8193)
e2fsck -b 8193 /dev/device
und dann neu booten.