Datenrettung mittels einer Knoppix
LIVE-CD über das Netzwerk
 

Wird unter Windows eine Datei gelöscht, so wird nur der Eintrag in der Inhaltsangabe der Festplatte entfernt. Die Datei an sich liegt immer noch auf der Platte und zwar so lange, bis eine andere Datei darüber gespeichert wird. Bei großen Dateien, z.B. mehrere Gigabyte großen AVI-Dateien kann Datenrettungs-Software versagen. Die Software zeigt zwar den Verweis auf die Datei noch an, gibt aber deren Größe mit 0 Bytes an, obwohl die Daten ja immer noch auf der Platte liegen. Hier kommt nun Knoppix zum Einsatz und der Befehl dd_rescue.

Zuerst braucht man eine Knoppix-CD. Wie alle freien Linux-Distributionen kann man sich das Image unter www.knoppix.de einfach runterladen. Nach dem anschließendem Brennen, legt man die CD in das Laufwerk des Computers von dem die Daten gerettet werden sollen und startet ihn. Sollte nun kein Knoppix Startbildschirm erscheinen, liegt das vermutlich an einer falschen Boot-Reihenfolge im BIOS. Im BIOS muß zwingend das CD-ROM Laufwerk zuerst kommen. Erscheint der Startbildschirm fordert uns der Eintrag boot: auf, noch zusätzliche Boot-Parameter einzugeben. Da wir im Normalfall keine brauchen, starten wir Knoppix einfach über die ENTER-Taste. Das Laden dauert nun ein bischen, da Knoppix die Hardware untersucht und die entsprechenden Treiber lädt. Besitzt man einen sehr neuen PC, kann hier die Datenrettung vorschnell enden, weil Knoppix die erforderlichen Treiber nicht integriert hat und den Dienst verweigert. Sollte es sich aber nur um die Grafik-Treiber handeln die fehlen, kann man entweder beim starten als Boot-Parameter knoppix 2 angeben (dann startet Knoppix nur im Runlevel 2 - ohne grafische Oberfläche) oder man trägt in der Datei xorg.conf den Standardtreiber vesa ein (siehe hierzu Konfiguration des X-Servers - xorg.conf). Eine Liste der möglichen Bootparameter und sonstiger Optionen gibt es mit F2, bzw. F3.

Nach dem Knoppix vollständig geladen hat, klickt man den Willkommensbildschirm weg und muß nun erst einmal die Netzwerkkarte einrichten. Hat Knoppix die Karte beim Start erkannt und den korrekten Treiber geladen, muß man lediglich die I.P. Adresse vergeben. Dazu brauchen wir erst einmal die Bezeichnung der Karte. Wir öffnen eine Eingabeaufforderung und machen uns mit su - zum root, das ist der "Administrator" unter Linux. Knoppix hat kein Paßwort für root vergeben, also reicht es bei der Paßwort-Eingabe ENTER zu drücken. Unter

# cat /proc/net/dev

finden wir die Netzwerkschnittstellen. Dort steht ein Eintrag lo für die lokale Loopback-Schnittstelle und ein Eintrag eth0 und/oder eth1 für Netzwerkkarten. Entweder verwendet man jetzt das Knoppix eigene Tool netcardconfig (zu finden im Startmenü) um die Netzwerkkarte zu konfigurieren oder man macht es selber von Hand. Von Hand sieht der Eintrag so aus (die I.P. Adresse eures Netzes müßt ihr selber wissen):

# ifconfig eth0 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.0.255 up

192.168.1.20 bezeichnet die I.P.Adresse und up fährt die Schnittstelle hoch. Nun hat man eine Verbindung zum Netzwerk. Für die Speicherung der Daten sollte man auf einem anderen Windows-Rechner einen Ordner im Netzwerk freigeben. Mittels des Befehls smbmount kann man dann diesen in den Verzeichnisbaum von knoppix einhängen. Dazu erstellt man sich einen Ordner in dem Verzeichnis /mnt. Als Beispiel nennen wir ihn mal recovery.

# mkdir /mnt/recovery

Mit

# smbmount \\\\Rechnername\freigegebener_Ordner /mnt/recovery -o username=Benutzername,lfs

oder auch

# smbmount -t smbfs -o username=Benutzer,lfs //Rechnername/Freigabe /mnt/recovery

