Wie man prüft, ob GRUB-Einstellungen in Linux angewendet wurden

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man überprüft, ob die Änderungen an der GRUB-Bootloader-Konfiguration in Linux erfolgreich angewendet wurden. Wir werden die primäre GRUB-Konfigurationsdatei unter /etc/default/grub untersuchen, um ihre Einstellungen zu verstehen.

Anschließend werden wir die generierte GRUB-Menü-Konfigurationsdatei unter /boot/grub/grub.cfg betrachten, um zu sehen, wie die Einstellungen aus der Standarddatei umgesetzt werden. Schließlich werden wir die Kernel-Bootparameter mit dem Befehl dmesg überprüfen, um sicherzustellen, dass die GRUB-Einstellungen im laufenden System widergespiegelt werden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558789{{"Wie man prüft, ob GRUB-Einstellungen in Linux angewendet wurden"}} linux/grep -.-> lab-558789{{"Wie man prüft, ob GRUB-Einstellungen in Linux angewendet wurden"}} end

Überprüfen der GRUB-Konfiguration mit cat /etc/default/grub

In diesem Schritt werden wir die GRUB-Konfigurationsdatei untersuchen. GRUB (GRand Unified Bootloader) ist der Bootloader für viele Linux-Distributionen, einschließlich Ubuntu. Es ist die erste Software, die beim Starten Ihres Computers ausgeführt wird, und es ist für das Laden des Betriebssystem-Kernels verantwortlich.

Die Hauptkonfigurationsdatei für GRUB befindet sich unter /etc/default/grub. Diese Datei enthält Einstellungen, die bestimmen, wie GRUB verhält, wie z. B. das Standard-Betriebssystem zum Booten, das Timeout vor dem Booten und die Kernel-Parameter.

Lassen Sie uns den Inhalt dieser Datei mit dem Befehl cat anzeigen. Der Befehl cat wird verwendet, um den Inhalt von Dateien anzuzeigen.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Denken Sie daran, dass Sie das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden können.

Geben Sie den folgenden Befehl ein und drücken Sie Enter:

cat /etc/default/grub

Sie werden den Inhalt der Datei /etc/default/grub in Ihrem Terminal sehen. Es wird in etwa so aussehen:

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUB_TERMINAL_INPUT=console

## Uncomment to disable menu scrolling
#GRUB_MENU_SCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pci_filter_enable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUB_DISABLE_GRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUB_ENABLE_CRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUB_INIT_TUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUB_DISABLE_OS_PROBER=false

Diese Datei enthält verschiedene Einstellungen. Beispielsweise:

  • GRUB_DEFAULT: Gibt den Standard-Menüeintrag zum Booten an. 0 bedeutet der erste Eintrag.
  • GRUB_TIMEOUT: Legt die Zeit in Sekunden fest, bevor der Standard-Eintrag automatisch gestartet wird.
  • GRUB_CMDLINE_LINUX_DEFAULT: Enthält Kernel-Parameter, die an den Kernel übergeben werden, wenn der Standard-Eintrag gestartet wird.

Das Verständnis dieser Datei ist für die fortgeschrittene Linux-Konfiguration und die Behebung von Boot-Problemen von entscheidender Bedeutung.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen des GRUB-Menüs mit cat /boot/grub/grub.cfg

Im vorherigen Schritt haben wir uns /etc/default/grub angesehen, die primäre Konfigurationsdatei für GRUB. Diese Datei wird jedoch während des Bootvorgangs nicht direkt von GRUB verwendet. Stattdessen werden die Einstellungen in /etc/default/grub genutzt, um die eigentliche GRUB-Menü-Konfigurationsdatei zu generieren, die sich unter /boot/grub/grub.cfg befindet.

Die Datei /boot/grub/grub.cfg wird automatisch durch den Befehl update-grub (oder grub-mkconfig) generiert. Sie enthält die Menüeinträge, die Sie beim Starten des Computers sehen und die es Ihnen ermöglichen, auszuwählen, welches Betriebssystem oder welcher Kernel gestartet werden soll.

Wichtig: Sie sollten die Datei /boot/grub/grub.cfg niemals manuell bearbeiten. Alle Änderungen, die Sie vornehmen, werden beim nächsten Ausführen von update-grub überschrieben. Ändern Sie immer /etc/default/grub und führen Sie dann sudo update-grub aus, um Ihre Änderungen anzuwenden.

Lassen Sie uns den Inhalt der Datei /boot/grub/grub.cfg mit dem Befehl cat anzeigen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie Enter:

cat /boot/grub/grub.cfg

Im Vergleich zu /etc/default/grub wird die Ausgabe viel länger und komplexer sein. Diese Datei enthält die detaillierte Konfiguration für jeden Boot-Menüeintrag, einschließlich des Kernel-Pfads, des initrd-Pfads und der Kernel-Befehlszeilenparameter.

