Datenrettung von einem NTFS-Formatierten Datenträger mit dem Pinguin und dem Qemu.
Szenario
Jemand hat seinen/ihren PC samt Festplatte beim Putzen runter geschmissen. Dabei hat die Festplatte schaden genommen und Windows moniert beim booten das defekte Laufwerk. Da sie ihre Daten, die sich nur auf dieser Festplatten befinden noch benötigt, fragt sie den Pinguin und seine Freunde um Hilfe.
Voraussetzung
- Die defekte Festplatte
- Speicherplatz um ein Abbild der Festplatte und eine Image-Datei/LV für Qemu zu erstellen
- Qemu oder auf Qemu basierende Ansätze, wie z.B. KVM oder Xen mit IO-Emul
- dd_rescue (Debian-Paket: ddrescue)
Vorgehensweise
Um zu verhindern, dass weitere Daten mit der sterbenden Festplatte verloren gehen, sollte zu erst einmal ein Backup von den restlichen Daten auf der Festplatte mittels dd_rescue gezogen werden. Dieses kann entweder für die ganze Festplatte am Stück, oder für jede Partition einzeln geschehen. Da das Partitionsweise vorgehen spannender, abenteuerlicher und schwieriger ist, soll dieser Ansatz hier genutzt werden (OK, die Platte war halt ganz defekt, bevor uns klar war, dass es anders einfach gewesen wäre).
Da keine der NTFS-Implementierungen für Linux ein brauchbares fsck.ntfs mitliefert, muss auf ein Windows zurück gegriffen werden. Hierbei reicht eine Installations-CD von Windows (XP) mit Rettungskonsole.
Zu erst muss etwas angelegt werden, wo Qemu die emulierte Platte drin abbilden kann. Der Einfachheit halber kann hierfür ein LVM LV dienen, dass ausreichend groß ist (kann auch größer sein). Diese neue und leere (virtuelle) Festplatte kann nun mit Qemu und dem Windows Installer formatiert und partitioniert werden.
losetup -o 32256 /dev/loop/0 /dev/mapper/aeryn--raid5--1-kvmtestplatte
dd if=hdb1 of=/dev/loop0
kvm -hda /dev/mapper/aeryn--raid5--1-kvmtestplatte -m 256 -vnc :1 -no-kvm -cdrom /dev/hdc -boot d -k de -hdachs 16383,16,63
xvncviewer aeryn.ping.de:1
chkdsk c: /R