Master Boot Record und Partitionstabelle sichern/herstellen

Linux Master Boot Record und Partitionstabelle

Im Master Boot Record (MBR) einer Festplatte steht Code, der vom BIOS beim Starten des Rechners ausgeführt wird, um das System hochzufahren. Bei einem Linux-System findet man dort oft den Bootloader LiLo. Dieser wird über die Datei /etc/lilo.conf konfiguriert und kann mit dieser Datei auch wieder hergestellt werden. Doch wenn der MBR mal versehentlich zerstört wird, ohne dass man die passende lilo.conf zur Hand hat oder gar ein ganz anderer Bootloader im MBR steckt, wird's kritisch. Zum Glück kann man mit Hilfe von dd eine Sicherheitskopie vom MBR erstellen und wieder auf die Platte schreiben, ohne dafür eine Konfiguration oder weitere Programme zu benötigen. Das Wiederherstellen ist jedoch mit äußerster Vorsicht zu genießen, da bei falschen Parametern der Inhalt der Festplatte inklusive der Partitionstabelle zerstört werden kann.

Die Sicherheitskopie erstellt man mit

dd if=/dev/hda of=~/hda.mbr bs=512 count=1

und kann dann mit Hilfe des file-Kommandos verifizieren, dass es sich um einen MBR handelt:

file ~/hda.mbr

Es kann nicht schaden, die erzeugte Datei auf einer Diskette bereit zu halten oder bei einem Backup mit auf eine CD-Rom brennen. Sollte der Fall mal eintreten, dass aus irgendwelchen Gründen der MBR überschrieben wurde, so kann man diesen wieder herstellen, indem man sich sein Rettungslinux von CD oder Floppy startet, das Backup vom MBR ins aktuelle Verzeichnis kopiert und dann

dd if=hda.mbr of=/dev/hda bs=512 count=1

eintippt. Allerdings ist hier Vorsicht geboten.

Genauso einfach kann man auch die Partitionstabelle sichern. Es gibt eine spezielle Version von fdisk, namens sfdisk, die die Partitionstabelle in eine Beschreibungsdatei schreiben kann und auch wieder aus dieser Datei herstellt. Um die Partitionstabelle zu sichern, benutzt man

sfdisk -d /dev/hda > hda.pt

und um die alte Partitionstabelle wieder herzustellen, benutzt man einfach das Kommando

sfdisk /dev/hda < hda.pt

Hier ist natürlich die gleiche Vorsicht geboten, wie bei dem Marter Boot Record. Auch möchte ich nicht extra erwähnen, dass man die gesicherten Daten nicht auf der Festplatte liegen lassen sollte... ;-)

Sollte es doch einmal so weit gekommen sein, dass man die Partitionstabelle geschreddert hat, ohne über ein Backup zu verfügen, dann besteht trotzdem noch Grund zur Hoffnung. Wer keine Lust auf eine Neuinstallation und den damit verbundenen Verlust aller Daten hat, kann sein Glück mit gpart versuchen. Dieses Tool ist auf der [LINK:START:224]Knoppix Linux[LINK:END] CD mit drauf und liest die gesamte Festplatte ein, um Merkmale für typische Dateisysteme zu finden. Dies kann ggf. sehr lange dauern, hat aber in einem mir vorliegenden Fall zum Erfolg geführt. Alle Partitionen konnten wieder eingebunden und die Daten gerettet werden. Das installierte Betriebssystem lief danach wieder sang- und klanglos. Die so erzeugte Partitionstabelle hatte leider einige Schönheitsfehler, weil kleine Lücken zwischen den Partitionen lagen. Dies habe ich durch Löschen und Neuanlegen der Partitionen mit cfdisk nachgebessert. Der Aufruf von gpart (hier für hda) sieht so aus:

gpart -W /dev/hda /dev/hda

Vorher sollte man aber die kaputte Partitionstabelle wie oben angegeben sichern, damit man im Zweifelsfall doch noch ein Stück vom Original hat. Trotzdem wäre mir ein Backup in diesem Fall lieber gewesen...

Ganz ähnlich funktioniert [LINK:START:386]TestDisk[LINK:END]. Es ist ebenfalls OpenSource und auch als Debian-Paket erhältlich. Ich persönlich habe es noch nicht benutzt, aber schon Gutes darüber gehört. (Danke, Alex.) ;-) Also den Versuch ist es Wert, denn bei einer kaputten Partitionstabelle hat man ja eh nix zu verlieren.

Artikelbewertung: 
3
Average: 3 (1 vote)
War dieser Artikel hilfreich?