Wie man prüft, ob eine Kernel-Boot-Option in Linux aktiviert ist

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 lernen Sie, wie Sie prüfen können, ob eine bestimmte Kernel-Bootoption in Linux aktiviert ist. Wir werden drei Schlüsselmethoden zur Erreichung dieses Ziels untersuchen.

Zunächst verwenden Sie den Befehl cat /proc/cmdline, um die Befehlszeilenargumente anzuzeigen, die während der aktuellen Boot-Sitzung an den Kernel übergeben wurden. Als Nächstes untersuchen Sie die GRUB-Konfigurationsdatei unter /etc/default/grub, um zu verstehen, wo einige dieser Bootoptionen konfiguriert sind. Schließlich prüfen Sie die Boot-Logs mit dem Befehl dmesg, um zu sehen, wie der Kernel die Bootoptionen interpretiert und angewendet hat. Durch die Durchführung dieser Schritte werden Sie praktische Fähigkeiten in der Diagnose und dem Verständnis des Bootvorgangs Ihres Linux-Systems erwerben.


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/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558719{{"Wie man prüft, ob eine Kernel-Boot-Option in Linux aktiviert ist"}} linux/less -.-> lab-558719{{"Wie man prüft, ob eine Kernel-Boot-Option in Linux aktiviert ist"}} linux/grep -.-> lab-558719{{"Wie man prüft, ob eine Kernel-Boot-Option in Linux aktiviert ist"}} end

Prüfen von Bootoptionen mit cat /proc/cmdline

In diesem Schritt werden wir untersuchen, wie Sie die Bootoptionen anzeigen können, die beim Start Ihres Linux-Systems verwendet wurden. Diese Informationen werden in einer speziellen Datei innerhalb des /proc-Dateisystems gespeichert.

Das /proc-Dateisystem ist ein virtuelles Dateisystem in Linux, das Informationen über Prozesse und andere Systeminformationen bereitstellt. Es enthält keine echten Dateien auf Ihrer Festplatte, sondern bietet einen Einblick in die Datenstrukturen des Kernels.

Die Datei, die uns interessiert, ist /proc/cmdline. Diese Datei enthält die Befehlszeilenargumente, die dem Kernel beim Booten übergeben wurden. Diese Argumente können beeinflussen, wie der Kernel verhält und welche Hardware er erkennt.

Um den Inhalt dieser Datei anzuzeigen, verwenden wir den Befehl cat. Der cat-Befehl ist ein einfaches Hilfsprogramm, das zum Anzeigen des Inhalts von Dateien verwendet wird.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können dies tun, indem Sie auf das Symbol Xfce Terminal auf der linken Seite Ihres Desktops klicken.

Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /proc/cmdline

Sie werden eine Ausgabe ähnlich der folgenden sehen:

BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7

Die genaue Ausgabe variiert je nach der Konfiguration Ihres Systems, aber es wird das zu bootende Kernel-Image (BOOT_IMAGE), der Speicherort des Root-Dateisystems (root=) und andere Optionen wie ro (zunächst schreibgeschütztes Dateisystem), quiet und splash angezeigt.

Das Verständnis dieser Bootoptionen kann hilfreich sein, um Bootprobleme zu beheben oder bestimmte Kernel-Verhaltensweisen zu konfigurieren.

Denken Sie daran, dass /proc/cmdline eine dynamische Datei ist, die vom Kernel generiert wird. Daher spiegelt ihr Inhalt die aktuelle Boot-Sitzung wider.

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

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

Im vorherigen Schritt haben wir uns die Befehlszeilenargumente angesehen, die dem Kernel nach seinem Start übergeben wurden. Jetzt schauen wir uns an, wo einige dieser Argumente möglicherweise ihren Ursprung haben: in der GRUB-Konfigurationsdatei.

GRUB (GRand Unified Bootloader) ist ein Bootloader. Seine Hauptaufgabe besteht darin, das Betriebssystem-Kernel in den Speicher zu laden und die Kontrolle an es zu übergeben. Die GRUB-Konfigurationsdatei bestimmt die Optionen des Bootmenüs, das Standard-Betriebssystem und die Kernel-Parameter.

Die primäre Konfigurationsdatei für GRUB auf vielen Linux-Systemen ist /etc/default/grub. Diese Datei enthält Einstellungen, die zur Generierung der eigentlichen GRUB-Bootmenü-Konfiguration verwendet werden.

Wir verwenden erneut den Befehl cat, um den Inhalt dieser Datei anzuzeigen.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /etc/default/grub

Sie werden eine Ausgabe ähnlich der folgenden sehen:

## Wenn Sie diese Datei ändern, führen Sie anschließend 'update-grub' aus, um
## /boot/grub/grub.cfg zu aktualisieren.
## Für eine vollständige Dokumentation der Optionen in dieser Datei siehe:
##   info -f grub -n 'Simple configuration'

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=""

## Entfernen Sie die Kommentarzeichen, um das Booten von einem vollständigen Grafikbildschirm mit grub-gfxpayload zu aktivieren
#GRUB_GFXPAYLOAD_LINUX=keep

## Entfernen Sie die Kommentarzeichen, um das grafische Terminal zu deaktivieren (nur für grub-pc)
#GRUB_TERMINAL=console

