dmesg wyświetla zawartość bufora pierścieniowego jądra (kernel ring buffer) — czyli komunikatów, które jądro Linuksa zapisuje od momentu startu systemu. Znajdziesz tam informacje o wykryciu sprzętu, podłączeniu pendrive’a, problemach z dyskiem, sterownikach, a także o tym, że OOM killer właśnie ubił Twój proces. To pierwsze miejsce, do którego zaglądasz, gdy coś się dzieje na poziomie sprzętu albo jądra, a logi aplikacji milczą.
Składnia i najważniejsze opcje
Podstawowe wywołanie wygląda tak: dmesg [opcje]
-H,--human— czytelny dla człowieka format, z kolorami i automatycznym pagerem (jakless).-T,--ctime— zamienia sekundy od startu na normalne daty i godziny.-w,--follow— czeka na nowe komunikaty i dopisuje je na bieżąco (jaktail -f). Wymaga czytelnego/dev/kmsg.-l,--level— filtruje po poziomie ważności, np.--level=err,warn.--facility— filtruje po źródle komunikatu, np.--facility=daemon.-k,--kernel— pokazuje tylko komunikaty jądra (pomija userspace).-x,--decode— rozszyfrowuje facility i poziom do czytelnych nazw.-C,--clear— czyści bufor pierścieniowy jądra.
Przykłady użycia
dmesg -H— najwygodniejszy start: czytelny widok z paginacją, idealny do przeglądania.dmesg -T --level=err,warn— same błędy i ostrzeżenia, z ludzkimi datami. Świetne do szybkiej diagnozy.dmesg -w— podłącz pendrive albo dysk USB i obserwuj na żywo, jakie urządzenie wykrył system (np./dev/sdb).dmesg | grep -i error— klasyk: filtrowanie po słowie kluczowym, gdy szukasz konkretnego problemu.dmesg -T | grep -i oom— sprawdzasz, czy to przypadkiem OOM killer zabił Ci proces przez brak pamięci.
Częste błędy i pułapki
Na nowszych dystrybucjach (od kernela 4.x z włączonym dmesg_restrict) zwykły użytkownik dostanie Operation not permitted. Wtedy potrzebujesz sudo dmesg. Druga pułapka: domyślne timestampy to sekundy od startu systemu, nie zegar — bez -T łatwo źle zinterpretować, kiedy coś się stało. Pamiętaj też, że po -T czasy bywają nieco nieprecyzyjne po SUSPEND/RESUME, bo źródło czasu logów nie jest aktualizowane.
Bufor jest pierścieniowy i ma skończony rozmiar — starsze wpisy wypadają, gdy nazbiera się nowych. Po dmesg -C nie odzyskasz wyczyszczonych komunikatów, więc nie czyść bufora w środku diagnozy. Na koniec: dmesg żyje w pamięci i znika po restarcie. Jeśli chcesz historię między bootami, sięgnij po journalctl -k.
Powiązane komendy: journalctl, tail, less, syslog, logger, lsblk.