#
## DO NOT EDIT THIS FILE
#
## It is automatically generated by grub-mkconfig using templates
## from /etc/grub.d and settings from /etc/default/grub
#

#### BEGIN /etc/grub.d/00_header ###
...
#### END /etc/grub.d/00_header ###

#### BEGIN /etc/grub.d/05_debian_theme ###
...
#### END /etc/grub.d/05_debian_theme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
	recordfail
	...
	linux	/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-*-generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20_linux_xen ###
...
#### END /etc/grub.d/20_linux_xen ###

#### BEGIN /etc/grub.d/30_os-prober ###
...
#### END /etc/grub.d/30_os-prober ###

#### BEGIN /etc/grub.d/30_uefi-firmware ###
...
#### END /etc/grub.d/30_uefi-firmware ###

#### BEGIN /etc/grub.d/40_custom ###
...
#### END /etc/grub.d/40_custom ###

#### BEGIN /etc/grub.d/41_custom ###
...
#### END /etc/grub.d/41_custom ###

Sie können durch die Ausgabe scrollen, um die verschiedenen Menüeinträge und ihre Konfigurationen zu sehen. Suchen Sie nach Zeilen, die mit menuentry beginnen. Diese definieren die Optionen, die im GRUB-Boot-Menü erscheinen.

Diese Datei ist komplex, und Sie müssen nicht sofort jede Zeile verstehen. Der wichtigste Punkt ist, dass /boot/grub/grub.cfg die Datei ist, die GRUB tatsächlich verwendet, und dass sie aus /etc/default/grub und Skripten in /etc/grub.d generiert wird.

Klicken Sie auf Weiter, um fortzufahren.

Prüfen der GRUB-Parameter in dmesg

In den vorherigen Schritten haben wir uns die GRUB-Konfigurationsdateien /etc/default/grub und /boot/grub/grub.cfg angesehen. Wir haben gesehen, dass /etc/default/grub die Variable GRUB_CMDLINE_LINUX_DEFAULT enthält, die die Kernel-Parameter angibt. Diese Parameter werden an den Linux-Kernel übergeben, wenn dieser gestartet wird.

Der Befehl dmesg wird verwendet, um die Nachrichten aus dem Kernel-Ringpuffer anzuzeigen. Diese Nachrichten enthalten Informationen über den Bootvorgang des Systems, einschließlich der Kernel-Befehlszeilenparameter, die verwendet wurden.

Lassen Sie uns dmesg verwenden, um die Kernel-Befehlszeilenparameter zu sehen, die von GRUB während des Bootvorgangs dieser virtuellen Maschine übergeben wurden.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie Enter:

dmesg | grep "Kernel command line"

Hier ist eine Aufschlüsselung des Befehls:

  • dmesg: Zeigt die Kernel-Nachrichten an.
  • |: Dies ist eine Pipe. Sie nimmt die Ausgabe des Befehls auf der linken Seite (dmesg) und sendet sie als Eingabe an den Befehl auf der rechten Seite (grep).
  • grep "Kernel command line": Dieser Befehl sucht in der Eingabe (von dmesg) nach Zeilen, die den genauen Ausdruck "Kernel command line" enthalten.

Die Ausgabe zeigt die Kernel-Befehlszeile an, die zum Booten des Systems verwendet wurde. Sie wird in etwa so aussehen:

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

Sie können die Parameter wie quiet und splash sehen, die wahrscheinlich in der Variable GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub definiert wurden. Diese Parameter sagen dem Kernel, wie er sich während des Bootvorgangs verhalten soll. Beispielsweise reduziert quiet die Anzahl der Ausgaben während des Bootvorgangs, und splash aktiviert einen grafischen Bootbildschirm.

Das Prüfen der Kernel-Befehlszeile mit dmesg ist eine nützliche Technik, um zu überprüfen, ob Ihre GRUB-Konfigurationsänderungen korrekt angewendet werden, und um Bootprobleme im Zusammenhang mit Kernel-Parametern zu beheben.

Sie haben nun erfolgreich die GRUB-Konfiguration untersucht und die Kernel-Parameter mit dmesg überprüft.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob die GRUB-Einstellungen in Linux angewendet werden. Wir haben begonnen, indem wir uns die primäre GRUB-Konfigurationsdatei /etc/default/grub angeschaut haben, indem wir den Befehl cat verwendet haben, um ihren Inhalt und die verschiedenen Parameter zu verstehen, die das Verhalten von GRUB während des Bootvorgangs steuern.

Durch das Anzeigen der Datei /etc/default/grub haben wir Einblicke in Einstellungen wie den Standard-Boot-Eintrag, Timeout-Werte und Kernel-Befehlszeilenargumente gewonnen. Dieser erste Schritt ist entscheidend, um die beabsichtigte GRUB-Konfiguration zu verstehen, bevor man deren Anwendung überprüft.