dmesg
dmesg (сокр. от англ. diagnostic message) — команда, используемая в UNIX‐подобных операционных системах для вывода буфера сообщений ядра в стандартный поток вывода (stdout) (по умолчанию на экран).
Загрузка ОС
Первым делом в dmesg попадают сообщения о загрузке ядра ОС в память компьютера. А также сообщения о загрузке драйверов для соответствующего оборудования. Уровень детализации сообщений регулируется параметрами загрузчика.
После загрузки ОС
Даже после того как ОС полностью загрузилась, ядро может писать в лог дополнительные диагностические сообщения например, когда появляются ошибки ввода-вывода, или при подключении USB устройств. dmesg предоставляет механизм для рассмотрения этих сообщений постфактум.
Представление информации
Все сообщения dmesg занимают несколько страниц, поэтому есть смысл использовать стандартные утилиты для работы с текстом, такие как more, tail, less или grep. Сообщения dmesg часто попадают в системный журнал через демон журналирования, такой как syslog. В Linux системах этот лог обычно находится в /var/log.
Лого
Некоторые коммерческие ОС при загрузке ядра показывают лого, из-за которого пользователю не видно сообщений от ядра. Однако, в некоторых системах в этот момент можно переключиться с лого на сообщения dmesg с помощью кнопки 'Esc'. Это бывает полезно при диагностике в случае ошибки загрузки системы.
Некоторые аргументы (опции) утилиты dmesg
--decode, преобразует числовое значение уровней загрузки и параметры операции в понятные текстовые примечания
Фильтрация сообщений в соответствии с опциями --facility и --level. Например:
dmesg --level=err,warn
dmesg --facility=daemon,user
dmesg --facility=daemon --level=debug
-u, --userspace для вывода сообщений пользовательского уровня
-k, --kernel для вывода сообщений уровня ядра
-t, --notime для удаления из вывода временных отметок
-T, --ctime для вывода времени в формате, подобном ctime(). Однако этот ключ бесполезен после использования ждущего режима и выхода из него. (Для printk() после окончания ждущего режима ядро не использует обычное системное время и поэтому временные значения не изменяются.)
--show-delta для вывода длительности промежутка между сообщениями[1]
-c - Очистить содержимое буфера сообщений ядра после вывода.
-s [размер буфера] - Использовать для буфера сообщений ядра, буфер размером [размер буфера]. По умолчанию его размер 16392 байт.
-n [уровень] - Установить уровень, на котором сообщения системного журнала будут выводиться на консоль.
Например, -n 1 предотвращает вывод на консоль всех сообщений, за исключением явно тревожных.
-w, --follow - Ожидание новых сообщений. (наподобие tailf/tail -f)
См. также
Примечания
- Karel Zak. dmesg(1) changes for util-linux 2.20 (Wednesday, July 20, 2011).