Mit Grub den MBR wieder herstellen

Von Arne

In diesem Artikel will ich kurz beschreiben, wie man Grub neu im Masterboot Record installiert. Dies ist z.B. nötig wenn eine Windows Installation diesen Überschrieben hat.

Voraussetzungen: Grub muss auf einer Partition vorhanden sein und möglichst richtig eingerichtet sein, sprich es sollte schon mal irgendwann funktioniert haben, Linux mit Grub zu booten, ansonsten sollte man erst mal die menu.lst bearbeiten...

1. Diskette vorbereiten

Man benötigt eine leere Diskette.

cd /boot/grub
cat stage1 stage2 > /dev/fd0


Mit den beiden Befehlen schreibt man die stage1 und stage2 Dateien aus dem Grub Verzeichnis auf die Diskettte.

2. Booten

Jetzt wird von Diskette gebootet.
Man erhält eine Kommandozeile. Wichtig hierbei ist, dass man seine Partitionen kennt. Bei Setup muss man nur die Festplatte angeben, auf der der MBR geschrieben werden soll, es gilt:

hd0 = hda = primary master
hd1 = hdb = primary slave
hd2 = hdc = secondary master
hd3 = hdd = secondary slave


Bei root will Grub wissen, wo er sich selbst auf der Festplatte befindet, für die Angabe vor dem "," gilt dasselbe wie oben, also die Festplatte. Die zweite Zahl ist die Nummer der Partition auf der Grub liegt. Ein paar Beispiele:

hd0,0 = grub liegt auf /dev/hda1
hd0,1 = grub liegt auf /dev/hda2
hd1,2 = grub liegt auf /dev/hdb3


Das sollte reichen, also sucht raus, wo Grub ist, und gebt dann folgendes am Grub-Prompt ein: (mit den richtigen Angaben natürlich, nicht einfach hd0,0 abschreiben)

root (hd0,0)
setup (hd0)


Falls ihr noch keine menu.lst habt, also noch nie mit grub gebootet habt, könnt ihr jetzt am Grub-Prompt eingeben:

kernel (hd0,0)/boot/bzImage root=/dev/hda1


Natürlich gilt hier auch wieder , dass ihr die Partitionen anpassen müsst, und auch der Name eures Kernels muss nicht unbedingt bzImage sein, also vorher informieren....

3. Menu.lst

Zum Schluss noch eine Mögliche menu.lst, nur mit dem Nötigsten um ein System booten zu können, auch hier gilt wieder die entscheidenen Werte anpassen:

# /boot/grub/menu.lst
default 0
timeout 10

title Linux
kernel (hd0,0)/bzImage root=/dev/hda2


Nun sollte es möglich sein ein Linux wieder zu booten, nachdem der Masterboot Record überschrieben/beschädigt wurde.

 


 

Vielleicht auch interessant:


Über den Autor

Wenn Arne keine Artikel für planet-rcs schreibt dann programmiert er Webanwendungen in Python und trainiert mit dem Fahrrad für die Vattenfall-Cyclassics.

Feedback