dmesg — den Kernel-Ring-Buffer auslesen und Hardware-Probleme diagnostizieren
Praxis-Guide zu dmesg: Kernel-Meldungen zu Hardware, Treibern und OOM-Events lesen, live verfolgen, nach Level filtern und Zeitstempel formatieren.
dmesg liest den Kernel-Ring-Buffer aus – jenen begrenzten Speicherbereich, in dem der Linux-Kernel seine Meldungen zu Hardware-Erkennung, Treiber-Initialisierung, USB-Events, Plattenfehlern und dem OOM-Killer ablegt. Wenn ein Gerät nicht erkannt wird, das System sporadisch hängt oder ein Prozess unerklärlich abgeschossen wurde, ist dmesg meist die erste Anlaufstelle. Auf modernen Distributionen ist der Buffer aus Sicherheitsgründen oft nur noch mit sudo lesbar (kernel.dmesg_restrict). Dieser Guide zeigt dir, wie du Meldungen lesbar formatierst, gezielt filterst und live mitverfolgst.
Grundlegende Verwendung
dmesg — Zeigt alle Kernel-Meldungen aus dem Ring-Buffer.
dmesgdmesg | less — Blättert seitenweise durch die Kernel-Meldungen.
dmesg | lessdmesg | tail -30 — Zeigt die letzten 30 Kernel-Meldungen.
dmesg | tail -30sudo dmesg — Zeigt Kernel-Meldungen (auf vielen Systemen nur als root lesbar).
sudo dmesgZeitstempel & Formatierung
dmesg -T — Zeigt lesbare Zeitstempel statt Sekunden seit dem Boot.
dmesg -Tdmesg -t — Gibt überhaupt keine Zeitstempel aus.
dmesg -tdmesg --time-format iso — Zeigt Zeitstempel im ISO-8601-Format.
dmesg --time-format isodmesg -x — Dekodiert Facility und Level zu lesbaren Präfixen.
dmesg -xdmesg --color=always — Erzwingt farbige Ausgabe (nützlich beim Pipen).
dmesg --color=always | less -Rdmesg -H — Lesbare Ausgabe mit Farben und Pager.
dmesg -HNach Level filtern
dmesg -l err — Zeigt nur Fehlermeldungen.
dmesg -l errdmesg -l warn — Zeigt nur Warnungen.
dmesg -l warndmesg -l crit — Zeigt nur kritische Meldungen.
dmesg -l critdmesg -l emerg — Zeigt nur Notfallmeldungen (System unbrauchbar).
dmesg -l emergdmesg -l info — Zeigt nur informative Meldungen.
dmesg -l infodmesg -l err,warn — Zeigt Fehler und Warnungen kombiniert.
dmesg -l err,warndmesg -l err,crit,alert,emerg — Zeigt alle ernsthaften Meldungen.
dmesg -l err,crit,alert,emergNach Facility filtern
dmesg -f kern — Zeigt nur Kernel-Meldungen.
dmesg -f kerndmesg -f daemon — Zeigt nur Daemon-Meldungen.
dmesg -f daemondmesg -f user — Zeigt nur Meldungen aus dem User-Space.
dmesg -f userdmesg -f syslog — Zeigt nur Syslog-Meldungen.
dmesg -f syslogLive verfolgen & leeren
dmesg -w — Watch-Modus – gibt neue Kernel-Meldungen fortlaufend aus (wie tail -f).
sudo dmesg -wdmesg -W — Verfolgen und warten – zeigt nur neue Meldungen (überspringt den bestehenden Buffer).
sudo dmesg -Wdmesg -c — Gibt den Ring-Buffer aus und leert ihn anschließend. Erfordert root.
sudo dmesg -cdmesg -C — Leert den Ring-Buffer, ohne ihn auszugeben. Erfordert root.
sudo dmesg -Cdmesg -D — Deaktiviert die Ausgabe von Meldungen auf der Konsole.
sudo dmesg -Ddmesg -E — Aktiviert die Ausgabe von Meldungen auf der Konsole.
sudo dmesg -ENach bestimmten Ereignissen suchen
dmesg | grep -i error — Sucht nach Fehlermeldungen (ohne Groß-/Kleinschreibung).
dmesg | grep -i errordmesg | grep -i 'usb' — Zeigt USB-bezogene Kernel-Meldungen.
dmesg | grep -i 'usb'dmesg | grep -i 'eth\|ens\|enp' — Zeigt Meldungen zu Netzwerk-Schnittstellen.
dmesg | grep -i 'eth\|ens\|enp'dmesg | grep -i 'sd[a-z]\|nvme' — Zeigt Meldungen zu Platten und Speichergeräten.
dmesg | grep -i 'sd[a-z]\|nvme'dmesg | grep -i 'oom\|out of memory' — Prüft auf Aktivität des OOM-Killers.
dmesg | grep -i 'oom\|out of memory'dmesg | grep -i 'segfault\|general protection' — Sucht nach Segmentation Faults und Protection-Fehlern.
dmesg | grep -i 'segfault\|general protection'dmesg | grep -i 'firmware' — Zeigt Meldungen zum Laden von Firmware.
dmesg | grep -i 'firmware'Praxis-Muster
dmesg -T -l err,warn — Zeigt Fehler und Warnungen mit lesbaren Zeitstempeln.
dmesg -T -l err,warndmesg -T | tail -50 — Zeigt die 50 jüngsten Kernel-Meldungen mit Zeitstempeln.
dmesg -T | tail -50dmesg -Tw — Verfolgt Kernel-Meldungen mit lesbaren Zeitstempeln.
sudo dmesg -Twdmesg --since '1 hour ago' — Zeigt Meldungen der letzten Stunde (erfordert ein aktuelles dmesg).
dmesg --since '1 hour ago'dmesg --until '2024-01-01 12:00' — Zeigt Meldungen bis zu einem bestimmten Zeitpunkt.
dmesg --until '2024-01-01 12:00'dmesg -T > dmesg_$(date +%Y%m%d).log — Speichert Kernel-Meldungen mit Zeitstempeln in eine datierte Log-Datei.
dmesg -T > dmesg_$(date +%Y%m%d).log Fazit
dmesg ist ein reines Lese-Kommando und damit weitgehend ungefährlich – die einzige Ausnahme ist dmesg -C, das den Ring-Buffer unwiderruflich leert und damit forensische Spuren vernichtet. Für die Diagnose lohnt es sich, Meldungen mit -T lesbar zu machen und mit -l err,warn auf das Wesentliche einzudampfen; dmesg -w folgt Ereignissen live, etwa beim Einstecken eines USB-Geräts. Auf Systemen mit kernel.dmesg_restrict=1 brauchst du sudo. Inhaltlich überschneidet sich dmesg stark mit journalctl -k, das dieselben Kernel-Meldungen persistent und über Boots hinweg vorhält – für Langzeit-Analysen oft die bessere Wahl.
Weiterführende Links
- Wikipedia: dmesg – Hintergrund zum Kernel-Ring-Buffer und zum Kommando
- ubuntuusers-Wiki: dmesg – deutschsprachige Einführung mit Praxisbeispielen
Verwandte Kommandos
- journalctl – das systemd-Journal abfragen, inklusive der Kernel-Meldungen via
journalctl -k - strace – Systemaufrufe eines Prozesses verfolgen, wenn dmesg auf ein Problem hindeutet
- lsof – offene Dateien und Geräte auflisten, ergänzend zur Hardware-Diagnose