menu.jpg  ::  Home ::  Computing ::  Downloads ::  Scooter ::  Links ::  Music ::  Nonsense ::  Mail :: 

PC: Den Bootloader GRUB 2 installieren und konfigurieren

1. Unterschiede zwischen GRUB 2 und GRUB (Legacy)

Bei GRUB 2 handelt es sich um den Nachfolger von GRUB (Legacy), der wesentlich mehr Dateisysteme, Systeme und Layouts unterstützt, aber völlig anders konfiguriert wird und Partitionen beginnend mit 1 hochzählt (GRUB (Legacy) zählt ab 0).

Ich bin mit GRUB 2, nachdem ich dessen indirekte Konfiguration erst einmal durchschaut hatte, ausgesprochen zufrieden, weil er mir nach Kernel-Updates das händische Editieren seiner Konfigurationsdatei erspart, wenn man seine Kernel unterhalb von '/boot' ablegt und diese als '{vmlinuz,vmlinux,kernel}-*' benennt.

2. Installation von GRUB 2

GRUB 2 kann man als Superuser mittels des Programmes /sbin/grub2-install von der Festplatte installieren. Als Parameter wird das Laufwerk oder die Partition, aus dessen Bootsektor GRUB 2 booten soll, angegeben. Das Device kann dabei entweder Betriebsystem-spezifisch (z.B. '/dev/sda') oder in der GRUB 2 Schreibweise (z.B. '(hd0)') angegeben werden. Einige Beispiele:

3. Konfiguration von GRUB 2

GRUB 2 wird über Variablen in der Datei /etc/default/grub konfiguriert. Die Variablen werden von Shell-Skripten unterhalb von /etc/grub.d/ verwendet, die wiederum mittels des Befehls

# /usr/sbin/grub2-mkconfig -o /boot/grub/grub.cfg

alphabetisch aufgerufen werden und eine für die meisten Fälle brauchbare Konfiguration in die Datei /boot/grub/grub.cfg schreiben.

Die Konfigurationsdatei /boot/grub/grub.cfg kann danach auch editiert werden, was sich aber durch das vorherige Anpassen der Datei /etc/default/grub und in speziellen Fällen auch der unterhalb von /etc/grub.d/ liegenden Skripte vermeiden lassen sollte.

3.1. Konfiguration über die Datei '/etc/default/grub'

Mit Anpassen der Variablen in dieser Datei sollten sich die meisten Konfigurationen sauber erstellen lasssen. Einige hauptsächlich bemühte Variablen lauten:

3.2. Konfiguration über die Dateien unterhalb von '/etc/grub.d'

Bei den Dateien unterhalb von /etc/grub.d handelt es sich um Shell-Skripte, die von /sbin/grub2-install alphabetisch aufgerufen werden und unter Verwendung der in der Datei /etc/default/grub definierten Variablen die eigentliche Konfiguration in die Datei /boot/grub/grub.cfg schreiben. Man kann mitgelieferte Skripte mittels des Befehles

# chmod -x SKRIPT

deaktivieren, editieren oder hier eigene Skripte ablegen.

3.2.1. Bootmenü für verschiedene Runlevel

Ich boote meinen Laptop bespielsweise – je nachdem ob er sich in meinem LAN oder in einem Auswärtsspiel befindet – in unterschiedlichen Runleveln. GRUB 2 hilft mir dabei mit der mitgelieferten Datei 10_linux, die in den Standard-Runlevel 3, und einer zusätzlich angelegten Datei 10_linux_local, die in den Runlevel 4 bootet.

   $ diff -u /etc/grub.d/10_linux /etc/grub.d/10_linux_mobile

   --- /etc/grub.d/10_linux	2013-10-22 20:34:11.000000000 +0200
   +++ /etc/grub.d/10_linux_mobile	2013-10-27 15:39:07.625243479 +0100
   @@ -29,9 +29,9 @@
    CLASS="--class gnu-linux --class gnu --class os"

    if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
   -  OS=GNU/Linux
   +  OS="GNU/Linux mobile"
    else
   -  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
   +  OS="${GRUB_DISTRIBUTOR} GNU/Linux mobile"
      CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
    fi

   @@ -132,10 +132,10 @@
        fi
        printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
      fi
   -  message="$(gettext_printf "Loading Linux %s ..." ${version})"
   +  message="$(gettext_printf "Loading Linux %s mobile ..." ${version})"
      sed "s/^/$submenu_indentation/" << EOF
    	echo	'$(echo "$message" | grub_quote)'
   -	linux	${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
   +	linux	${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro softlevel=mobile ${args}
    EOF
      if test -n "${initrd}" ; then
        # TRANSLATORS: ramdisk isn't identifier. Should be translated.

3.2.2. Konsolenfarben

Mit folgenden Variablen, die in der Datei /etc/grub.d/41_custom hinterlegt werden können, macht man GRUB 2 ohne Verwendung eines Themes etwas bunter:

Die Farben werden in der Schreibweise 'Vordergrund/Hintergrund' angegeben. Standardmässing kommt GRUB 2 nüchtern mit 'white/black' bzw. 'black/white' daher.

4. Links

GRUB 2 Homepage

Valid XHTML 1.0

Zurück zur Main-Site
Impressum
Created with GNU-Emacs on Tue Dec 10 23:17:05 CET 2013

Valid CSS