Letztens hatte ich Probleme von einer Platte, die an einen externen Controller angeschlossen war zu booten. Bis dahin war mir grub so ziemlich ein Buch mit sieben Siegeln. Aber es ist ein mächtiges tool. Man muß sich nur ein wenig damit beschäftigen.
Wenn man Startprobleme mit Linux hat ist das zu 99% kein Problem von grub - sondern ein Problem daß irgendwelche Konfigurationen bzw StartmenuEinträge bei grub nicht stimmen.
 
Eine wichtige Rolle spielt /boot/grub/devices.map. In ihr steht z.B.
(hd1)   /dev/hdb
(hd0)   /dev/hda
Das heisst, dass grub die erste Platte auf /dev/hda und die zweite auf /dev/hdb mapped. Wenn eine weitere Platte eingebaut wurde kennt grub die nicht so ohne weiteres. Entweder fügt man diese Plattendefinition dann manuell in der devices.map ein
(hd2)    /dev/hde 
 oder man benutzt den Parameter --recheck bei grub-install.
 
Ich hatte dann auf der /dev/hde2 ein weiteres Linux installiert - aber irgendwie gab es immer Fehlermeldungen beim Starten des OS vom grub Startmenu. Das OS wurde einfach nicht gefunden. 
 
Daraufhin habe ich mal grub auf Diskette installiert.  
fdformat /dev/fd0h1440
mkfs -t ext2 /dev/fd0
mount /dev/fd0 /mnt/floppy
mkdir -p /mnt/floppy/boot/grub
cp /boot/grub/* /mnt/floppy/boot/grub
grub-install --root-directory=/mnt/floppy /dev/fd0
Dann kann man jederzeit grub von Diskette starten und in der grub shell ausprobieren, was man später in die menu.lst schreiben muss. Die ist zwar etwas gewöhnungsbedürftig. Aber sie ist auch sehr mächtig. Übrigens kann man die grub shell auch vom boot menu aus erreichen wenn man 'c' drückt. Auch 'e' ist sehr komfortabel. Wenn man z.B. einige Zeilen in /boot/grub/menu.lst falsch eingegeben hat kann man diese dadurch schnell zum Testen korrigieren.
 
Will man nun wissen wo sich bootable Linux OS auf welchen Platten befinden kann man das ganz einfach herausbekommen:
 find /boot/vmlinuz 
Man erhält dann eine Liste der Platten (hd0, hd1, ...). Diese können dann mit ein paar weiteren Befehlen aktiviert und manuell gestartet werden. 
 
Das Installieren von grub geht entweder aus der grub shell 
grub> root (hd0,1) # die Partition mit dem /boot/grub Verzeichnis, /dev/hda1
grub> setup (hd2) # die Partition wo grub installiert werden soll
oder mit 
grub-install --root-directory=/mnt/hda1 /dev/hde
Im folgenden Beispiel gehe ich davon aus, dass sich das zu bootende OS auf der Platte hd2 in der ersten Partition befindet. Dann kann man auf folgende Art das darauf befindliche OS starten:
grub> root (hd2,0)          # alle folgenden Befehle beziehen sich auf die hd2
Filesystem type is ext2fs, partition type 0x83 
grub> kernel /boot/vmlinuz root=/dev/hde2      # der zu ladende Kernel
[Linux-bzImage, setup=0x1e00, size=0x1661b6]
grub> initrd /boot/initrd            # die boot initrd
[Linux-initrd @ 0x2b0000, 0x13fbf8 bytes] 
 
Falls man sich aus Versehen den mbr mit grub zerschossen hat hilft eine Linux life CD (Knoppix, Kanotix, SuSE Install CD #1, ...). Von der starten und wie oben beschrieben den mbr wieder installieren. Alternativ geht das natürlich auch mit einer boot diskette.

Kommentar schreiben

Spam Kommentare sind sinnlos !
Vor der Publizierung wird jeder Beitrag auf Spam geprüft. Leider dauert es deswegen bis ein Kommentar sichtbar wird. Dafür erhält aber kein Subscriber Spam eMails.
Die eMail ist optional und nicht öffentlich sichtbar. Sie ist notwendig um eMail Benachrichtigungen zu Antworten auf Kommentare zu erhalten. Sie wird auch u.U. auch vom Seitenbetreiber genutzt um offline Kontakt aufzunehmen.

Spam comments are useless !
Any comment will be reviewed first and checked for spam. Unfortunately this delays the publishing of comments but will protect subscribers from spam.
eMail is optional and hidden and is required to get update notifications for any comments. In addition your eMail may be used by the website owner to get in contact with you offline.