ubuntuusers.de

ubuntuusers.deWikiGRUB 2Konfiguration

Konfiguration

Achtung!

  • Änderungen an den GRUB 2-Konfigurationsdateien sollten stets nur mit Bedacht durchgeführt werden, weil im schlimmsten Fall das System danach nicht mehr richtig startet.

  • Vor Experimenten mit der Datei /etc/default/grub und vor allem mit den Skripten in /etc/grub.d sollte ein Backup angelegt werden! Außerdem hilft in einem solchen Fall der Artikel GRUB 2/Reparatur weiter.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Grundsätzlich ist GRUB 2 von seinen Machern so konzipiert, dass es, sobald das Kommando update-grub bzw. grub-mkconfig ausgeführt wird, alle auf einem Computer installierten Betriebssysteme findet und automatisch in das Auswahlmenü aufnimmt. Eine manuelle Konfiguration von GRUB 2 ist für die grundlegende Funktionalität daher nicht notwendig.

Möchte man GRUB 2 trotzdem manuell anpassen - und sei es auch nur aus optischen Gesichtspunkten - so geschieht das über die Datei /etc/default/grub und über die Skripte im Verzeichnis /etc/grub.d. Über die Datei /etc/default/grub kann man einige grundlegende Einstellungen vornehmen, die Skripte sind für aufwendigere Anpassungen aber auch für individuelle Menü-Einträge gedacht.

Immer an die aktuelle Ausgabe angepasste Informationen ({en}) zur Konfiguration der Datei /etc/default/grub kann man sich im Terminal [1] anzeigen lassen mit:

info -f grub -n 'Simple configuration' 

Mit dem Grub Customizer existiert ein grafisches Konfigurationswerkzeug.

Die Datei /etc/default/grub

Standardvariable

Die Datei /etc/default/grub ist eine simple Textdatei, die direkt nach der Installation in aller Regel wie folgt aussieht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# This file is sourced by update-grub, and its variables are propagated
# to its children in /etc/grub.d/

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entrys
## Bis GRUB 1.98
#GRUB_DISABLE_LINUX_RECOVERY="true"
## Ab GRUB 1.99
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Die rosa Textzeilen stellen aktive Einstellungen dar. Mittels der # werden Einstellungen auskommentiert und damit deaktiviert.

Diese Datei kann man in einem Editor [3] mit Rootrechten bearbeiten. Am Beispiel gedit in Ubuntu führt man dafür folgendes Kommando aus:

gksudo gedit /etc/default/grub 

In Kubuntu muss es z.B. entsprechend lauten:

kdesudo kate /etc/default/grub 

Bedeutung der Variablen

Variable in der /etc/default/grub
Variable Wert Bedeutung
GRUB_DEFAULT= Zahl Gibt an, welcher Eintrag im Menü standardmäßig hervorgehoben wird. Dieser Eintrag wird geladen, falls keine andere Auswahl getroffen wird. Die Zählung beginnt mit 0. Der dritte Eintrag im Menü würde also durch eine 2 hervorgehoben. Diese Vorgabe ist statisch.
"xxx" Wählt den Eintrag mit der exakten Bezeichnung, z.B. Previous Linux versions>Ubuntu, with Linux 3.8.0-30-generic bzw. entsprechend lokalisiert, als Standard aus. Diese Vorgabe ist statisch.
saved Trägt man anstelle eines Zahlenwertes (siehe Kasten oben) den Wert saved ein, so wird Grub veranlasst, den in /boot/grub/grubenv gespeicherten Menüeintrag auszulesen und als Vorgabe zu verwenden, unabhängig davon, ob die Reihenfolge inzwischen durch ein Kernel-Update oder durch eigene Skripte verändert wurde. Siehe auch nächsten Kasten GRUB_SAVEDEFAULT.
GRUB_SAVEDEFAULT= true Wird diese Variable mit true nachgetragen, so wird für alle mit 10_linux ausgewählten Kerneleinträge aus dem Verzeichnis /boot die Möglichkeit geschaffen, den mittels der Tasten bzw. ausgewählten und mit bestätigten Menüeintrag als Vorgabe für den nächsten Start abzuspeichern. Es muss GRUB_DEFAULT=saved gesetzt sein, damit dieses ausgewertet wird (siehe Kasten oben und die Hinweise unter grubenv).

Achtung!

Das Abspeichern funktioniert zur Zeit weder auf einem RAID-Verbund (siehe 560594), einem LVM-Dateisystem (siehe 625234) noch beim Btrfs-Dateisystem (siehe 736743)