## Die Auflösung, die auf dem grafischen Terminal verwendet wird
## muss im Format z.B. 640x480 oder 800x600 oder 1024x768 sein
## und Ihre Grafikkarte muss diese Auflösung unterstützen. Eine Liste aller verfügbaren Auflösungen kann
## mit dem Befehl 'videoinfo' in GRUB gefunden werden.
#GRUB_GFXMODE=640x480

## Entfernen Sie die Kommentarzeichen, wenn Sie nicht möchten, dass GRUB den Parameter "root=UUID=xxx" an Linux übergibt
#GRUB_DISABLE_UUID=true

## Entfernen Sie die Kommentarzeichen, um die Generierung von Menüeinträgen für den Wiederherstellungsmodus zu deaktivieren
#GRUB_DISABLE_RECOVERY="true"

## Entfernen Sie die Kommentarzeichen, um ein Signalton beim Start von GRUB zu erhalten
#GRUB_INIT_TUNE="480 440 1"

Suchen Sie nach der Zeile, die mit GRUB_CMDLINE_LINUX_DEFAULT beginnt. Die hier aufgeführten Optionen (wie "quiet splash") werden oft dem Kernel beim Booten übergeben, und Sie haben sie möglicherweise in der Ausgabe von cat /proc/cmdline im vorherigen Schritt gesehen.

Diese Datei ist wichtig, da sie es Ihnen ermöglicht, Standard-Kernel-Parameter zu konfigurieren, ohne sie jedes Mal manuell eingeben zu müssen, wenn Sie booten.

Wichtiger Hinweis: Wenn Sie diese Datei auf einem echten System ändern würden, müssten Sie normalerweise anschließend sudo update-grub ausführen, um die Änderungen auf die eigentliche Boot-Konfigurationsdatei (/boot/grub/grub.cfg) anzuwenden. In dieser Lab-Umgebung untersuchen wir die Datei jedoch nur.

Klicken Sie auf Weiter, um fortzufahren.

Untersuchen von Boot-Protokollen mit dmesg

In diesem letzten Schritt werden wir die Nachrichten aus dem Kernel-Ringpuffer (kernel ring buffer) mithilfe des Befehls dmesg betrachten. Der Kernel-Ringpuffer speichert Nachrichten des Kernels, einschließlich Informationen über die Hardwareerkennung, Gerätetreiber und Systemereignisse, die während des Bootvorgangs auftreten.

Der Befehl dmesg wird verwendet, um diese Nachrichten anzuzeigen. Es ist ein wichtiges Werkzeug zur Diagnose von Hardwareproblemen oder zum Verständnis, was während des Systemstarts passiert ist.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

dmesg

Dieser Befehl gibt möglicherweise eine sehr lange Liste von Nachrichten aus. Diese Nachrichten werden vom Kernel generiert, während er initialisiert wird und mit der Hardware und Software des Systems interagiert.

Sie werden eine Ausgabe ähnlich der folgenden sehen (die genaue Ausgabe kann stark variieren):

[    0.000000] Linux version ... (buildd@lcy02-amd64-...) (gcc-...) #...-Ubuntu SMP ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
...
[    1.234567] usbcore: registered new interface driver usbfs
[    1.234567] usbcore: registered new interface driver hub
[    1.234567] usbcore: registered new device driver usb
...

Beachten Sie, dass die Ausgabe die Kernel-Version und die Befehlszeilenargumente enthält, ähnlich wie in /proc/cmdline.

Da die Ausgabe von dmesg umfangreich sein kann, ist es oft sinnvoll, sie an einen Pager wie less oder more zu leiten, um sie Bildschirm für Bildschirm anzuzeigen.

Versuchen Sie diesen Befehl:

dmesg | less

Jetzt können Sie mit den Pfeiltasten durch die Ausgabe scrollen. Drücken Sie q, um less zu beenden.

Sie können auch die Ausgabe mit grep filtern, um nach bestimmten Schlüsselwörtern wie "error" oder dem Namen eines Hardwaregeräts zu suchen.

Beispielsweise, um Nachrichten in Bezug auf USB-Geräte anzuzeigen:

dmesg | grep -i usb

Dieser Befehl zeigt nur die Zeilen an, die "usb" enthalten (groß- und kleinschreibungslos aufgrund der -i-Option).

Das Untersuchen der dmesg-Ausgabe ist eine grundlegende Fähigkeit für die Linux-Systemadministration und -Fehlersuche.

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

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob eine Kernel-Boot-Option in Linux aktiviert ist, indem man die Datei /proc/cmdline untersucht. Diese Datei bietet eine dynamische Ansicht der Befehlszeilenargumente, die dem Kernel während der aktuellen Boot-Sitzung übergeben wurden, und gibt Einblicke in die Art und Weise, wie das System gestartet wurde und seine anfängliche Konfiguration.

Wir haben auch begonnen, die Quelle dieser Boot-Optionen zu erkunden, indem wir uns die GRUB-Konfigurationsdatei /etc/default/grub angesehen haben. Diese Datei ist ein wichtiger Ort, um Kernel-Boot-Parameter zu definieren, bevor das System überhaupt startet.