Header Ads

Como usar o comando dmesg no Linux

O comando dmesg permite observar o mundo oculto dos processos de inicialização do Linux. Revise e monitore as mensagens de dispositivo e driver de hardware do buffer de anel do kernel com o amigo do localizador de falhas.

Como funciona o buffer de anel do Linux

Nos computadores Linux e Unix, inicialização e inicialização são duas fases distintassequência de eventos que ocorrem quando o computador é ligado.

Os processos de inicialização (BIOS ou UEFI, MBR e GRUB) levam a inicialização do sistema ao ponto em que o kernel é carregado na memória econectado ao ramdisk inicial (initrd ou initramfs) e o systemd é iniciado.

Os processos de inicialização pegam o bastão e concluem a inicialização do sistema operacional. Nos estágios iniciais da inicialização, os daemons de log como syslogd ou rsyslogd ainda não estão em funcionamento. Para evitar a perda de notáveis ​​mensagens de erro e avisos dessa fase de inicialização, o kernel contém um buffer de anel que ele usa como armazenamento de mensagens.

Um buffer de anel é um espaço de memória reservado para mensagens.É de design simples e de tamanho fixo. Quando está cheio, as mensagens mais recentes substituem as mensagens mais antigas. Conceitualmente, pode ser pensado como um buffer circular. O buffer de anel do kernel armazena informações como as mensagens de inicialização dos drivers de dispositivo, mensagens do hardware e mensagens dos módulos do kernel.. Como contém essas mensagens de inicialização de baixo nível, o buffer de anel é um bom lugar para iniciar uma investigação sobre erros de hardware ou outros problemas de inicialização.

Mas não fique de mãos vazias. Leve o dmesg com você.

O comando dmesg

O comando dmesg permite revisar as mensagens armazenadas no buffer de toque. Por padrão, você precisa usar o sudo para usar o dmesg.

 sudo dmesg 

Todas as mensagens no buffer de anel são exibidas ema janela do terminal.

Isso foi um dilúvio. Obviamente, o que precisamos fazer é canalizá-lo menos:

 sudo dmesg |menos 

Agora podemos percorrer as mensagens procurando itens de interesse.

Você pode usar a função de pesquisadentro de menos para localizar e destacar itens e termos nos quais você está interessado. Inicie a função de pesquisa pressionando a tecla de barra "“ /" ”em menos.

RELACIONADO: Como usar o comando less no Linux

Removendo a necessidade de sudo

Se você deseja evitar ter que usar o sudo toda vezvocê usa dmesg, você pode usar este comando. Mas lembre-se: ele permite que qualquer pessoa com uma conta de usuário em seu computador use o dmesg sem precisar usar o sudo.

 sudo sysctl -w kernel. dmesg_restrict = 0 

Forçando a saída de cores

Por padrão, o dmesg provavelmente será configurado para produzir uma saída colorida. Se não estiver, você pode dizer ao dmesg para colorir sua saída usando a opção -L (cor).

 sudo dmesg -L 

Para forçar o dmesg a sempre usar como padrão uma exibição colorida, use este comando:

 sudo dmesg --color = always 

Registros de data e hora humanos

Por padrão, o dmesg usa uma notação de registro de data e hora de segundos e nanossegundos desde que o kernel foi iniciado. Para que isso seja renderizado em um formato mais amigável para o ser humano, use a opção -H (humana).

 sudo dmesg -H 

Isso faz com que duas coisas aconteçam.

  • A saída é exibida automaticamente em menos.
  • Os registros de data e hora mostram um registro de data e hora com data e hora, com uma resolução minuciosa. As mensagens que ocorreram em cada minuto são rotuladas com os segundos e nanossegundos desde o início desse minuto.

Registros de data e hora legíveis por humanos

Se você não precisarprecisão de nanossegundos, mas você deseja carimbos de data e hora mais fáceis de ler do que os padrões, use a opção -T (legível por humanos).(É um pouco confuso. -H é a opção "humana", -T é a opção "legível por humanos").)

 sudodmesg -T 

Os carimbos de hora são renderizados como datas e horas padrão, mas a resolução é reduzida para um minuto.

Tudo o que aconteceu em um único minuto tem o mesmo registro de data e hora. Se você só se preocupa com a sequência de eventos, isso é bom o suficiente. Além disso, observe que você retornou ao prompt de comando. Esta opção não invoca menos automaticamente.

Assistindo a eventos ao vivo

Para ver as mensagens que chegam no buffer de toque do kernel, use a opção --follow (aguarde mensagens). Essa frase pode parecer um pouco estranha. Se o buffer de toque for usado para armazenar mensagens de eventos que ocorrem durante a sequência de inicialização, como as mensagens ativas chegarão no buffer de toque quando o computador estiver funcionando?

Qualquer coisa que cause uma alteração noO hardware conectado ao seu computador fará com que as mensagens sejam enviadas ao buffer de anel do kernel. Atualize ou adicione um módulo do kernel e você verá mensagens de buffer de anel sobre essas alterações. Se você conectar uma unidade USB ou conectar ou desconectar um dispositivo Bluetooth, verá mensagens na saída dmesg. Mesmo o hardware virtual fará com que novas mensagens apareçam no buffer do anel. Inicie uma máquina virtual e você verá novas informações chegando no buffer do anel.

 sudo dmesg --follow 

