terça-feira, 8 de abril de 2025

Estudo - Kernel Erros

Manual Prático de Interpretação de Logs e Erros do Kernel Linux

 

  Introdução 

 

  Este documento tem como objetivo servir como um guia prático para interpretar logs do kernel Linux. Ele é voltado para analistas de infraestrutura, sysadmins e entusiastas que desejam entender melhor as mensagens emitidas pelo sistema, diagnosticar falhas e aplicar correções de forma eficaz. 

 

Estrutura de Logs do Kernel 

  As mensagens do kernel geralmente são acessadas via dmesg ou journalctl -k. 

Elas seguem um padrão: [tempo desde o boot] origem: 

mensagem Exemplo: [ 2111.447935] BUG: unable to handle page fault for address: 00000000d2000110 Tipos Comuns de Erros e Mensagens 1. BUG: unable to handle page fault 

 

  Significado: Tentativa de acesso a uma região de memória inválida. 

Possíveis causas: Ponteiro inválido no código do kernel ou driver. Driver com bug ou incompatível. Problemas de hardware (RAM). 

Ação sugerida: Verificar mensagens completas com dmesg -T. Analisar stack trace (RIP, Call Trace). Usar memtest86+ para testar memória.  

 

2. kernel panic Significado: 

Erro fatal que força o kernel a travar completamente. 

Possíveis causas: Falhas críticas no sistema de arquivos, drivers ou subsistemas do kernel. 

Ação sugerida: Verificar logs anteriores à mensagem. Usar crash ou dump de memória para análise mais profunda.  

 

3. Oops Significado: 

Erro interno do kernel, mas nem sempre fatal como um panic.

 Possíveis causas: Problemas com ponteiros nulos ou acesso fora dos limites. Bugs em módulos carregados dinamicamente. 

Ação sugerida: Analisar a saída do Call Trace. 

Verificar se o kernel está "tainted". 

 

4. soft lockup / hard lockup

  Significado: CPU está travada em uma tarefa e não consegue continuar a execução. 

Possíveis causas: Deadlocks. Problemas com escalonamento de processos. 

Ação sugerida: Usar perf top ou ftrace para analisar processos em tempo real. Investigar uso excessivo de CPU. 

 

5. tainted kernel  

Significado: O kernel detectou algo incomum e marcou o sistema como "contaminado". 

Possíveis causas: Uso de módulos proprietários. Falhas de hardware. 

Ação sugerida: Verificar código de contaminação em /proc/sys/kernel/tainted. Usar uname -a para coletar versão do kernel e contexto.  

Ferramentas de Apoio  

dmesg -T: Visualiza mensagens com timestamp legível. 

journalctl -k: Filtra logs do kernel. 

memtest86+: Teste de memória RAM. crash / 

makedumpfile: Análise de crash dumps. 

drgn: Depuração interativa de kernel. 

perf, ftrace, systemtap: Análise de performance e tracing. 

 

 

Recursos de Estudo Kernel.org Documentation Livro: Linux Kernel Development (Robert Love) Fórum: LinuxQuestions - Kernel LWN.net - Kernel

Nenhum comentário:

Postar um comentário

RECOVER SENHA UBUNTU