GRUB_HIDDEN_TIMEOUT Zahl Diese Funktion sollte mit einer vorangestellten Raute (#) anstelle einem Wert = 0 (Null) unwirksam gemacht werden.

Achtung!

Wurde GRUB_HIDDEN_TIMEOUT aktiviert, so kann nur mit gedrückter Umschalt-Taste während des Einschaltvorganges das Boot-Menü sichtbar gemacht werden, wenn auch gleichzeitig GRUB_DISABLE_OS_PROBER=true gesetzt wurde! Siehe die Hinweise unter Skript 30_os-prober.

Ein Zahlenwert > 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden.

Experten-Info:

Für ein korrektes Arbeiten dieser Funktion muss der Wert GRUB_TIMEOUT=0 (Null) gesetzt sein!

Hinweis:

Entfällt zukünftig zugunsten GRUB_TIMEOUT_STYLE

GRUB_HIDDEN_TIMEOUT_QUIET= true Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden.

Hinweis:

Entfällt zukünftig zugunsten GRUB_TIMEOUT_STYLE

GRUB_RECORDFAIL_TIMEOUT= Zahl Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, wenn es beim Start ein Problem gibt. Im Normalfall fehlt dieser Eintrag, was dazu führt, dass im Falle eines Fehlers das Auswahlmenü unbegrenzt erscheint und auf die Auswahl durch den Benutzer gewartet wird. Bei Servern ist das in der Regel ein Problem, da beispielsweise bei einem Stromausfall oder einem Systemfehler kein automatischer Boot-Up mehr durchgeführt wird, sondern der Boot-Up im Grub-2 Auswahlmenü hängen bleibt. Diese Variable wird im Skript 00_header ausgewertet.
GRUB_TIMEOUT= Zahl Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. Bei 0 wird direkt der unter GRUB_DEFAULT eingestellte Eintrag geladen, ohne dass das Auswahlmenü angezeigt wird, bei -1 wird der Zähler abgeschaltet und man muss den zu ladenden Eintrag immer von Hand wählen. Wurde GRUB_HIDDEN_TIMEOUT aktiviert, ist diese Funktion solange wirkungslos, bis GRUB_HIDDEN_TIMEOUT mit der Umschalt-Taste deaktiviert wird.
GRUB_TIMEOUT_STYLE= menu Ohne Eintrag oder mit dem Eintrag menu wird das GRUB_2-Menü auch dann angezeigt, wenn kein zweites Betriebssystem (Windows / Linux) gefunden wurde. Das System wird mit der Auswahl ( / + oder nach Ablauf der mit GRUB_TIMEOUT eingestelltem Zeit gestartet.

Hinweis:

Werden weitere Betriebssysteme auf dem Rechner erkannt, werden die Option hidden bzw. countdown ignoriert und das Grubmenü immer angezeigt. Außerdem wird dann ein Wert von GRUB_TIMEOUT=0 (Vorgabe Null) immer auf 10 gesetzt. Alle anderen Werte werden (also -1 oder >= +1 ) der Vorgabe entsprechend verarbeitet.

hidden Mit dem Eintrag hidden wird kein GRUB_2-Menü angezeigt und die mit GRUB_TIMEOUT eingestellte Zeit gewartet, bis das System nach der voreingestellten Zeit startet. Durch kurzzeitiges Drücken der Esc innerhalb dieses Zeitfensters kann das Grub-Menü angezeigt und eine Auswahl vorgenommen werden.
countdown Mit dem Eintrag countdown wird kein GRUB_2-Menü angezeigt und die mit GRUB_TIMEOUT eingestellte Zeit sichtbar heruntergezählt. Danach startet das System mit dem mit GRUB_DEFAULT voreingestellten Eintrag. Durch kurzzeitiges Drücken der Esc innerhalb dieses Zeitfensters kann das Herunterzählen abgebrochen und eine Auswahl vorgenommen werden.
GRUB_DISTRIBUTOR *** Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen.
Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen.
GRUB_CMDLINE_LINUX_DEFAULT= Text siehe die Hinweise bei Variable für Kernelzeilen
GRUB_CMDLINE_LINUX Text siehe die Hinweise bei Variable für Kernelzeilen
#GRUB_TERMINAL= console Entfernt man die Raute #, so wird der grafische Modus wie unter GRUB 2/Aussehen beschrieben komplett abgeschaltet (reiner Konsolenmodus). Ein Sonderfall stellt hierbei die Eingabe bzw. Ausgabe über ein serielles Gerät (VT100-Terminal, Modem) dar. Siehe dazu die Hinweise unter Eingabe/Ausgabe auf ein serielles Gerät.

Achtung!

Wurde ein RAID1-Verbund als Boot-Gerät konfiguriert, so sollte GRUB_TERMINAL=console eingestellt werden. Andernfalls kann nach einem Ausfall der ersten Festplatte nicht mehr gebootet werden. (siehe 594202)

#GRUB_GFXMODE= 640x400 Nach dem Entfernen der Raute # kann man mit dieser Einstellung die Auflösung im Grub-Menü einstellen. Standard-Vorgabe ist 640x480 Pixel (große Schrift). Weitere Hinweise zur Ermittlung der möglichen Auflösung findet man unter Auflösung ermitteln.
GRUB_GFXPAYLOAD_LINUX= keep Diese Einstellung bewirkt für die im Verzeichnis /boot vorhandenen Kerneleinträge, dass beim Start die mit GRUB_GFXMODE= eingestellte Schriftgröße für die folgende Monitor-Ausgabe beibehalten wird.
1280x1024 Ein Eintrag mit Werten anstelle keep bei GRUB_GFXMODE stellt die Schriftgröße auf diese Werte ein. Die für den eigenen Monitor richtigen Werte erhält man mit Auflösung ermitteln.
text Falls es mit den beiden obigen Vorgaben Probleme beim Start gibt (schwarzer bzw. verzerrter Bildschirm), dann sollte man diese Vorgabe nehmen. Damit wird auf die Werte aus einer Liste mit problematischen Grafikkarten ("blacklist") zugegriffen.

Hinweis:

Diese Einstellungen werden in der Regel von Plymouth überschrieben! Entsprechende Einstellungen werden dort erläutert.

#GRUB_DISABLE_LINUX_UUID= true Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Entfernen der Raute # kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen.
#GRUB_DISABLE_RECOVERY= true Nach Entfernen der Raute # und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert.
GRUB_DISABLE_OS_PROBER= true Wird diese Variable mit true nachgetragen, wird eine erneute Überprüfung auf andere Betriebssysteme auf dem PC bei einem update-grub unterdrückt. Es werden damit in das Grub-Menü nur die im Verzeichnis /boot enthaltenen Kernel-Images sowie eigene Skripte entsprechend der Nummerierung erfasst.
GRUB_INIT_TUNE= "480 440 1" Hiermit wird ein Ton ausgegeben, sobald das Grub-Menü zur Eingabe bereit steht - auch wenn dieses durch GRUB_HIDDEN_TIMEOUT nicht angezeigt wird. Die dritte Zahl (im Beispiel die 1) beeinflusst die Dauer. Alle durch Leerzeichen getrennten Wertegruppen müssen insgesamt von "" eingefasst sein.
GRUB_THEME= "/PFAD/ZUR/KONFIGURATIONSDATEI" Stellt den Pfad zu einem GRUB Thema ein. Siehe dazu GRUB 2/Aussehen - erweiterte Konfiguration.

Serielle Ausgabe

Für die Ausgabe des GRUB-Menüs auf ein serielles Ein- bzw. Ausgabegerät (VT100-Terminal, Modem) müssen die nachfolgenden Variablen wie folgt gesetzt werden (fehlende Variablen sind entsprechend nachzutragen, auf die Optionen als solche wird hier nicht eingegangen!):

Terminal Variable in der /etc/default/grub
Variable Wert Bedeutung
GRUB_TERMINAL= serial Ersetzt man console mit serial, so wird die Ausgabe auf den seriellen Port umgeleitet - dieser muss von der Hardware her vorhanden, aber nicht notwendigerweise auch belegt sein.
"console serial" Setzt man console zusammen mit serial, eingefasst in ", so erfolgt die Ausgabe auf beide Anzeigegeräte. Auch die Bedienbarkeit ist von beiden Geräten alternativ möglich.
GRUB_SERIAL_COMMAND= serial --OPTIONEN Optionale Einträge zur seriellen Schnittstelle werden hier nach dem =serial jeweils hinter einem Doppel-Minus eingetragen (z.B.: --unit=, --port=, --speed=, --word=, --parity=, --stop=, --device=). Zum Beispiel
GRUB_CMDLINE_LINUX= TEXT Hier werden ggf. obige Optionen beim Eintrag der Kernelzeile um die relevanten Daten ergänzt (z.B.: serial=ttyS0 console=ttyS0,9600n8).

Variable für Kernelzeilen

Die nachfolgenden Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden wie nachfolgend ausgewiesen bei den Images aus dem Verzeichnis /boot angewendet:

Kernel Variable in der /etc/default/grub
Bezeichnung der Variable Verwendung Bootoption
Login-Modus Recovery-Modus
GRUB_CMDLINE_LINUX= Ja Ja
GRUB_CMDLINE_LINUX_EXTRA= Ja Nein
GRUB_CMDLINE_LINUX_DEFAULT= Ja Nein

Diese Variablen können auch bei der Erstellung der eigenen Skripte eingesetzt werden.

Eigene Variablen

Will man weitere Variablen z.B. auch für die eigenen Skripte übergeben, so ergänzt man je die

eigene Variable in der /etc/default/grub
Setzen Variable Wert
export GRUB_MEINE_VARIABLE= "meine Information"

Skripte in /etc/grub.d

Die Menü-Einträge zur Auswahl des zu startenden Betriebssystems und auch das genaue grafische Erscheinungsbild werden bei GRUB 2 über die Skripte im Verzeichnis /etc/grub.d konfiguriert. Standardmäßig sind dort u.a. die folgenden Skripte enthalten:

00_header
05_debian_theme
10_linux
20_linux_xen
20_memtest86+
30_os-prober
40_custom
41_custom

Wiki/Icons/wubi.png
Für die Installation mit Wubi steht dieses spezielle Skript zusätzlich zur Verfügung:

10_lupin

welches anstelle von 10_linux zum Booten der Datei root.disk benutzt wird.

75px-Uefi_logo.png
Für die Installation mit einem EFI Bootmanagement steht dieses spezielle Skript zusätzlich zur Verfügung:

30_uefi-firmware

welches den direkten Zugriff aus dem Grubmenü auf die Firmware (BIOS) ermöglicht.

Daneben können aber auch eigene Skripte erstellt werden. Dies ist auch grundsätzlich der Bearbeitung bzw. Veränderung eines vorhandenen Standard-Eintrages vorzuziehen. Dazu siehe die ausführlichen Beschreibungen unter GRUB 2/Skripte.

Die Abarbeitungs-Reihenfolge der Skripte

Wie man sieht, werden die Skriptnamen von einer Nummer (XX_) angeführt. Die Skripte werden aufsteigend dieser Nummer entsprechend abgearbeitet. Haben zwei Skripte die gleiche Nummer, so bestimmt deren weitere alphanumerische Reihenfolge die Abarbeitung.

Ein Skript mit der Bezeichnung 10_eigenes (Skript) wird vor 10_linux zur Abarbeitung aufgerufen. Auf diese Weise lässt sich die Reihenfolge der Menü-Einträge beeinflussen.

Ein Klassiker dabei ist es, im Verzeichnis /etc/grub.d/ die Datei 30_os-prober in 09_os-prober umzubenennen, um so die Windowseinträge vor den Linuxeinträgen anzuordnen:

sudo mv /etc/grub.d/30_os-prober /etc/grub.d/09_os_prober 

Danach muss die Grub-Konfiguration aktualisiert werden (siehe auch unten):

sudo update-grub 

Standardeinträge in die grub.cfg

Hinweis:

Die nachfolgenden Beschreibungen der /boot/grub/grub.cfg dienen ausschließlich dazu, die Ergebnisse nach einem Eingriff in die Datei /etc/default/grub oder durch den Einsatz von eigenen Skripten zu überprüfen. Eine Bearbeitung dieser Datei ist zwar grundsätzlich möglich, sollte aber (nur zum Testen) der letzte Schritt sein.

Es wird der Inhalt der Datei /boot/grub/grub.cfg beschrieben, wie dieser sich nach einer nicht nachbehandelten Installation darstellt. Dabei kann der Pfad zu dieser Datei in Abhängigkeit von der Partitionierung (getrennte Bootpartition) abweichen. Unterschiede bei den Informationen sind immer dann zu erwarten, wenn man die Ergebnisse der Skripte von 10_linux bzw. 30_os-prober sich ansieht. Insbesondere sind die beispielhaften Eintragungen (hd0,3) bzw. der UUID nur als solche anzusehen und werden im jeweiligen System abweichen.

Jeder Eintrag wird von einer ###BEGIN- bzw. ###END-Sequenz eingefasst, aus der man auch das Skript ablesen kann, welches für den Inhalt dieses Teil-Abschnittes abgearbeitet wurde.

Ohne nachfolgend näher auf die detaillierten Inhalte einzugehen, werden hier die erforderlichen, allgemeinen Befehle und Funktionen bereitgestellt, die das GRUB-2-Basisprogramm benötigt. Dabei sind einige Befehle fest im GRUB-2-Basisprogramm verankert, die als ladbare Images (*.img) im Verzeichnis /boot/grub/ vorliegen, andere hingegen sind in Form von <Befehl>.mod dort abgelegt.

Skript 00_header

Das Skript /etc/grub.d/00_header liefert in Abhängigkeit von den

Einstellungen in der /etc/default/grub
Variable Wert
GRUB_DEFAULT= 0
GRUB_TIMEOUT= 7
GRUB_GFXMODE= 800x600x16

folgendes Ergebnis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
### 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
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set ae875d31-cc84-4349-95d7-01a82ad76d61
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=800x600x16
  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,3)'
search --no-floppy --fs-uuid --set ae875d31-cc84-4349-95d7-01a82ad76d61
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=7
fi
### END /etc/grub.d/00_header ###

Hinweis:

Bei einem Btrfs-Dateisystem und integriertem /boot-Verzeichnis ändern sich die obige Zeile 28 bzw. Zeile 41 in einer Standardinstallation wie folgt

if loadfont /usr/share/grub/unicode.pf2 ; then --> 
if loadfont /@/usr/share/grub/unicode.pf2 ; then
...
set locale_dir=($root)/boot/grub/locale --> 
set locale_dir=($root)/@/boot/grub/locale

Skript 05_debian_theme

Das Skript /etc/grub.d/05_debian_theme liefert ohne Nachbearbeitung folgendes Ergebnis, bei dem die Zeilen der Auswahl vom Bootloader mit weißer Schrift auf schwarzen Hintergrund zur Anzeige gebracht werden, der hervorgehobene Eintrag dagegen mit schwarzer Schrift auf hellgrauem Hintergrund:

1
2
3
4
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

Man kann das Grub-Menü anpassen, entsprechende Informationen und Einstellungen sind unter GRUB 2/Aussehen beschrieben. Danach sieht dieser Abschnitt dann z.B. wie folgt aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root='(hd0,3)'
search --no-floppy --fs-uuid --set ae875d31-cc84-4349-95d7-01a82ad76d61
insmod png
if background_image /boot/grub/grub_menu.png ; then
  set color_normal=black/black
  set color_highlight=white/light-gray
else
  set menu_color_normal=white/black
  set menu_color_highlight=black/white
fi
### END /etc/grub.d/05_debian_theme ###

Hinweis:

Bei einem Btrfs-Dateisystem und integriertem /boot-Verzeichnis ändert sich die obige Zeile in einer Standardinstallation wie folgt

if background_image /boot/grub/grub_menu.png ; then -->
if background_image /@/boot/grub/grub_menu.png ; then

Skript 10_linux

Das Skript /etc/grub.d/10_linux liefert in Abhängigkeit von den im Verzeichnis /boot vorhandenen Kernel-Images und den

Einstellungen in der /etc/default/grub
Variable Wert
GRUB_SAVEDEFAULT= true
GRUB_CMDLINE_LINUX_DEFAULT= "quiet splash"
GRUB_DISABLE_LINUX_RECOVERY= false

folgendes Ergebnis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
menuentry "Ubuntu, with Linux 2.6.31-17-generic" {
        recordfail
	savedefault
	insmod ext2
	set root='(hd0,3)'
	search --no-floppy --fs-uuid --set=root ae875d31-cc84-4349-95d7-01a82ad76d61
	linux	/boot/vmlinuz-2.6.31-17-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro   quiet splash
	initrd	/boot/initrd.img-2.6.31-17-generic
}
menuentry "Ubuntu, with Linux 2.6.31-17-generic (recovery mode)" {
        recordfail
	savedefault
	insmod ext2
	set root='(hd0,3)'
	search --no-floppy --fs-uuid --set=root ae875d31-cc84-4349-95d7-01a82ad76d61
	echo	Loading Linux 2.6.31-17-generic ...
	linux	/boot/vmlinuz-2.6.31-17-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro single 
	echo	Loading initial ramdisk ...
	initrd	/boot/initrd.img-2.6.31-17-generic

Setzt man die Variable GRUB_DISABLE_LINUX_RECOVERY= auf true, wird der zweite Eintrag für den Recovery Modus unterbunden.

Erscheinungsbild Grubmenü

Es wird nur der neueste Kernel (also der mit der höchsten Versionskennung) im Grub-Menü direkt angezeigt. Alle weiteren Linuxkernel (also die mit niedrigerer Versionskennung im gleichen System) werden in einem Untermenü zusammengefasst. Dieses wird im Grub-Menü wie folgt angezeigt:

Ubuntu, mit Linux 2.6.38-8-generic
Ubuntu, mit Linux 2.6.38-8-generic (Wiederherstellungsmodus)
Previous Linux Versions

Wenn man mit den Pfeiltasten auf die im Beispiel letzte Position im Grub-Menü wechselt und diesen Menüpunkt mit der -Taste aufruft, werden (nun nur) die innerhalb dieses Untermenüs angelegten Kernel zur Auswahl angeboten. In der Datei /boot/grub/grub.cfg finden sich dazu nach dem ersten Kernelsatz folgende Zeile:

submenu "Previous Linux versions" {
.... andere Menüeinträge ...
}

Wichtig sind hier nun die Zeile 1 mit der geschweiften Klammer sowie die Zeile 3, die diese Funktion mit der relevanten geschweiften Klammer abschliesst. Die anderen Menüeinträge liegen, in der oben beschriebenen Aufbereitung, jeweils vollständig dazwischen. Ins Hauptmenü zurück gelangt man durch Betätigen von Esc .

Ergänzung im Skript

  • Der Wiederherstellungsmodus (Recovery Modus) ist per Default auf eine eingeschränkte, read-only Version voreingestellt, in der man zwar relevante Festplattentest o.ä. ausführen kann, jedoch werden alle Schreibzugriffe auf die Datenträger unterbunden. Um in das normale Friendly Recovery zu gelangen, muss hier erst die Option remount ausgewählt werden. Siehe auch die Beschreibung unter Recovery_Modus.

  • Änderung am Verhalten des Wiederherstellungsmodus ist dadurch möglich, dass man die jeweilige Zeile(n) wie folgt ändert:

1
2
	linux	/boot/vmlinuz-2.6.31-17-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro  recovery nomodeset 
	linux	/boot/vmlinuz-2.6.31-17-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro  single
  • Wird ein Btrfs-Dateisystem eingesetzt, ändern sich dadurch die Kernelzeilen für die /boot/grub/grub.cfg, abhängig ob es ein integriertes /boot-Verzeichnis gibt oder eine getrennte /boot-Partition.

1
2
3
4
5
	linux	/boot/vmlinuz-2.6.31-17-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro   quiet splash -->
	linux	/@/boot/vmlinuz-3.0.0-12-generic root=UUID=ae875d31-cc84-4349-95d7-01a82ad76d61 ro  rootflags=subvol=@ quiet splash

	initrd	/boot/initrd.img-2.6.31-17-generic
	initrd	/@/boot/initrd.img-3.0.0-12-generic

Skript 20_linux_xen

Das Skript /etc/grub.d/20_linux_xen ist vergleichbar mit dem Skript /etc/10_linux, nur das es die Besonderheiten eines "XEN virtual servers" berücksichtigt und entsprechende Parameter abfragt und in die /boot/grub/grub.cfg einsetzt.

Skript 20_memtest86+

Das Skript /etc/grub.d/20_memtest86+ liefert folgende Einträge, die zum Testen des RAM-Speichers dienen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
        insmod ext2
        set root='(hd0,3)'
        search --no-floppy --fs-uuid --set=root ae875d31-cc84-4349-95d7-01a82ad76d61
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod ext2
        set root='(hd0,3)'
        search --no-floppy --fs-uuid --set=root ae875d31-cc84-4349-95d7-01a82ad76d61
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

Hinweis:

Bei einem Btrfs-Dateisystem und integriertem /boot-Verzeichnis ändern sich die obige Zeilen in einer Standardinstallation wie folgt.

	linux16	/boot/memtest86+.bin -->
	linux16	/@/boot/memtest86+.bin
        ...
	linux16	/boot/memtest86+.bin console=ttyS0,115200n8 -->
	linux16	/@/boot/memtest86+.bin console=ttyS0,115200n8

Skript 30_os-prober

Normale Verwendung

Das Skript /etc/grub.d/30_os-prober überprüft alle angeschlossenen (und erkannten) Datenträger darauf hin, ob fertige Menü-Einträge, andere Kernel-Images oder Betriebssysteme vorhanden sind und liefert ohne Nachbearbeitung folgende beispielhafte Information:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (on /dev/sda1)" {
	savedefault
	insmod ntfs
	set root='(hd0,1)'
	search --no-floppy --fs-uuid --set=root 265585bd5150c55f
	drivemap -s (hd0) ${root}
	chainloader +1
}
menuentry "Ubuntu, with Linux 2.6.32-12-generic-pae (on /dev/sda6)" {
	savedefault
	insmod ext2
	set root='(hd0,6)'
	search --no-floppy --fs-uuid --set=root 843c4345-0c0a-4df6-8abe-8114b06393b2
	linux /boot/vmlinuz-2.6.32-12-generic-pae root=UUID=843c4345-0c0a-4df6-8abe-8114b06393b2 ro quiet splash
	initrd /boot/initrd.img-2.6.32-12-generic-pae
### END /etc/grub.d/30_os-prober ###

Dieser Vorgang kann je nach der Anzahl sowie Größe der Datenträger und der jeweils gefundenen Partitionen durchaus länger andauern. Um dieses ggf. abzukürzen, kann man diese Sequenz durch Hinzufügen der Variable GRUB_DISABLE_OS_PROBER=true in der Datei /etc/default/grub unterbinden.

Die Ausgabe von 30_os-prober kann auch dazu genutzt werden, die für die eigenen Skripte erforderliche Syntax sowie z.B. um die relevanten Daten für (hd0,6) bzw. UUID abzufragen. Die ausgegebenen Sequenzen kann man als Kopie (Vorlage) aus der generierten grub.cfg zum Erstellen von Skripten als Referenz / Beispiel nutzen.

Countdown einrichten

Mittels des Skriptes 30_os-prober und den folgenden

Einstellungen in der /etc/default/grub
Variable Wert
GRUB_DISABLE_OS_PROBER= true
GRUB_HIDDEN_TIMOUT= 5
GRUB_HIDDEN_TIMEOUT_QUIET= false

wird eine Countdown-Sequenz für die /boot/grub/grub.cfg erstellt:

1
2
3
4
5
6
7
### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
    if sleep --interruptible 5 ; then
      set timeout=0
    fi
fi
### END /etc/grub.d/30_os-prober ###

Damit wird ein verdeckter Countdown mit der vorgegebenen Zeit eingerichtet. Diesen Countdown kann man mit der - bzw. Esc -Taste abbrechen und damit das Grub-Menü zur Anzeige bringen. Wenn man neben den Kerneleinträgen aus dem Verzeichnis /boot weitere Betriebssysteme einbinden will, so darf die oben beschriebene Funktion mittels GRUB_DISABLE_OS_PROBER=true nur verwendet werden, wenn man gleichzeitig für diese anderen Betriebssysteme eigene Skripte erstellt und einbindet.

Achtung!

Ohne obige Sequenz in der einen oder anderen Variante kann man das Bootmenü nach der Aktivierung von GRUB_HIDDEN_TIMEOUT nicht mehr sichtbar machen.

Entsprechend der

Einstellungen in der /etc/default/grub
Variable Wert
GRUB_TIMEOUT= 10

wird danach für diesen ausgewählten Zeitraum das Grub-Menü angezeigt.

Skript 40_custom

Das Skript /etc/grub.d/40_custom liefert ohne Nachbearbeitung folgende Information:

1
2
3
4
5
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

Wobei die Übersetzung sinngemäß lautet:

# Diese Datei bietet einen einfachen Weg, eigene Menü-Einträge hinzuzufügen.
# Füge die gewünschten Menü-Einträge einfach unterhalb dieses Kommentars ein.
# Achte darauf, die Zeile oben mit 'exec tail' nicht zu verändern.

Skript 41_custom

Das Skript /etc/grub.d/41_custom liefert ohne Nachbearbeitung folgende Information:

1
2
3
if [ -f  \$prefix/custom.cfg ]; then
  source \$prefix/custom.cfg;
fi

und kann zum Laden einer eigenen Konfigurationsdatei beliebigen Inhaltes benutzt werden, die unter

  • /boot/grub/

abgelegt wurde. Die Bezeichnung prefix ist die relevante standardmäßige Umsetzung des jeweiligen Pfades zu dieser Datei und wird automatisch beim Booten gesetzt. Für ein System mit integriertem Verzeichnis auf:

  • (hd0,1)/boot/grub/

bzw. bei getrennter Bootpartition auf:

  • (hd0,5)/grub

Die jeweils zutreffende Partition wird dabei vom System selbstständig eingetragen.

Weitere Hinweise zur Erstellung eigener Skripte und den Möglichkeiten und Erfordernissen sind in den Beschreibungen unter GRUB 2/Skripte nachzulesen.

Festplatten- und Partitions-Bezeichnungen

Die Festplatten werden im System (hardwaremäßig) in der Regel nach der Zuordnung zu den SATA- bzw. IDE-Ports eingeordnet und damit die Reihenfolge festgelegt. Die Auswahl bzw. Zuordnung im BIOS, von welcher dieser Festplatten als "erste" Festplatte gebootet wird, hat hierauf keinen Einfluss. Ein nicht belegter Port wird in der Auflistung ausgelassen.

Zählweise Festplatten

Die Bezeichnung in GRUB 2 wird fortlaufend vergeben, d.h. bei fehlender Platte in einem der Hardware-Ports erhält die niedrigste die Zuordnung (hd0). Dieses Verhalten kann zu Problemen führen, wenn z.B. eine Platte vorübergehend aus dem System entfernt wird (z.B.: Datenkabel wird abgezogen) bzw. eine weitere Festplatte eingefügt wird. Die folgende Tabelle stellt Beispiele für die Zuordnung dar:

Portbelegung auf dem Motherboard und Zuordnung
SATA 1 Primär SATA 1 Sekundär SATA 2 Primär SATA 2 Sekundär
/dev/sda = (hd0) --- /dev/sdb = (hd1) ---
/dev/sda = (hd0) /dev/sdb = (hd1) --- /dev/sdc = (hd2)
--- --- /dev/sda = (hd0) ---

Bezeichnung Festplatten

GRUB 2 bezeichnet die Festplattenpartitionen mit (hdX,Y), dabei ist

  • X die lfd. Nummern der Festplatte

  • Y die lfd. Zählnummer der Partition

Die Zählung der Festplatten beginnt immer mit 0, die der Partitionen immer mit 1:

Hinweis:

Zu beachten ist, dass die Nummerierung von logischen Laufwerken in einer erweiterten Partition {de} immer bei 5 beginnt - unabhängig von der Anzahl der vorhandenen primären Partitionen und als welche die erweiterte Partition angeordnet wurde.

Die in der grub.cfg ausgewiesene Schreibweise (Zählung) der Partitionen kann je nach Grub-Version abweichen.

Festplatten-Bezeichnung und Zuordnung
Partition Linux Grub
1. Partition auf der X. Platte /dev/sdX1 (hdX,1)
2. Partition auf der X. Platte /dev/sdX2 (hdX,2)
... ... ...
Y. Partition auf der 1. Platte /dev/sdaY (hd0,Y)
Y. Partition auf der 2. Platte /dev/sdbY (hd1,Y)
... ... ...

Externe Festplatten

Wird eine externe Festplatte angeschlossen, so erkennt das System im Terminal bei einem:

sudo fdisk -l 

neben z.B: zwei internen Festplatten (/dev/sda und /dev/sdb) diese externe Festplatte als /dev/sdc. Will man hierauf GRUB 2 installieren, so muss als Ziel-Laufwerk im Terminal:

sudo grub-install /dev/sdc 

angegeben werden. Nach dem Booten wird nun diese externe Festplatte in der GRUB 2 Konsole bei einem:

ls 

zu (hd0) (hd0,1) usw. je nach Anzahl der Partitionen und auch bei:

set 

wird die Boot-Partition entsprechend mit (hd0,x) angezeigt. Auch wenn im entsprechenden menuentry als Ziel-Laufwerk z.B.: (hd2,x) steht.

Automatisch

  • Beim Entfernen alter Kernel über die Paketverwaltung wird in der Regel ein Update von GRUB 2 durchgeführt, so dass die Einträge auch aus der /boot/grub/grub.cfg gelöscht werden.

  • Andere Betriebssysteme werden - sofern sie vom Computer gelöscht wurden - aus dem Menü entfernt, indem man nach dem Löschen der Systeme die GRUB-2-Konfiguration updatet.

Manuell

Möchte man Einträge manuell aus dem GRUB-2-Menü löschen, so hat man mehrere Möglichkeiten:

  1. Man entzieht dem Skript, das die unerwünschten Einträge erstellt, die Ausführbarkeit:

    sudo chmod -x /etc/grub.d/20_memtest86+ 

    Das Beispiel entzieht der Datei /etc/grub.d/20_memtest86+ die Ausführbarkeit.

  2. Auskommentieren von Einträgen mittels # im betreffenden Skript, das den oder die unerwünschten Eintragszeilen enthält.

  3. Man löscht die Einträge aus dem betreffenden Skript.

  4. Kernel-Recovery-Einträge kann man insgesamt durch den Eintrag GRUB_DISABLE_LINUX_RECOVERY=true in der /etc/default/grub unterdrücken.

Zwei weitere manuelle Lösungsmöglichkeiten befinden sich ausführlich erläutert im Forum. Die erste Variante davon ist einfach und solide, erfordert aber stets manuelles Eingreifen bei Installation weiterer Systeme, die im Bootmenü erscheinen sollen. Die zweite Variante ist ein technischer Kniff ("Workaround"), die besonders elegant und einfach eine Menü-Blacklist erzeugt. Die Erkennung weiterer Systeme funktioniert also weiterhin automatisch, jedoch ohne die unerwünschten Blacklist-Einträge. Allerdings sorgt ein eventuelles Update der GRUB-2-Datei /usr/bin/os-prober dafür, dass wieder alle Einträge einschließlich der Blacklist automatisch erkannt werden. Dann muss man alle Schritte wiederholen, außer der Erstellung der Blacklist.

Grub-Konfiguration updaten

update

grub.cfg updaten

Nach jeder Änderung an der Datei /etc/default/grub oder an Skripten im Verzeichnis /etc/grub.d, muss die Grubkonfiguration - die in der Datei /boot/grub/grub.cfg gespeichert ist - aktualisiert werden. Andernfalls werden Änderungen beim nächsten Systemstart nicht sichtbar.

Um eine Information darüber zu erhalten, wie die Datei /boot/grub/grub.cfg mit den momentanen Einstellungen aussieht, gibt man im Terminal [1] ein:

sudo grub-mkconfig 

(siehe auch GRUB 2/Terminalbefehle) und kann dann das Ergebnis überprüfen. Dieses wird noch nicht in die Grub-Konfiguration übernommen. Ist man mit dem Ergebnis zufrieden, so kann man mit

sudo update-grub 

die Datei /boot/grub/grub.cfg neu schreiben lassen. Nähere Informationen siehe unter GRUB 2/Terminalbefehle

grubenv anpassen

Hinweis:

Die Datei /boot/grub/grubenv ist nur wirksam, wenn bei den Optionen von /etc/default/grub die Variable GRUB_DEFAULT=saved gesetzt ist.

Hatte man Probleme beim Starten mit einem Menüeintrag oder kommt man wegen falscher Einstellungen in der Datei /etc/default/grub bei den Werten GRUB_DEFAULT bzw. GRUB_TIMEOUT oder anderer Fehler nicht ins Grub-Menü, so kann man die Datei /boot/grub/grubenv auch vom Desktop her in einem Terminal [1] neu konfigurieren.

Will man dagegen einem bestimmten Eintrag beim nächsten Start des Rechners verwenden, so kann man die Datei /boot/grub/grubenv vom Desktop her in einem Terminal [1] entsprechend einrichten, so dass dieser Eintrag einmalig aufgerufen wird. Der nächste Start erfolgt dann wieder mit dem vorher gespeicherten Eintrag.

Grub-Menü absichern

Um zumindest einen einfachen Schutz vor einer Manipulation des GRUB-Menüs zur Laufzeit zu erhalten, kann man die Bearbeitung insgesamt (Superuser-Rechte) bzw. die Auswahl einzelner Menü-Einträge durch ein Passwort absichern.

Hinweis:

Dieses kann von einen geübten Linux-Anwender ohne Probleme umgangen werden - jedoch braucht man dafür eine gewisse Zeit, in der man ungestört arbeiten kann und weitere Hilfsmittel. Wenn der Rechner in fremde Hände fällt, ist das nachfolgend Beschriebene ohnehin keine Barriere.

Vorbereitung Schlüssel

Dazu muss die Sequenz - wie unter Terminalbefehle beschrieben - im Terminal [1] mit dem Befehl:

grub-mkpasswd-pbkdf2 [Optionen] 

erstellt und an geeigneter Stelle für die Datei /boot/grub/grub.cfg aufbereitet werden. Nachfolgend wird nur der grundsätzliche Aufbau aufgezeigt, der für das generelle Sperren des Grub-Menüs insgesamt bzw. von Menü-Einträgen im Einzelnen erforderlich ist:

1
2
3
4
5
export superusers
set superusers="BENUTZERNAME-1"
password_pbkdf2 <BENUTZERNAME-1> grub.pbkdf2.sha512.10000.<salted.passwd>
password_pbkdf2 <BENUTZERNAME-2> grub.pbkdf2.sha512.10000.<salted.passwd>
password  <BENUTZERNAME-3> MeinPasswort

Die Zeilen eins (1) bis drei (3) sind obligatorisch, weitere Zeilen (ab vier (4) alternativ) und bedeuten:

Absicherung des Grub-Menü
Zeile Befehl Wertvorgabe/Bedeutung
Zeile 1 export superusers Diese Variable für alle Bereich deklarieren - dieses ist zwingend erforderlich, damit z.B. die Funktion Untermenü richtig ausgewertet wird.
Zeile 2 set superusers= Auflistung der Benutzernamen der Superuser, jeder getrennt durch ein Leerzeichen, insgesamt eingefasst durch Hochkommas. Nur diese Benutzer-Namen erhalten Superuser-Rechte.
Zeile 3 password_pbkdf2 Benutzername jeweils getrennt mit einem Leerzeichen, gefolgt von der generierten Schlüssel-Information
Zeile 4 password_pbkdf2 Für jeden (weiteren) Benutzernamen eine Zeile mit den jeweils generierten Schlüssel-Informationen
Zeile 5 password Für jeden (weiteren) Benutzernamen eine Zeile mit den jeweils im Klartext abgelegten Passwort.

Achtung!

Nicht empfehlenswert, da sehr unsicher!

Bereitstellung zur Verarbeitung

Es bietet sich hierfür die Datei /etc/grub.d/40_custom an, in die man obige Einträge direkt einbringt.

Es ist aber auch eine Trennung dieser Daten von der Datei /boot/grub/grub.cfg möglich. Dazu erstellt man für obige Einträge die Datei pbkdf2.lst und legt diese im Verzeichnis /boot/ ab. Aufgerufen wird das dann beim Booten mittels:

1
2
3
if [ -f /boot/pbkdf2.lst ]; then
   source /boot/pbkdf2.lst
fi

welches als Eintrag in der /etc/grub.d/40_custom oder in einem eigenen Skript eingebracht wird.

Hinweis:

Die Bezeichnung der Datei bzw. auch das Verzeichnis können frei gewählt werden, müssen aber vom Bootloader erreichbar sein. Dann muss auch anstelle von /boot ==> \$root/Pfad_zur_Datei im Skript verwendet werden!

Bis Ubuntu 12.04 Precise Pangolin

Bis Precise sind Menü-Einträge grundsätzlich von allen Benutzern ausführbar, auch nicht authentifizierten Benutzern. Das setzen der Benutzer und Passwörter verhindert folglich nur die Manipulation der Bootparameter. Um einen einzelnen Menü-Eintrag von einer allgemeinen Auswahl auszuschließen, muss dieser (noch manuell) nachbearbeitet werden, damit eine Überprüfung stattfindet. Dazu muss eine vorhandene Titel-Zeile der /boot/grub/grub.cfg wie folgt erweitert werden:

  • Beispiel zugänglich nur für Superuser

1
menuentry 'Ubuntu 12.04 Precise Pangolin' --users '' {
  • Beispiel

    • zugänglich für Superuser, immer möglich

    • eingetragene(r) Benutzername(n, getrennt durch Leerzeichen)

1
menuentry 'Ubuntu 12.04 Precise Pangolin' --users 'BENUTZERNAME' {

Da dieses aber in den Standard-Einträgen nur bis zum nächsten Kernel-Update Bestand hat, sollte man das nur bei eigenen Skripten anwenden bzw. die Einträge für den Recovery Modus deaktivieren (siehe die Hinweise zur Variablen GRUB_DISABLE_LINUX_RECOVERY=true), damit wird zumindest allen schnellen Manipulationen die Basis entzogen.

Achtung!

War der Superuser einmal angemeldet, so ist auch für Andere, die danach Zugriff auf den Rechner haben, jegliche Manipulation möglich!

Ab Ubuntu 12.10 Quantal Quetzal

Ab Quantal sperrt GRUB 2 beim Setzen eines Passworts grundsätzlich alle Einträge und fragt das Superuserpasswort bei jedem Boot ab. Für alle Booteinträge kann dieses Verhalten in /etc/grub.d/10_linux geändert werden, indem die menuentrys --unresticted oder --user BENUTZERNAME hinzugefügt werden. Dabei ermöglicht --unresticted den Boot ohne Passwortabfrage im GRUB, während --user BENUTZERNAME dem entsprechenden Benutzer das Booten des Eintrags ermöglicht. Zu beachten ist, dass diese Änderungen überschrieben werden, wenn eine Aktualisierung des Pakets für GRUB 2 aufgespielt wird. Die entsprechende Zeile sieht danach wie folgt aus:

1
echo "menuentry '$(echo "$title" | grub_quote)' --unrestricted ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"

oder

1
echo "menuentry '$(echo "$title" | grub_quote)' --users 'BENUTZERNAME' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"

Sollen nur bestimmte Einträge freigeschaltet werden, kann der entsprechende Eintrag in der /boot/grub/grub.cfg geändert werden. Diese Änderung muss jedoch nach jedem Lauf von update-grub, beispielsweise bei einer Aktualisierung des Linux-Kernel-Pakets wiederholt werden.

1
menuentry 'Ubuntu, mit Linux 3.5.0-17-generic' --unrestricted {
1
menuentry 'Ubuntu, mit Linux 3.5.0-17-generic' --users 'BENUTZERNAME' {

Diese Revision wurde am 20. November 2014 06:52 von Dee erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Bootloader, Installation, System