Kernel-Log
Der Linux-Kernel schreibt seine Meldungen in einen Ringpuffer im Arbeitsspeicher
— den Kernel Ring Buffer. Wenn er voll ist, werden ältere Einträge überschrieben.
dmesg liest diesen Puffer aus.
dmesg — Kernel-Meldungen lesen
Abschnitt betitelt „dmesg — Kernel-Meldungen lesen“dmesg # alle Kernel-Meldungen ausgebendmesg | less # seitenweise lesendmesg -T # mit lesbaren Zeitstempeln (statt Sekunden seit Boot)dmesg -H # "human readable": Farben + Zeitstempel + lesssudo dmesg -w # Echtzeit (wie tail -f, benötigt root)Filtern
Abschnitt betitelt „Filtern“dmesg | grep -i errordmesg | grep -i usb # USB-Ereignissedmesg | grep -i eth # Netzwerk-Erkennungdmesg | grep -i firmware # Firmware-Fehlerdmesg | tail -30 # letzte 30 MeldungenNach Priorität filtern
Abschnitt betitelt „Nach Priorität filtern“dmesg -l err # nur Fehlerdmesg -l warn,err # Warnungen und Fehlerdmesg -l err -T # Fehler mit lesbaren ZeitstempelnVerfügbare Level: emerg, alert, crit, err, warn, notice, info, debug
Nach Einrichtung filtern
Abschnitt betitelt „Nach Einrichtung filtern“dmesg -f kern # nur Kernel-Meldungendmesg -f daemon # Daemon-Meldungendmesg -f user # Benutzer-MeldungenTypische Anwendungsfälle
Abschnitt betitelt „Typische Anwendungsfälle“Hardware-Erkennung nach Einstecken
Abschnitt betitelt „Hardware-Erkennung nach Einstecken“# USB-Gerät einstecken, dann:sudo dmesg -w # live beobachten# oder:dmesg | tail -20Boot-Diagnose
Abschnitt betitelt „Boot-Diagnose“dmesg -T | head -100 # frühe Boot-Meldungendmesg | grep -i "error\|fail\|warn" -iFestplatten-Probleme
Abschnitt betitelt „Festplatten-Probleme“dmesg | grep -i "ata\|sda\|nvme\|i/o error"# Beispiel für einen Festplatten-Fehler:# [12345.678] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0# [12345.679] ata1.00: failed command: READ DMAOOM-Killer (Out of Memory)
Abschnitt betitelt „OOM-Killer (Out of Memory)“dmesg | grep -i "oom\|killed process"# Wenn zu wenig RAM: Kernel beendet Prozesse automatisch/proc/kmsg und /dev/kmsg
Abschnitt betitelt „/proc/kmsg und /dev/kmsg“Für fortgeschrittene Anwendungsfälle (z. B. eigene Log-Daemons):
sudo cat /proc/kmsg # Kernel-Log-Stream (blockiert, live)sudo cat /dev/kmsg # alternative Schnittstelle mit SequenznummernDiese Schnittstellen werden intern von dmesg, journald und syslogd verwendet.