Howto:grub

Inhaltsverzeichnis

GRUB

Einleitung

Grub (http://www.gnu.org/software/grub/) ist ein Bootlader, der verschiedenste Betriebssystem laden kann. Er bietet darüber hinaus einige interessante Möglichkeiten, die andere Bootlader nicht bieten.

Mittlerweile gibt es 2 Versionen von Grub, die sich unterscheiden.

Konfiguration

Grub 1

Die Konfiguration erfolgt über die Konfigurationsdatei /boot/grub/menu.lst:

default         0
timeout         5
color cyan/blue white/blue

title           Debian GNU/Linux, kernel 2.6.33
root            (hd0,4)
kernel          /boot/vmlinuz-2.6.33 root=/dev/sda5 ro vga=791
initrd          /boot/initrd.img-2.6.33

title           Debian GNU/Linux, kernel 2.6.33 (single-user mode)
root            (hd0,4)
kernel          /boot/vmlinuz-2.6.33 root=/dev/sda5 ro vga=791 single
initrd          /boot/initrd.img-2.6.33

title           Other operating systems:
root
title           Microsoft Windows XP
rootnoverify    (hd0,0)
makeactive
savedefault
chainloader     +1


Grub 2

Die Konfiguration erfolgt über die Konfigurationsdatei /boot/grub/grub.cfg. Diese wird meistens generiert. Hier jedoch ein Beispiel:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 3dc97ecc-263d-407e-9890-d8a154cf2777
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set 3dc97ecc-263d-407e-9890-d8a154cf2777
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, with Linux 2.6.33" --class debian --class gnu-linux --class gnu --class os {
        insmod ext2
        set root='(hd0,5)'
        search --no-floppy --fs-uuid --set 3dc97ecc-263d-407e-9890-d8a154cf2777
        echo    Loading Linux 2.6.33 ...
        linux   /boot/vmlinuz-2.6.33 root=UUID=3dc97ecc-263d-407e-9890-d8a154cf2777 ro vga=791
        echo    Loading initial ramdisk ...
        initrd  /boot/initrd.img-2.6.33
}
menuentry "Debian GNU/Linux, with Linux 2.6.33 (recovery mode)" --class debian --class gnu-linux --class gnu --class os {
        insmod ext2
        set root='(hd0,5)'
        search --no-floppy --fs-uuid --set 3dc97ecc-263d-407e-9890-d8a154cf2777
        echo    Loading Linux 2.6.33 ...
        linux   /boot/vmlinuz-2.6.33 root=UUID=3dc97ecc-263d-407e-9890-d8a154cf2777 ro single vga=791
        echo    Loading initial ramdisk ...
        initrd  /boot/initrd.img-2.6.33
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
        insmod fat
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 497c-5d11
        drivemap -s (hd0) ${root}
        chainloader +1
}
### END /etc/grub.d/30_os-prober ###

Unter Debian/(K)Ubuntu erfolgt die Konfiguration über die Konfigurationsdatei /etc/default/grub:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="vga=791"

Die Menueinträge wrden mit den Skripten unter /etc/grub.d/ erzeugt. Diese sind normale Shellskripte, die die jeweiigen Blöcke erzeugen. Man kann recht einfach neue Skripte hinzufügen. Die Zahl vorn im Skriptnamen bestimmt die Reihenfolge der Abarbeitung beim Erstellen von /boot/grub/grub.cfg.

Grub-Konsole

Die Grub-Konsole ist eine Art interaktive Shell, die man durch das Drücken von 'c' bekommt bzw wenn keine Konfiguration vorhanden ist. Man kann dort normale Grub-Befehle eingeben.

Bearbeiten von Einträgen zur Laufzeit

Es ist auch sehr nützlich, dass man bestehende Einträge zur Laufzeit ändern kann (also wenn Grub gestartet wurde). Zum Bearbeiten eines Eintrags drückt man e und kann dann den Eintrag bearbeiten.

Grub1

Man muss nun nochmals e für das Bearbeiten der jeweiligen Zeile drücken. Nach dem Bearbeiten drückt man ESC und befindet sich wieder im Eintrag, wo man alle Zeilen des Eintrags sehen kann (kernel, initrd, etc). Zum Booten des modifizierten Eintrags drückt man b.

Grub2

Hier sind alle Zeilen in einem Feld zum Bearbeiten aufgelistet. Nach dem Bearbeiten drückt man Strg+X.

Von "http://lug-wr.de/wiki/index.php/Howto:grub"

Diese Seite wurde bisher 4671 mal abgerufen. Diese Seite wurde zuletzt geändert um 07:11, 28. Mai 2010. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.