GRUB

  1. Intro
  2. News
  3. Tipps & Tricks
  4. Grub Diskette
  5. Konfigurations-Datei
  6. Notfall: Bootloader zerschossen
  7. Diskettenimages von GRUB aus booten
  8. Splashimages (Hintergrundbilder)
    1. Splashimages zum Download
  9. Fragen & Probleme
  10. Links

 

Intro

GRUB (GRand Unified Bootloader) ist ein sog. Bootloader (oder auch BootManager genannt).

Ein solches Programm wird üblicherweise benutzt, um den Kernel in den Hauptspeicher zu laden. Ein weiter Bootloader ist der LILO.

Der faszinierende Vorteil von Grub gegenüber LILO ist die Möglichkeit, während des Bootvorgangs die Parameter zu verändern - dadurch können auch blöde Tippfehler schnell ausgeglichen werden. Dabei funktioniert sogar die Ergänzung mit der Tabulatortaste, da Grub herkömmliche DateiSysteme (FAT, ext2/3, reiserfs) lesen kann. Zudem bietet er die Möglichkeit, MD5-verschlüsselte Passwörter zu verwenden.

Homepage: [WWW] http://www.gnu.org/software/grub/

Lizenz: GPL

News

Tipps & Tricks

Die Benennung der Festplatten folgt einer anderen Logik, als man es gewöhnt sein mag. Die Partitionen und Festplatten werden von "0" aus gezählt. Zum Beispiel steht (hd0,2) für erste Festplatte, dritte Partition und (hd1,0) für zweite Platte, erste Partition 1 . Die Reihenfolge von IDE - und SCSI-Festplatten hängt dabei vom BIOS ab. Diskettenlaufwerke heißen (fd0) und (fd1). Eigentlich sehr einfach, wenn man das weiß... :)

Frage: Ich mag's einfach nicht, wenn mein BootManager allzu farblos daher kommt - weiß jemand eine Lösung?

Antworten:

Wenn du früher den OS/2-Bootmanager benutzt hast, gefällt dir vielleicht diese Zeile im Configfile:

color 0x17 0x71

Mit '''splashimage (hd0,0)/grub/splash.xpm.gz''' kann man ein Hintergrundbild für Grub angeben. Das Bild muss ein gzipptes 640x480 großes XPM mit einer Palette mit 14 Farben sein. Dies geht z.B. mit:

convert -size 640x480 bild.jpg -resize 640x480 -colors 15 bild.xpm && gzip bild.xpm

Wenn man unter /boot einen Softlink vmlinuz -> z.B. vmlinux-2.4.18-14 (und bei Bedarf auch für initrd.img) anlegt, kann man eine Grubkonfiguration verwenden, in der keine Kernelversionsnummer angegeben ist und die man, dann bei einen neuen Kernel auch unangetastet lassen kann, wenn man die Links wieder richtig setzt. (Achtung /!\ Bei einigen Distributionen (RedHat) wird die grub.conf von den Kernelpaketen automatisch geändert)

Die Installation ist kinderleicht:

# grub
grub> root (hd0,0) # die Partition mit dem /boot/grub Verzeichnis
grub> setup (hd0)

Frage: Wie kann ich mit Grub freebsd 5.x booten?

Antwort: Grub kann nicht direkt auf das ufs-Filesystem zugreifen. Von daher bietet sich an, den BSD-Bootloader in den Bootsektor der BSD-Partition zu legen und dann von Grub aus über chainloader zu starten, genauso wie man auch eine Windows-System startet.

Beispiel: (IDE0, erste Partition=dos, zweite Partition=FreeBSD-Slice)

root (hd0,1,a)
chainloader +1
boot

Grub Diskette

Um ein System mit zerschossenem GRUB wieder gangbar zu machen, kann eine Grub-Diskette sehr hilfreich sein.

fdformat /dev/fd0H1440
mkfs -t ext2 /dev/fd0
mount /dev/fd0 /mnt/floppy
grub-install --root-directory=/mnt/floppy /dev/fd0

Einige System kennen auch den Befehlt grub-floppy zum direkten Erstellen einer Grub Diskette

grub-floppy /dev/fd0

Wenn man von dieser Diskette startet, kommt man in die Grub-Shell und kann dort z.B. mit

root (hd0,0)
configfile /boot/grub/grub.conf

seine normale Konfiguration laden. Alternativ kann man natürlich auch alle möglichen Grub Befehle manuell eingeben.

Besonders nützlich ist der Befehl find, wenn man nicht weiß, auf welcher Partition der Kernel etc. liegt.

find /boot/vmlinuz

