Herramientas personales

Manejando el kernel panic

De Proyectos GULIX

{EN DESARROLLO}


Tabla de contenidos

¿Que es un kernel panic?

En Linux, un panic es un error casi siempre insalvable del sistema detectado por el núcleo en oposición a los errores similares detectados en el código del espacio de usuario.

Es posible para el código del núcleo indicar estas condiciones mediante una llamada a la función de pánico. Sin embargo, la mayoría de las alertas son el resultado de excepciones en el código del núcleo que el procesador no puede manejar, como referencias a direcciones de memorias inválidas. Generalmente esto es indicador de la existencia de un bug en algún lugar.

También pueden indicar un fallo en el hardware como un fallo de la RAM o errores en las funciones aritméticas en el procesador, o por un error en el software.

En muchas ocasiones es posible reiniciar o apagar adecuadamente el núcleo mediante una combinación de teclas como ALT+SysRq+RSEIUB.

Hay dos tipos principales de kernel panic:

  • Hard Panic
  • Soft Panic


Que causa realmente un kernel panic

Solo los módulos que están en contacto directo con el kernel, pueden ser los causantes directos del kernel panic. Dado que estos son cargados y descargados dinámicamente por el sistema, siempre se requerirá un análisis detallado para averiguar la causa.

Con el comando lsmod podemos observar los módulos que están cargados actualmente en el sistema.

Adicionalmente a estos módulos, un kernel panic también puede ser causado por componentes que están dentro del kernel básico, como la memoria.

Las causas más comunes de los "kernel panic" es debido a los drivers, que al controlar erróneamente las interrupciones, acceden a secciones de memoria nulas. Cuando esto pasa el driver no puede tomar una nueva interrupción y eventualmente causa la caida del sistema.

Fallas en el hardware también podrían causar que los drivers no funcionen adecuadamente, desencadenando todo el problema.


Sintomas de un kernel panic

  1. caída inmediata del sistema, bloqueo del sistema o sistema inestable
  2. parpadeo del teclado Num Lock / Caps Lock / Scroll Lock
  3. si estas en modo terminal, un mensaje será desplegado


Cerrar el sistema adecuadamente después de un kernel panic

Los pasos que debemos realizar cuando una máquina linux se queda colgada son lo siguiente:

  • Alt + Ctrl + <tecla de función> para entrar en un terminal de texto. Normalmente las teclas de función válidas van de la F1 a la F6. De lograrse acceder al terminal de texto ya podríamos reiniciar mediante la orden shutdown o matar mediante kill los procesos que afectan al sistema.
  • Control-Alt-Delete. En caso de no obtener éxito con la combinación anterior esta combinación nos proporcionaría un reinicio seguro.
  • Alt + SysRq + <'R|E|I|S|U|B'>

El uso es el siguiente, recordando la frase "REInicia SUBnormal!!" (que es lo que realmente quieres que haga tu pc, como si hablases con él) Vamos usando una a una la primera letra de cada palabra. Así pues, mientras mantenemos pulsadas las teclas Alt y SysRq (suele ser la misma que Impr Pant), sin soltarlas vamos pulsando las teclas R, E, I, S, U, y B, en secuencia dejando un tiempo entre una y otra.


Significado de cada acción

Alt + SysRq +...

  • R pone el teclado en modo RAW
  • E termina todos los procesos
  • I mata todos los procesos
  • S sincroniza el disco duro
  • U desmonta todos los sistemas de ficheros
  • B reinicia la máquina


Reiniciar automáticamente después de un kernel panic

Por defecto después de un kernel panic, el sistema esperará hasta ser reiniciado, pero puede ser configurado para que se reinicie automáticamente.

mediante la variable "kernel.panic" se puede controlar el tiempo de espera antes del reinicio depués de un kernel panic. Debe ser un valor mayor que 0.


# cat /proc/sys/kernel/panic
0


Editar el achivo /etc/sysctl.conf y agregar la linea

kernel.panic = 10

y recargar los parametros al kernel

# sysctl -p


Los log del sistema

Dependiendo de la naturaleza del kernel panic, el kernel registrará en los logs del sistema toda la información que se pueda capturar antes del error. Si tenemos algo de suerte podemos contar con esto para diagnosticar el problema.

Debemos comprender que no todas las veces el sistema logra registrar la falla y probablemente si el kernel panic es causado en el sistema de archivos, no podrá registrar nada en el disco.

Algunos lugares donde podemos ir en búsqueda de información después de sufrir un kernel panic son:

  1. /var/log/messages — Aveces el sistema logra registrar todo aquí antes de la caida del sistema.
  2. Logs especializados de la aplicación y o librerías -
  3. Recuerde todos los cambios que ha realizado sobre la máquina últimamente, probablemente uno de ellos sea la causa del problema.
  4. Observe el mensaje que es desplegado en pantalla al momento de la caída del sistema

Buscar