Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt 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 werden wir verschiedene Methoden untersuchen, um zu prüfen, ob eine bestimmte Kernel-Konfigurationsoption in Linux festgelegt ist. Wir beginnen damit, die Datei /proc/config.gz zu untersuchen und zcat zu verwenden, um die Kernel-Konfiguration zu dekomprimieren und anzuzeigen, falls die Datei existiert. Diese Datei enthält die Konfigurationsoptionen, die zum Bau des aktuell laufenden Kernels verwendet wurden.

Wenn die Datei /proc/config.gz nicht verfügbar ist, werden wir anschließend nach der Kernel-Konfigurationsdatei im Verzeichnis /boot/ suchen, insbesondere nach Dateien mit dem Namen config-*. Dies bietet eine alternative Möglichkeit, die Kernel-Konfiguration zu überprüfen. Abschließend werden wir die Konfigurationsprotokolle in dmesg untersuchen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/uname("System Information Displaying") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} linux/cat -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} linux/less -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} linux/grep -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} linux/uname -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} linux/gzip -.-> lab-558861{{"Wie man prüft, ob eine Kernel-Konfigurationsoption in Linux festgelegt ist"}} end

Überprüfen der Kernel-Konfiguration mit zcat /proc/config.gz

In diesem Schritt werden wir untersuchen, wie man die Kernel-Konfiguration mit dem Befehl zcat und der Datei /proc/config.gz überprüft. Die Kernel-Konfiguration bestimmt, welche Funktionen in den Kernel integriert sind, und das Verständnis davon kann für die Fehlersuche und Anpassung hilfreich sein.

Zunächst verstehen wir, was /proc/config.gz ist. Es handelt sich um eine komprimierte (gzipped) Datei, die die Kernel-Konfigurationsoptionen enthält, die zum Bau des aktuell laufenden Kernels verwendet wurden. Allerdings ist diese Datei möglicherweise nicht immer vorhanden, je nach Kernel-Build-Konfiguration.

Um zu prüfen, ob die Datei existiert, verwenden Sie den folgenden Befehl:

ls -l /proc/config.gz

Wenn die Datei existiert, sehen Sie eine Ausgabe ähnlich dieser:

-r-------- 1 root root [Platzhalter: Dateigröße] [Platzhalter: Datum] /proc/config.gz

Wenn die Datei nicht existiert, sehen Sie eine Fehlermeldung:

ls: cannot access '/proc/config.gz': No such file or directory

Wenn die Datei existiert, können wir zcat verwenden, um sie zu dekomprimieren und ihren Inhalt anzuzeigen. zcat ist ein Befehlszeilen-Programm, das komprimierte (gzipped) Dateien dekomprimiert und die Ausgabe auf der Standardausgabe ausgibt.

Führen Sie den folgenden Befehl aus, um die Kernel-Konfiguration anzuzeigen:

zcat /proc/config.gz | less

Dieser Befehl leitet die Ausgabe von zcat /proc/config.gz an den Befehl less weiter, der es Ihnen ermöglicht, durch die Konfigurationsdatei zu scrollen.

Sie sehen eine lange Liste von Konfigurationsoptionen, die jeweils mit CONFIG_ beginnen. Beispielsweise:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Drücken Sie q, um less zu beenden.

Wenn /proc/config.gz nicht existiert, müssen Sie zum nächsten Schritt gehen, um /boot/config-* zu überprüfen.

Überprüfen der Konfiguration in /boot/config-*

In diesem Schritt werden wir nach der Kernel-Konfigurationsdatei im Verzeichnis /boot/ suchen. Dies ist ein weiterer üblicher Speicherort für die Kernel-Konfiguration. Die Datei trägt normalerweise den Namen config-*, wobei * die Kernel-Version darstellt.

Zunächst listen wir die Dateien im Verzeichnis /boot/ auf, um zu sehen, ob eine config-*-Datei existiert. Verwenden Sie den folgenden Befehl:

ls -l /boot/config-*

Sie sehen möglicherweise eine Ausgabe ähnlich dieser:

-rw------- 1 root root [Platzhalter: Dateigröße] [Platzhalter: Datum] /boot/config-[Platzhalter: Kernel-Version]

Wenn Sie eine config-*-Datei sehen, bedeutet dies, dass die Kernel-Konfiguration in dieser Datei gespeichert ist. Wenn Sie keine config-*-Dateien sehen, bedeutet dies, dass die Kernel-Konfiguration nicht an der Standardstelle in /boot/ gespeichert ist.

Um den Inhalt der config-*-Datei anzuzeigen, können Sie den Befehl cat verwenden. Ersetzen Sie [Platzhalter: Kernel-Version] durch die tatsächliche Kernel-Version aus dem Dateinamen. Beispielsweise würde der Befehl für die Datei /boot/config-5.15.0-76-generic lauten:

cat /boot/config-5.15.0-76-generic | less

Dieser Befehl leitet die Ausgabe von cat /boot/config-[Platzhalter: Kernel-Version] an den Befehl less weiter, der es Ihnen ermöglicht, durch die Konfigurationsdatei zu scrollen.

Sie sehen eine lange Liste von Konfigurationsoptionen, die jeweils mit CONFIG_ beginnen. Beispielsweise:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Drücken Sie q, um less zu beenden.

Wenn Sie mehrere config-*-Dateien haben, können Sie die Kernel-Version mit dem Befehl uname -r überprüfen:

uname -r

Dies gibt die aktuell auf Ihrem System laufende Kernel-Version aus. Sie können diese Informationen dann verwenden, um die richtige config-*-Datei auszuwählen und anzuzeigen.

Prüfen der Konfigurationsprotokolle in dmesg

In diesem Schritt werden wir die Kernel-Protokolle mit dem Befehl dmesg untersuchen, um Informationen zur Kernel-Konfiguration zu finden. dmesg ist ein Befehlszeilen-Programm, das den Nachrichtenpuffer des Kernels ausgibt. Dieser Puffer enthält Informationen über Hardware, Treiber und andere Systemereignisse, einschließlich Details zur Kernel-Konfiguration beim Booten.

Um die Kernel-Protokolle anzuzeigen, verwenden Sie den folgenden Befehl:

dmesg | less

Dieser Befehl leitet die Ausgabe von dmesg an den Befehl less weiter, der es Ihnen ermöglicht, durch die Protokolle zu scrollen.

Die Kernel-Konfigurationsinformationen werden normalerweise zu Beginn der Protokolle während des Bootvorgangs ausgegeben. Um die Protokolle zu filtern und konfigurationsbezogene Nachrichten zu finden, können Sie den Befehl grep verwenden.

Versuchen Sie den folgenden Befehl, um Zeilen zu suchen, die "config" enthalten:

dmesg | grep config | less

Dieser Befehl leitet die Ausgabe von dmesg an grep config weiter, das die Zeilen filtert, die das Wort "config" enthalten, und leitet dann das Ergebnis an less weiter, um es einfach anzeigen zu können.

Sie sehen möglicherweise eine Ausgabe ähnlich dieser:

[Platzhalter: Zeitstempel] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[Platzhalter: Kernel-Version] root=UUID=[Platzhalter: UUID] ro quiet splash  vt.handoff=7
[Platzhalter: Zeitstempel]  Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[Platzhalter: Kernel-Version] root=UUID=[Platzhalter: UUID] ro quiet splash vt.handoff=7
[Platzhalter: Zeitstempel]  DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS [Platzhalter: BIOS-Version] 04/01/2014

Sie können auch nach bestimmten Konfigurationsoptionen suchen. Beispielsweise können Sie den folgenden Befehl verwenden, um herauszufinden, ob CONFIG_EXT4_FS aktiviert ist:

dmesg | grep CONFIG_EXT4_FS

Wenn die Option aktiviert ist, sehen Sie eine Zeile ähnlich dieser:

[Platzhalter: Zeitstempel]  EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Wenn die Option nicht aktiviert ist, sehen Sie keine Ausgabe.

Durch die Prüfung der dmesg-Ausgabe können Sie die Kernel-Konfiguration überprüfen und potenzielle Probleme aufgrund fehlender oder falscher Konfigurationsoptionen identifizieren.

Drücken Sie q, um less zu beenden.

Zusammenfassung

In diesem Lab haben wir Methoden zur Überprüfung der Kernel-Konfiguration in Linux untersucht. Zunächst haben wir versucht, auf die Kernel-Konfiguration über zcat /proc/config.gz zuzugreifen. Wir haben gelernt, dass diese Datei die Kernel-Konfigurationsoptionen enthält, die zum Bau des aktuell laufenden Kernels verwendet wurden, aber ihre Existenz hängt von der Kernel-Build-Konfiguration ab. Wir haben ls -l verwendet, um auf ihre Existenz zu prüfen, und zcat an less weitergeleitet, um ihren Inhalt anzuzeigen, falls verfügbar.

Wenn /proc/config.gz nicht gefunden wurde, leitet das Lab uns zum nächsten Schritt weiter, der darin besteht, nach der Kernel-Konfigurationsdatei im Verzeichnis /boot/ zu suchen, die normalerweise config-* heißt.