Устранение неполадок при использовании команды dmesg в Unix и Linux

Мы предоставляем услуги удаленного администрирования серверов

Устранение неполадок при использовании команды dmesg в Unix и Linux

Поделиться

В процессе загрузки системы ядро ​​загружается в память и контролирует всю систему.

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

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

1. Просмотр загрузочных сообщений

Выполнив команду dmesg, вы можете просмотреть оборудование, обнаруженное в процессе загрузки, и сведения о его конфигурации. В dmesg отображается много полезной информации. Просто просматривайте их построчно и пытайтесь понять, что это значит. Если у вас есть представление о типе отображаемых сообщений, оно может оказаться полезным для устранения неполадок при возникновении проблемы.

# dmesg | more
Bluetooth: L2CAP ver 2.8
eth0: no IPv6 routers present
bnx2: eth0 NIC Copper Link is Down
usb 1-5.2: USB disconnect, address 5
bnx2: eth0 NIC Copper Link is Up, 100 Mbps full duplex

Как мы уже говорили ранее, вы также можете просматривать информацию об оборудовании с помощью dmidecode .

2. Просмотр доступной системной памяти

Вы также можете просмотреть доступную память из сообщений dmesg, как показано ниже.

# dmesg | grep Memory
Memory: 57703772k/60817408k available (2011k kernel code, 1004928k reserved, 915k data, 208k init)

3. Просмотр состояния соединения Ethernet (UP/ DOWN)

В приведенном ниже примере dmesg указывает, что ссылка eth0 находится в активном состоянии во время самой загрузки.

# dmesg  | grep eth
eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 96000000, IRQ 169, node addr e4:1f:13:62:ff:58
eth1: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 98000000, IRQ 114, node addr e4:1f:13:62:ff:5a
eth0: Link up

4. Измените размер буфера dmesg в /boot/config-файле

Linux позволяет вам изменить размер по умолчанию буфера dmesg. Параметр CONFIG_LOG_BUF_SHIFT в файле /boot/config-2.6.18-194.el5 (или аналогичном файле в вашей системе) можно изменить для изменения буфера dmesg.

Приведенное ниже значение имеет степень 2. Таким образом, размер буфера в этом примере будет 262144 байта. Вы можете изменить размер буфера в зависимости от ваших потребностей (SUSE / REDHAT).

#  grep CONFIG_LOG_BUF_SHIFT  /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18

5. Очистить сообщения в буфере dmesg

Иногда вам может потребоваться очистить сообщения dmesg перед следующей перезагрузкой. Вы можете очистить буфер dmesg, как показано ниже.

# dmesg -c

# dmesg

6. метка времени dmesg: дата и время каждого загрузочного сообщения в dmesg

По умолчанию dmesg не имеет связанной с ним метки времени. Тем не менее, Linux предоставляет способ увидеть дату и время для каждого загрузочного сообщения в dmesg в файле /var/log/kern.log, как показано ниже.

Служба klogd должна быть включена и правильно настроена для регистрации сообщений в файле /var/log/kern.log.

# dmesg | grep "L2 cache" 
[    0.014681] CPU: L2 cache: 2048K

# grep "L2 cache" kern.log.1
Oct 18 23:55:40 ubuntu kernel: [    0.014681] CPU: L2 cache: 2048K
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte