Главная > Управление пакетами и системой > dmesg

dmesg: Просмотр сообщений кольцевого буфера ядра

Команда для просмотра сообщений (кольцевого буфера ядра), выводимых ядром при загрузке системы. Это незаменимый инструмент для обнаружения аппаратного обеспечения, загрузки драйверов и диагностики системных ошибок.

Что такое dmesg?

dmesg — это сокращение от 'display message' или 'driver message', которое выводит сообщения, хранящиеся в кольцевом буфере ядра Linux. Оно показывает, как аппаратное обеспечение было распознано, как были загружены драйверы или какие ошибки произошли, в хронологическом порядке с момента загрузки системы до настоящего времени.

Ключевые функции и назначение

dmesg используется для диагностики событий, происходящих на самом низком уровне системы (ядре).

  • Просмотр загрузочных сообщений: Просмотр всех сообщений ядра, выводимых при запуске системы.
  • Диагностика аппаратного обеспечения: Просмотр логов при подключении или отключении нового оборудования (USB, дисков и т.д.).
  • Ошибки драйверов: Отслеживание причин сбоев загрузки драйверов или ошибок уровня ядра (Kernel Panic).
  • Кольцевой буфер: Размер буфера фиксирован, поэтому старые записи перезаписываются новыми.

Основные опции (Shell)

dmesg часто используется в сочетании с другими командами (grep, less) через пайп (|), но также имеет свои собственные полезные опции.

1. Формат вывода и время

2. Фильтрация и мониторинг в реальном времени

3. Управление буфером/консолью (требует осторожности)

Сгенерированная команда:

Комбинируйте команды.

Описание:

`dmesg` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры сценариев использования (Shell)

dmesg часто используется с grep для фильтрации только нужной информации.

Просмотр всех сообщений (с разбивкой на страницы)

dmesg | less

Самое базовое использование. Удобно прокручивать с помощью less.

Просмотр новых сообщений в реальном времени (в удобочитаемом формате)

dmesg -wH

Комбинация -w (реальное время) и -H (удобное для чтения время).

Фильтрация только сообщений, связанных с USB

dmesg | grep -i usb

Опция -i команды grep игнорирует регистр.

Фильтрация сообщений, связанных с дисками (SATA/NVMe)

dmesg | grep -iE 'sd[a-z]|nvme'

Используйте grep -E (расширенные регулярные выражения) для поиска логов, содержащих 'sd[a-z]' или 'nvme'.

Фильтрация только ошибок (Error) или предупреждений (Warn)

dmesg -H -l err,warn

Укажите уровень логов с помощью опции -l.

Просмотр только последних 10 строк сообщений

dmesg | tail -n 10

Используйте tail для быстрого просмотра только последних сообщений.

Просмотр с включением тегов facility/level

dmesg -xT | less

Опция -x помогает понять, декодируя facility/level.

Сохранить логи в файл

dmesg -T > ~/dmesg-$(date +%F-%H%M).log

Сохраняет полный вывод dmesg сразу после загрузки.

Установка

dmesg входит в пакет util-linux и поставляется по умолчанию в большинстве дистрибутивов Linux.

Установлено по умолчанию

Отдельная установка не требуется. Если его нет, установите пакет 'util-linux' для вашего дистрибутива.

Советы и примечания

dmesg против journalctl

  • Среда systemd: В современных системах systemd можно просматривать интегрированные системные логи, выходящие за рамки dmesg, с помощью 'journalctl -k' (логи ядра) или 'journalctl -b' (логи текущей загрузки).
  • Формат времени: Время в стандартном выводе dmesg — это [время, прошедшее с момента загрузки (в секундах)]. Чтобы увидеть фактическое время, используйте опции '-H' или '-T'.
  • Перезапись буфера: Из-за особенностей кольцевого буфера старые сообщения могут исчезнуть. Если необходимо сохранить логи с начала загрузки, проверьте их с помощью 'journalctl -b 0' или сохраните вывод dmesg в файл.
  • Права/Безопасность: Некоторые дистрибутивы ограничивают доступ обычных пользователей к dmesg с помощью '/proc/sys/kernel/dmesg_restrict=1'. В этом случае используйте 'sudo dmesg' или 'sudo journalctl -k'.
  • Очистка логов (-c, -C): 'dmesg -c' и '-C' полезны для отладки, но после очистки восстановить данные невозможно. Используйте их с осторожностью в производственной среде.

Связанные команды

Функционально схожие или часто используемые команды.



Те же команды в категории