Observe que você não retornou ao prompt de comando. Quando novas mensagens aparecem, elas são exibidas por dmesg na parte inferior da janela do terminal.

Mesmo montar um disco de CD-ROM é visto como uma mudança, porque você &’enxertamos o conteúdo do disco de CD-ROM na árvore de diretórios.

Para sair do feed em tempo real, pressione Ctrl + C.

Recupere as últimas dez mensagens

Use o comando tail para recuperar as últimas dez mensagens de buffer do anel do kernel. Obviamente, você pode recuperar qualquer número de mensagens. Dez é apenas o nosso exemplo.

 sudo dmesg |last -10 

As últimas dez mensagens são recuperadas e listadas na janela do terminal.

Pesquisando termos específicos

Canalize a saída do dmesg pelo grepto para procurar seqüências ou padrões específicos. Aqui, estamos usando a opção -i (ignorar maiúsculas e minúsculas) para que o caso de cadeias correspondentes seja desconsiderado. nossos resultados incluirão "usb" ”e “ USB ”e qualquer outra combinação de letras minúsculas e maiúsculas.

 sudo dmesg |grep -i usb 

Os resultados da pesquisa destacados estão em maiúsculas e minúsculas.

Podemos isolar as mensagens quecontém referências ao primeiro disco rígido SCSI no sda do sistema.(Atualmente, o sda também é usado atualmente para o primeiro disco rígido SATA e para drives USB.)

 sudo dmesg |grep -i sda 

Todas as mensagens que mencionam sda são recuperadas e listadas na janela do terminal.

Para fazer grep pesquisar vários termos de uma só vez, use a opção -E (estender expressão regular). Você deve fornecer os termos de pesquisa dentro de uma string citada com o pipe “ | ”delimitadores entre os termos de pesquisa:

 sudo dmesg |grep -E "memória | tty | dma" 

Qualquer mensagem que mencione algum dos termos de pesquisa está listada na janela do terminal.

Usando níveis de log

Toda mensagem registrada no buffer de anel do kernel tem um nível anexado.O nível representa a importância das informações na mensagem. Os níveis são:

  • emerg: O sistema não pode ser utilizado.
  • alerta: É necessário executar ações imediatamente.
  • crit: Condições críticas.
  • err: condições de erro.
  • aviso: condições de aviso.
  • aviso: condição normal, mas significativa.
  • informação: informativa.
  • debug: mensagens em nível de depuração.

Podemos fazer com que o dmesg extraia mensagens que correspondam a um nível específico usando a opção -l (level) e passando o nome do nível como umparâmetro de linha de comando. Ver apenas “ informativo ”mensagens de nível, use este comando:

 sudo dmesg -l info 

Todas as mensagens listadas são mensagens informativas. Eles não contêm erros ou avisos, apenas notificações úteis.

Combine dois ou mais níveis de log em um comando para recuperar mensagens de vários níveis de log:

 sudo dmesg -l debug, observe 

A saída do dmesg é uma mistura de mensagens de cada nível de log:

As categorias de instalação

As mensagens dmesg são agrupadas em categorias denominadas "instalações". ”A lista de recursos é:

  • kern: mensagens do kernel.
  • usuário: mensagens no nível do usuário.
  • mail: sistema de correio.
  • daemon: daemons do sistema.
  • auth: mensagens de segurança / autorização.
  • syslog: mensagens internas do syslogd.
  • lpr: subsistema de impressora de linha.
  • notícias: subsistema de notícias da rede.

Podemos pedir ao dmesg para filtrar sua saída para mostrar apenas mensagens em uma instalação específica. Para fazer isso, devemos usar a opção -f (facilidade):

 sudo dmesg -f daemon 

dmesg lista todos osmensagens relacionadas a daemons na janela do terminal.

Como fizemos com os níveis, podemos pedir ao dmesg para listar mensagens de mais de uma instalação ao mesmo tempo:

 sudo dmesg -f syslog, daemon 

A saída é uma mistura de mensagens de log do syslog e daemon.

Combinando facilidade e nível

A opção -x (decodificação) faz com que o dmesg mostre a facilidade e o nível como prefixos legíveis por humanos para cada linha.

 sudodmesg -x 

A instalação e o nível podem ser vistos no início de cada linha:

O primeiro destacadoA seção é uma mensagem do kernel do “instalação com um nível de 'aviso prévio'. ”A segunda seção destacada é uma mensagem do “ kernel ”instalação com um nível de "info".

Isso é ótimo, mas por quê?

Resumindo, localização de falhas.

Se você está tendo problemas com um pedaço de hardware que não está sendo reconhecido ou não está se comportando adequadamente, o dmesg pode lançar alguma luz sobre o problema.

  • Use o dmesg para revisar mensagens do nível mais alto a cada nível mais baixo, procurando por erros ou avisos que mencionem o item de hardware ou que possam ter alguma influência no problema.
  • Use o dmesg para procurar qualquer menção ao recurso apropriado para ver se contém alguma informação útil.
  • Passe o dmesg pelo grep e procure por seqüências ou identificadores relacionados, como fabricante do produto ou número de modelo.
  • Passe o dmesg através do grep e procure por termos genéricos como > & gtu > & 8221;ou "“ armazenamento" ou termos como "falha" ou "8221"; "falha" ”ou “ incapaz ”.
  • Use a opção --follow e assista mensagens dmesg em tempo real.

Caça feliz.

Via: How to Geek

Veja Também:

Nenhum comentário