navigation Navigation


dmesg


Das dmesg (display message oder diagnostig message) wird verwendet, um Nachrichten aus dem Kernel-Ringpuffer anzuzeigen. Der Kernel-Ringpuffer ist ein spezieller Speicherbereich, in dem der Linux-Kernel Meldungen speichert, die während des Systemstarts und während des Betriebs generiert werden. Diese Meldungen umfassen Informationen zu Hardwareerkennung, Treibern, Fehlern, Warnungen und anderen wichtigen Systemereignissen.

Syntax

dmesg [OPTIONS]
dmesg --clear
dmesg --read-clear [OPTIONS]
dmesg --console-level level
dmesg --console-on
dmesg --console-off
Puffer- und Konsolensteuerung
-C, --clear

Löscht den Kernel-Ringpuffer.


-c, --read-clear

Gibt den Inhalt des Ringpuffers aus und löscht ihn danach.


-D, --console-off

Deaktiviert die Ausgabe von Nachrichten auf der Konsole.


-E, --console-on

Aktiviert die Ausgabe von Nachrichten auf der Konsole.


-n, --console-level level

Setzt das Konsolen-Nachrichtenlevel. Nur Nachrichten auf oder über diesem Level werden auf die Konsole ausgegeben.


-s, --buffer-size size

Verwendet eine bestimmte Puffergröße, um den Kernel-Ringpuffer abzufangen.


Zeit- und Formatoptionen
-d, --show-delta

Zeigt den Zeitstempel und die Zeitdifferenz zwischen Nachrichten an.


-e, --reltime

Zeigt die lokale Zeit und die Zeitdifferenz in einem menschenlesbaren Format an.


-T, --ctime

Zeigt Zeitstempel in menschenlesbaren Format an. Kann bei SUSPEND/RESUME ungenau sein.


--since time

Zeigt Nachrichten seit der angegebenen Zeit an.


--until time

Zeigt Nachrichten bis zu der angegebenen Zeit an.


-t, --notime

Unterdrückt die Anzeige von Zeitstempeln.


--time-format format

Zeigt Zeitstempel im angegebenen Format an, wie z.B. ctime, reltime, delta oder iso.


Filter- und Anzeigeoptionen
-f, --facility list

Filtert die Ausgabe nach einer Liste von Protokollquellen (z.B. daemon).


-l, --level list

Filter die Ausgabe nach einer Liste von Prioritätsstufen (z.B. err, warn).


-k, --kernel

Zeigt nur Kernel-Nachrichten an.


-u, --userspace

Zeigt nur Benutzernachrichten an.


-w, --follow

Wartet auf neue Nachrichten und zeigt sie an.


-W, --follow-new

Wartet und zeigt nur neue Nachrichten an.


-x, --decode

Dekodiert Facility- und Prioritätsnummern in menschenlesbare Präfixe.


Ausgabe- und Formatsteuerung
-H, --human

Aktiviert menschenlesbare Ausgabe.


-J, --json

Verwenden JSON als Ausgabeformat.


-L, --color[=when]

Färbt die Ausgabe. Kann auto, never oder always sein.


--noescape

Deaktiviert die Sicherung von nicht druckbaren Zeichen.


-P, --nopager

Leitet die Ausgabe nicht an einen Pager weiter.


-p, --force-prefix

Fügt Facility-, Level- oder Zeitstempelinformationen zu jeder Zeile hinzu.


-r, --raw

Zeigt den rohen Nachrichtenpuffer an, wobei alle unlesbaren Zeichen noch maskiert werden.


-S, --syslog

Erzwingt die Verwendung der syslog(2) Kernel-Schnittstelle zum Lesen von Kernel-Nachrichten.


Sonstige Optionen
-F, --file file

Liest Syslog-Nachrichten aus der angegebenen Datei (unterstützt das alte Syslog-Format).


--help

Zeigt die Hilfe an und beendet das Programm.


-V, --version

Zeigt die Versionsinformationen an und beendet das Programm.


Das dmesg ist ein unverzichtbares Werkzeug für Systemadministratoren und Entwickler, um Probleme mit der Hardware und dem Kernel zu diagnostizieren und zu beheben. Es ermöglicht eine tiefe Einsicht in den Zustand des Systems und liefert oft die ersten Hinweise auf Hardware- oder Treiberprobleme.

Verwendung von dmesg

Filtern und Sortieren mit grep

Das dmesg kann in Kombination mit grep verwendet werden, um bestimmte Schlüsselwörter oder Meldungstypen zu suchen.

Beispiel
dmesg | grep -i error
[   10.343435] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[   20.434523] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200925/psargs-330)
[   20.434527] ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q66 due to previous error (AE_NOT_FOUND) (20200925/psparse-529)

Diese Ausgabe zeigt alle Kernel-Meldungen an, die das Wort „error“ enthalten. Dies ist nützlich, um schnell nach Fehlern zu suchen, die während des Systemstarts oder Betriebs aufgetreten sind.


Anzeigen in Echtzeit

Mit der Option -w (--follow) kann man neue Kernel-Nachrichten in Echtzeit anzeigen lassen, ähnlich wie bei tail -f.

dmesg -w

Dieser Befehl wird weiterhin Kernel-Meldungen anzeigen, wenn sie auftreten, was besonders nützlich ist, wenn man ein Gerät anschließt oder eine Aktion ausführt, die eine Kernel-Meldung erzeugen könnte (z.B. das Laden eines Treibers).


Anzeigen im Klartextformat

Kernel-Meldungen sind standardmäßig im Klartext, aber dmesg bietet die Möglichkeit, Meldungen im traditionellen RFC-3164 Syslog-Format anzuzeigen, das Zeitstempel im Klartext statt Sekunden seit dem Start anzeigt.

Beispiel
dmesg --ctime
[Thu Jul  8 14:23:42 2021] Initializing cgroup subsys cpuset
[Thu Jul  8 14:23:42 2021] Initializing cgroup subsys cpu
[Thu Jul  8 14:23:42 2021] Initializing cgroup subsys cpuacct
...

Dies kann das Lesen und Interpretieren der Kernel-Meldungen erleichtern, insbesondere wenn man herausfinden möchte, wann genau eine bestimmte Meldung aufgetreten ist.


Nachrichten nach Schweregrad filtern

Mit der Option -l (–level) kann man die Kernel-Meldungen nach Schweregrad filtern.

Die möglichen Schweregrade sind:

  • emerg (emergency)
  • alert
  • crit (critical)
  • err (error)
  • warn (warning)
  • notice
  • info
  • debug

Um nur Fehlermeldungen und kritische Nachrichten anzuzeigen, kann man den folgenden Befehl verwenden.

Beispiel
dmesg -l err,crit
[20.434523] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20200925/psargs-330)
[20.434527] ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q66 due to previous error (AE_NOT_FOUND) (20200925/psparse-529)