siehe auch [WWW] http://home.datacomm.ch/donittel/Grub_startet_linux_NotfallBoot, das passende Image dazu [WWW] http://home.datacomm.ch/donittel/grubdisk.img, einige Gateway verstehen nur die [WWW] http://home.tiscalinet.ch/donittel/Grub_startet_linux_NotfallBoot Adresse (:

Konfigurations-Datei

Die Datei menu.lst in /usr/share/doc/grub/examples/ schlägt für ein MultiBoot-System mit Linux/WinNT/DOS/FreeBSD folgendes vor (leider ungetestet, da ich selber kein Windows habe):

title  GNU/Linux
        root (hd1,0)
        kernel /vmlinuz root=/dev/hdb1

title Windows NT / Windows 95 boot menu
        rootnoverify (hd0,0)
        makeactive
        chainloader  +1

title MS-DOS
        rootnoverify (hd0,0)
        makeactive
        chainload /bootsect.dos

title FreeBSD 4.5
        root (hd0,2,a)
        kernel /boot/loader

# Knoppix-CDs sind auf /dev/hda5 kopiert !
title           Knoppix v3.4 Kernel 2.4
root            (hd0,4)
kernel          /boot/isolinux/linux24
initrd          /boot/isolinux/minirt24.gz
boot

title           Knoppix v3.4 Kernel 2.6
root            (hd0,4)
kernel          /boot/isolinux/linux26
initrd          /boot/isolinux/minirt26.gz
boot

Noch einfacher geht es unter Debian: update-grub erzeugt eine vernünftige menu.lst

Notfall: Bootloader zerschossen

So kommt man schnell bei einem zerschossenen System wieder zu einem Bootloader:

sudo -s 
# root-Partition schreibbar (mit Devices für chroot) zugänglich machen:
mount -o rw,dev /dev/hda8 /mnt/hda8
# Alle notwendigen grub-Dateien auf /mnt/hda8/boot/grub installieren
# und grub-Masterboot-Sektor auf /dev/hda schreiben
grub-install --root-directory=/mnt/hda8 \(hd0\)
# update-grub arbeitet immer auf /boot:
chroot /mnt/hda8
# menu.lst erzeugen:
update-grub
exit
reboot

Aus nicht nachvollziehbaren Gründen hat obige Anleitung bei mir nicht funktioniert, obwohl es so eigentlich klappen sollte. Daher hier noch eine Alternative, die auch auf Knoppix beruht:

sudo -s 
# root-Partition schreibbar zugänglich machen:
mount -o rw /dev/hda2 /mnt/hda2
# Nun das /boot der Knoppix mit dem originalen /boot tauschen
rmdir /boot
link /mnt/hda2/boot /boot
# Nun nur noch grub aufrufen
grub
# Und Grub sagen, dass Root auf hda2 ist
grub# root (hd0,1)
# Und dass er den MBR schreiben soll
grub# setup (hd0)
# Und Grub verlassen
grub# quit
# Und Neustart
reboot

Diskettenimages von GRUB aus booten

Manchmal kommt man doch in die Verlegenheit, ein anderes System von Diskette booten zu wollen, wie z.B. irgendwelche Platten-, Speicherprüfer (wie z.B. MemTest86) oder Flashtools. Dies geht auch ohne Disketten und mit GRUB besonders einfach:

Beim nächsten Booten GRUB in die Kommandozeile schalten (Taste C) und folgendes eingeben (man kann TAB benutzen):

kernel /usr/lib/syslinux/memdisk floppy
initrd /boot/dft32_v361_b12.bin
boot

(!) Evtl. muss man im BIOS das Diskettenlaufwerk aktivieren, auch wenn man keines hat! Ansonsten erhält man beim Booten die Fehlermeldung, dass kein gültiges System auf dem Image gefunden werden konnte.

FRAGE: Gibt es auch eine Möglichkeit, auf der Platte liegende ISO-Images zu booten?

Splashimages (Hintergrundbilder)

Hintergrundbild erstellen mit:

convert -size 640x480 bild.jpg -resize 640x480 -colors 15 bild.xpm && gzip bild.xpm

/boot/grub/menu.lst (foreground background Textfarbe) Für diese Optionen sind keine "=" erforderlich.

splashimage (hd0,0)/grub/splash.xpm.gz
foreground ffffff
background 000000

Wenn es nicht will, Grub Splashimage HOWTO [WWW] http://ruslug.rutgers.edu/%7Emcgrof/grub-images/ Abschnitt 4.2 beachten, und Grub selber patchen.

Splashimages zum Download

Fragen & Probleme

Links

 

zuletzt geändert am 2005-03-29 13:57:50 durch 217

 

[ top ]