Blog Agility

Troubleshooting usando o comando dmesg no Linux e Unix

Troubleshooting usando o comando dmesg no Linux e Unix

Durante o processo de inicialização do sistema o kernel é carregado na memória e controla todo o sistema.  Quando o sistema é inicializado, ele exibe mensagens na tela que mostram informações sobre os dispositivos de hardware que o kernel detectou durante o processo de inicialização.

Estas mensagens estão disponíveis no buffer do kernel. Sempre que uma nova mensagem surge mensagem anterior é substituída. Você pode ver todas essas mensagens após a inicialização do sistema usando o comando dmesg.

Ver as mensagens de boot

Ao executar o comando dmesg, você pode visualizar os hardwares que são detectados durante o processo de inicialização e detalhes de configuração. Há muita informação útil exibida no dmesg. Basta navegar através delas, linha por linha, e tentar entender o que significa. Uma vez que você tenha uma idéia do tipo de mensagens exibida, você pode achar o que é útil para solução de problemas, quando se deparar com um problema.

# 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

Ver memória disponível no Sistema

Você também pode visualizar a memória disponível a partir das mensagens dmesg como mostrado abaixo.

# dmesg | grep Memory

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

Ver Ethernet Link Status (UP/DOWN)

No exemplo abaixo, dmesg indica que a conexão eth0 está em estado ativo durante a processo de  boot.

# 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

Limpar mensagens em buffer do  dmesg

Às vezes você pode querer limpar as mensagens do dmesg antes de sua próxima reinicialização. Você pode limpar o buffer dmesg como mostrado abaixo.

# dmesg -c

# dmesg
DMESG timestamp: data e hora de cada mensagem do dmesg

Por padrão o dmesg não tem o timestamp associado a eles. No entanto Linux fornece uma maneira de ver a data e hora para cada mensagem de inicialização no dmesg no arquivo /var/log/kern.log como mostrado abaixo.

O serviço klogd deve ser habilitado e configurado corretamente para registrar as mensagens no arquivo /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

Utilizando os exemplos de comandos demonstrados neste artigo podemos efetuar com sucesso o troubleshooting das mensagens de boot utilizando o dmesg.