Überprüfen der Taint-Details mit dmesg
Im vorherigen Schritt haben wir den Taint-Status (Verunreinigungsstatus) des Kernels mithilfe von /proc/sys/kernel/tainted
überprüft. Diese Datei gibt uns zwar einen numerischen Code, der anzeigt, ob der Kernel verunreinigt ist, aber sie sagt uns nicht warum er verunreinigt ist. Für detailliertere Informationen über Kernel-Meldungen, einschließlich der Gründe für die Verunreinigung, können wir den Befehl dmesg
verwenden.
Der Befehl dmesg
wird verwendet, um den Kernel-Ringpuffer (Kernel ring buffer) zu untersuchen. Dieser Puffer speichert Meldungen vom Kernel, einschließlich Informationen über Gerätetreiber, Fehler und Warnungen. Wenn der Kernel verunreinigt wird, wird normalerweise eine Meldung im Ringpuffer protokolliert, die den Grund erklärt.
Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.
Geben Sie jetzt den folgenden Befehl ein und drücken Sie die Eingabetaste:
dmesg
Dieser Befehl gibt möglicherweise eine große Menge an Text aus und zeigt alle Kernel-Meldungen seit dem Systemstart an.
Um spezifische Informationen im Zusammenhang mit der Verunreinigung zu finden, können wir dmesg
mit dem Befehl grep
kombinieren. grep
ist ein leistungsstarkes Tool zum Suchen von Textmustern. Wir werden nach Zeilen suchen, die das Wort "taint" enthalten.
Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:
dmesg | grep taint
Das Symbol |
wird als Pipe bezeichnet. Es nimmt die Ausgabe des Befehls auf der linken Seite (dmesg
) und gibt sie als Eingabe an den Befehl auf der rechten Seite (grep
) weiter. Dieser Befehl ruft also zunächst alle Kernel-Meldungen ab und filtert sie dann, um nur die Zeilen anzuzeigen, die das Wort "taint" enthalten.
Wenn Ihr Kernel nicht verunreinigt ist (wie in dieser Umgebung zu erwarten), gibt dieser Befehl möglicherweise keine Ausgabe. Dies ist normal und zeigt an, dass keine Verunreinigungsereignisse protokolliert wurden.
Wenn der Kernel tatsächlich verunreinigt wäre, würden Sie Zeilen ähnlich wie diese sehen (die genaue Meldung hängt vom Grund für die Verunreinigung ab):
[ ... ] kernel: Linux version ... (tainted: G)
[ ... ] kernel: Disabling lock debugging due to kernel taint
Der Teil (tainted: G)
zeigt an, dass der Kernel verunreinigt ist, und der Buchstabe G
bedeutet speziell, dass ein proprietäres Modul geladen wurde. Andere Buchstaben geben verschiedene Verunreinigungsgründe an (z. B. P
für proprietäres Modul, F
für erzwungene Modulladung, R
für Modul mit eingeschränkter Lizenz usw.).
Die Verwendung von dmesg | grep taint
ist ein entscheidender Schritt bei der Diagnose von Kernel-Problemen, wenn /proc/sys/kernel/tainted
einen von Null verschiedenen Wert anzeigt.
Klicken Sie auf Weiter, um fortzufahren.