🐧 Что такое dmesg и как его использовать?

Если вы какое-то время использовали Linux, вы, вероятно, оценили его стабильность и настраиваемость, особенно если у вас есть некоторое представление об управлении системой Linux.

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

Первым делом нужно сразу обратиться к логам dmesg.

Как получить доступ к логам ядра dmesg

Чтобы получить доступ к журналу ядра dmesg, просто выполните команду dmesg из командной строки, для доступа к журналу не требуются (по умолчанию) права администратора:

$ dmesg

...

[64283.356724] INFO: task cp:647102 blocked for more than 120 seconds.

...

[97931.332991] ACPI: Preparing to enter system sleep state S3

[97931.704526] PM: Saving platform NVS memory

[97931.704591] Disabling non-boot CPUs ...

[97931.707220] smpboot: CPU 1 is now offline

...

[97931.746603] ACPI: Low-level resume complete

[97931.746667] PM: Restoring platform NVS memory

[97931.748520] Enabling non-boot CPUs ...

[97931.748551] x86: Booting SMP configuration:

[97931.748551] smpboot: Booting Node 0 Processor 1

...

Каждый раз, когда вы вставляете новый диск в систему, переводите систему в спящий режим или делаете многое другое, журнал ядра будет отслеживать эти события и записывать их для последующего просмотра.

 

Простое выполнение dmesg в командной строке отображает всю информацию в хронологическом порядке с ведущим индексом времени с момента запуска системы (или, точнее, ядра) в формате секунды-миллисекунды.

 

Вы также можете запросить вывод  в более удобном для человека формате даты и времени ISO:

$ dmesg --time-format=iso

...

2021-03-14T13:49:21,917805+11:00 sd 3:0:0:0: [sda] Starting disk

...

Прокрутка логов dmesg

Если вы хотите просмотреть весь вывод dmesg с самого начала, используйте вертикальную черту (| more):

 

$ dmesg | more

...

[28624.403670] Buffer I/O error on dev sda1, logical block 11317121, lost sync page write

...

 

Информация о драйверах

Такие сообщения обычно имеют префикс ведущего тега, указывающего на драйвер, который записывает информацию:

 

$ dmesg

...

[    2.006753] usb 1-6: Product: USB Optical Mouse

...

[   12.197240] snd_hda_intel 0000:01:00.1: bound 0000:01:00.0

...

 

В этой статье мы кратко рассмотрели журнал ядра dmesg, как получить к нему доступ и какую информацию вы можете получить из этих логов.Журнал dmesg – это основной инструмент для устранения неполадок, когда что-то не так с вашей системой Linux.