====== GRUB Version 2 ====== Auszug aus der grub.cfg menuentry 'Debian GNU/Linux' \ --class debian \ --class gnu-linux \ --class gnu \ --class os { insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set fbe90871-9893-4899-aefb-4e6377e114bc echo 'Loading Linux 2.6.32-5-686 ...' linux /boot/vmlinuz-2.6.32-5-686 root=UUID=fbe90871-9893-4899-aefb-4e6377e114bc ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-5-686 } Um den Eintrag zu verstehen, sollten wir zunächst den generellen Aufbau eines Menüeintrags betrachten: menuentry Titel [--class=Klasse ..] [--users=Benutzer ..] \ [--hotkey=Taste] { Konfigurationsbefehle } Die Angabe eines Titels für den Menüeintrag ist selbsterklärend. Klassen dienen der Gruppierung von Einträgen und sind optional, sie können für unterschiedliche Darstellungen von Menüeinträgen verwendet werden. Mit Benutzerzuordnungen (ebenfalls optional) kann der Zugriff auf den Menüeintrag bestimmten Benutzern vorbehalten werden (diese müssen allerdings erst in GRUB angelegt werden). Mit hotkey lässt sich dem Eintrag eine Taste zuordnen. Wird diese gedrückt, wird der entsprechende Eintrag ausgewählt. Auch für Hotkeys gilt: Es ist kein Muss, sie zu vergeben. Betrachten wir nun die restlichen Komponenten des menuentry-Eintrags. insmod lädt ein dynamisches GRUB-Modul in den Speicher, während set Umgebungsvariablen setzt. Mit search werden bootbare Partitionen gesucht, wobei --set der Variable root das erste gefundene Gerät zuweist. Alternativ können mit set auch andere Variablen gesetzt werden, wobei diese dann direkt angegeben werden müssen: --set=Variable. Mit --no-floppy wird verhindert, das Diskettenlaufwerke durchsucht werden. --fs-uuid bewirkt, dass search nach einer bestimmten UUID (nämlich der am Zeilenende angegebenen) sucht. echo erzeugt wie in der Shell eine Ausgabe, und linux bewirkt, dass ein Linux-Kernel gestartet werden soll. Die Angabe des Bootkernels und der zu verwendenen UUID (die zuvor über search ermitelt wurde, und weitere Bootparameter für den Kernel können dort angeben werden. Mit initrd wird hingegen die RAM-Disk spezifiziert, die verwendet werden soll.