hängen wir die Freigabe in den Verzeichnisbaum ein. Zu beachten ist hier die unterschiedliche Schreibweise mit Slash/Backslash. Der Schalter -o steht für zusätzliche Optionen, wie z.B. der Benutzername mit dem man sich am entfernten Rechner anmeldet. Sehr wichtig ist auch die Option lfs, die -obwohl nirgends beschrieben- bewirkt, daß Samba Dateien größer 2 GB übertragen kann. Ohne diese Option bricht der Kopiervorgang nach 1,99 GByte mit der Fehlermeldung "maximale Dateigröße erreicht" ab.

Nach der Eingabe von smbmount wird man nach dem Paßwort für den Benutzernamen gefragt, so fern man es nicht zusätzlich bei den Optionen mit angegeben hat. Hat man kein Paßwort vergeben, genügt es die ENTER-Taste zu drücken. Die entfernte Freigabe ist nun eingehängt und kann auch mittels

# ls -al /mnt/recovery

betrachtet werden. So, nun haben wir die Verbindung von unserem Knoppix-Rescue-System zu unserem Speicherplatz auf einem anderen Windows-Rechner. Jetzt geht es ans Eingemachte mit dem Befehl dd_rescue. Vorher sollte man allerdings noch herausfinden, auf welcher Partition die Daten liegen. Das geht einfach mit dem Befehl

# fdisk -l

Er zeigt alle vorhandenen Partitionen mit deren Device-Name und Größe an. Nach Eingabe von

# dd_rescue -s 0 -S 0 /dev/hda6 /mnt/recovery/daten.dat

startet die Kopieraktion. dd_rescue kopiert dabei einfach die Rohdaten auf der Partition hda6 unabhängig von deren Struktur auf der Festplatte in die Datei daten.dat auf dem entfernten Rechner. Die Schalter -s und -S bezeichnen dabei den Startpunkt des In- und Output-Files. Logischerweise ist der Startpunkt des Output-Files (-S) immer null, da eine Datei ja mit null beginnen sollte. Der Schalter -s für den Startpunkt des Input-Files ist da schon interessanter, da es ja sein kann, daß auf unserem entferntem Rechner nicht genügend Speicherplatz vorhanden ist und man daher nicht die gesamte Festplatte kopieren kann, sondern immer nur kleine Häppchen. Für das nächste Häppchen ändert man den Wert für den Schalter -s in z.B. 1900M (das M steht für Megabytes):

# dd_rescue -s 1900M -S 0 /dev/hda6 /mnt/recovery/daten2.dat

So beginnt dd_rescue erst ab ca. 1,9 GByte mit dem Auslesen der Daten. Es ist auch möglich eine maximale Dateigröße die kopiert werden soll unter den Optionen anzugeben. Das geschieht mit dem Schalter -m:

# dd_rescue -s 0 -S 0 -m 2000M /dev/hda6 /mnt/recovery/daten.dat

beschränkt die Länge der kopierten Datei auf 2000 MByte.

Nun die große Frage: Was anfangen mit einem File, daß wild durcheinander Daten enthält? Die Antwort ist ein Hex-Editor wie z.B. der kostenlose HxD. Zu finden unter www.mh-nexus.de. Sucht man nach bestimmten Files, sollte man im Hex-Editor ein vergleichbares File aufmachen. Jedes File hat in seinem Kopf eine Kennung. Bei DV-Dateien handelt es sich z.B. um das Kürzel RIFF. Nun muß man nur noch mittels der Suchfunktion im Hex-Editor nach der Kennung suchen, alle Daten vor der Kennung löschen und das File neu speichern. Handelt es sich bei den nachfolgenden Daten nach der Kennung um ein noch nicht beschädigtes File und liegt das File ohne Fragmentierung in einem Stück vor, so kann man es Problemlos in der dafür vorgesehenen Anwendung öffnen. Leider ist mir das bei 3 gelöschten Simpsons-Folgen nur bei einer Folge gelungen, da diese "in einem Stück" hintereinander auf der Festplatte lag. Bei fragmentierten Dateien besteht leider keine Chance mehr eine größere Videodatei wieder herzustellen. Im Falle von Textdateien ist es natürlich viel einfacher, da der Text ja in der kopierten Partition irgendwo im Klartext drinsteht und man mittels der Suchfunktion im Hex-Editor danach suchen kann.