Tutoriales

Cómo activar y arreglar el pánico del kernel de Linux (educación)

Imagine que estaría encantado de trabajar en un sistema de Linux, tal vez compilar el envoltorio, ejecutar actualizaciones o simplemente navegar, y de repente, su pantalla se congela y aparece una pared oculta de texto: «Kernel Panic – Async: ¡Tratando de matar a Init!transparente

Ahora, antes de comenzar a sudar, disminuyamos la velocidad y aprendamos a entender, simular y arreglar el pánico del núcleo. Como alguien que rompe y arregla más máquinas de Linux de las que puedo calcular en 15 años o más, lo ayudaré a aprender maneras interesantes y seguras.

¿Qué es el pánico del kernel de Linux?

En resumen, las medidas de seguridad tomadas cuando el pánico del kernel es un error crítico de que los encuentros del núcleo de Linux no se pueden recuperar de manera segura.

El kernel de Linux es el núcleo del sistema y puede manejar todo, desde la administración de memoria y la comunicación del dispositivo hasta los procesos en ejecución. Cuando los problemas ocurren en lo profundo del núcleo (por ejemplo, los controladores malos pueden acceder a la memoria no válida o los componentes críticos fallan: el núcleo se detiene para evitar una mayor corrupción.

Piense en ello como un freno de emergencia para el automóvil: cuando las cosas salen mal, el sistema golpeará los frenos y detendrá todo.

Causas comunes de pánico del núcleo

Echemos un vistazo a los sospechosos habituales detrás del pánico del núcleo, algunas de las razones más comunes por las que su sistema Linux puede golpear una pared:

  • La RAM fallida, las CPU sobrecalentadas o los discos fallidos son problemas de hardware comunes que pueden activar el pánico del núcleo al causar la corrupción de la memoria, la inestabilidad del sistema o los errores críticos del sistema de archivos, especialmente durante el arranque.
  • La instalación manual o los controladores de terceros que no coinciden con la versión actual del núcleo pueden causar pánico inmediato, especialmente con modpoba.
  • Corrupción en archivos clave /etc/fstab,,,,, /sbin/inito roto initramfs Las imágenes evitan el arranque adecuado y causan pánico del núcleo.
  • Los UUID incorrectos, las etiquetas de partición o las entradas faltantes del kernel/initramfs en grub pueden confundir el proceso de inicio y activar el pánico antes de que se cargue el sistema operativo.
  • Eliminar accidentalmente archivos básicos /sbin/init O matar a alguien enérgicamente PID 1 A medida que el sistema pierde su proceso principal, conducirá al pánico que no se puede recuperar.

Cómo simular el pánico del núcleo (¡seguro!)

advertir: No intente esto en el sistema de producción. Siempre probado en una máquina virtual (Virtualbox, KVM o Qemu) o en un contenedor.

Opción 1: Pánico del núcleo de activación usando /Proc /Sysrq-Trigger

Una de las formas más seguras y controladas de simular el pánico del kernel es usar sysrq (Solicitud del sistema) La interfaz es proporcionada por el núcleo de Linux, que los desarrolladores y administradores del sistema generalmente usan para depurar escenarios de bloqueo o probar políticas de recuperación del sistema, como el reinicio automático.

este sysrq Pases de interfaz /proc/sys/kernel/sysrq, Para habilitarlo, ejecute:

echo 1 | sudo tee /proc/sys/kernel/sysrq

Ahora, para simular el pánico del kernel, corre:

echo c | sudo tee /proc/sysrq-trigger

Después de ejecutar este comando, el kernel se detendrá, mostrará un mensaje de pánico y congelará el sistema.

Opción 2: use la interfaz de depuración para activar el pánico del kernel

Otra forma segura de simular el pánico del kernel es usar el incorporado de Linux sysrq interfaz o use el módulo de pánico del núcleo de choque para activarlo manualmente (si corresponde).

Método 1: Use SYSRQ para activar el pánico

Primero, asegúrese de sysrq Características habilitadas:

echo 1 > /proc/sys/kernel/sysrq

Luego, active un pánico, que causará inmediatamente un pánico del núcleo al obligar al sistema a bloquear, perfecto para probar el comportamiento de pánico o reiniciar automáticamente la configuración.

echo c > /proc/sysrq-trigger

Método 2: Cargue el módulo del núcleo de bloqueo (si corresponde)

Algunos núcleos incluyen un módulo específicamente para activar bloqueos, que puede cargar:

sudo modprobe crash

Una vez cargado, puede proporcionar características de depuración adicionales, dependiendo de la configuración del núcleo. Sin embargo, no todas las distribuciones envían este módulo y pueden deshabilitarse para la seguridad en el núcleo de producción.

si modprobe crash Devuelve un error, el módulo puede no estar disponible o integrado en el núcleo. Puedes verificar:

modinfo crash

Cómo arreglar el pánico del núcleo en Linux

Pasemos paso a paso el proceso de diagnóstico y reparación de pánico del núcleo.

1. Reiniciar y registrar registros del sistema

Después del pánico del núcleo, su sistema puede congelarse por completo. Debe reiniciar manualmente la máquina presionando el botón de encendido o utilizando el interruptor de reinicio.

Después de reiniciar el sistema (o el inicio de los medios en tiempo real), lo primero que debe verificar es el registro del sistema para determinar la causa del bloqueo utilizando el siguiente comando JournalCTL, que mostrará el registro detallado del inicio anterior, incluidos los errores y los servicios de kernel fallidos.

journalctl -xb

Alternativamente, verifique el búfer de mensajes del kernel y los archivos de registro:

dmesg | less
OR
cat /var/log/kern.log | less

Buscando líneas mencionadas panic,,,,, segfaulto kernel bug. Tenga en cuenta el nombre del módulo, el error de hardware o la ruta del archivo.

2. Arrancar a un kernel más antiguo

Después de actualizar el núcleo, el sistema entrará en pánico debido a la incompatibilidad del conductor o la falla de compilación del núcleo. Afortunadamente, Grub generalmente puede instalar múltiples versiones de núcleo, lo que le permite revertir fácilmente.

Para arrancar a un núcleo más antiguo, simplemente reinicie el sistema, presione Esc En el menú de grub (si no aparece automáticamente), seleccione Opciones avanzadas para Ubuntu (o su distribución) y seleccione la versión anterior del núcleo de la lista, p. 5.15.0-92-generic Si es nuevo 6.x El núcleo está causando problemas.

Una vez que se determina una versión de núcleo estable, se puede configurar como la versión predeterminada para que GRUB siempre comience automáticamente.

sudo apt install linux-image-
sudo grub-set-default 1  # set the older kernel as default

usar grep menuentry /boot/grub/grub.cfg Para encontrar el nombre exacto de la entrada del núcleo requerida.

3. Reconstruir initRAMFS (sistema inicial de archivos RAM)

este initramfs (o intrusión) es un pequeño sistema de archivos raíz temporal cargado en la memoria durante el inicio, que contiene los controladores y herramientas necesarios para iniciar el sistema antes de instalar el sistema de archivos raíz real.

Si esta imagen se corrompe, incompatible con el núcleo o completamente perdido, su sistema puede entrar en pánico inmediatamente después de que Grub lo controla manualmente al núcleo.

Para reconstruir InitRAMFS, arrance al CD/USB en vivo si su sistema no puede arrancar e instalar la sección raíz.

sudo update-initramfs -u -k all

Si solo quieres regenerar el núcleo actual:

sudo update-initramfs -c -k $(uname -r)

Después de la reconstrucción, reinicie el sistema.

sudo reboot

4. Sistema de archivos de reparación

Si su pánico del núcleo incluye el mensaje de que el FS o el VF raíz no se pueden instalar: la raíz no se puede instalar, es muy probable que el sistema de archivos raíz o de arranque esté dañado, lo que puede ocurrir debido a los errores de apagado, falla de energía o disco.

Para reparar el sistema de archivos, use LSBLK o FDISK para encontrar la partición de raíz o arranque de Linux.

lsblk

A continuación, ejecute FSCK para reparar el sistema de archivos.

sudo fsck /dev/sda1

reemplazar /dev/sda1 Use su partición de raíz o arranque real.

5. Diagnosticar problemas de hardware

A veces, el pánico del kernel no es culpa de su software: es el hardware el que falla en silencio a continuación. Es bien sabido que los errores de memoria y disco son difíciles de detectar antes de que puedan causar daños reales.

usar Inteligente De Smartmontools Paquete para verificar estadísticas de salud y error de la unidad:

sudo smartctl -a /dev/sda

Buscando señales de advertencia Reallocated_Sector_Ct (El mal departamento se ha mudado), Pending_Sector_Ct (Departamento esperando la reasignación) o Current_Pending_Sector (Banderas rojas principales para la inestabilidad).

Si alguno de estos valores está aumentando, hay una gran indicación de que su unidad está fallando: haga una copia de seguridad de los datos de inmediato y reemplace el disco.

6. Corrección de gotas de arranque de grub

Los cargadores de arranque de grub no calificados o corruptos son una causa común de pánico del núcleo, especialmente después de las actualizaciones del núcleo, la configuración de arranque dual o los cambios en el disco. Si GRUB no logra encontrar su sección de raíz o imagen de intrD correctamente, el sistema puede no comenzar y lanzar un error de pánico.

Use un CD en vivo o una comida USB de arranque fijada.

sudo mount /dev/sda1 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
sudo update-grub

Cerciorarse /etc/fstab Con el UUID correcto puede verificarlos usando:

blkid

Cómo prevenir el pánico del núcleo (como un profesional)

Si bien el pánico del núcleo no siempre se puede evitar, especialmente en caso de falla del hardware, seguir algunas prácticas sabias puede reducir en gran medida las posibilidades de encontrarlas.

Aquí le mostramos cómo proteger activamente los sistemas Linux del pánico del núcleo:

  • Evite eliminar o modificar manualmente los archivos de clave del sistema.
  • Nunca actualice el núcleo en un servidor de producción en tiempo real sin probarlo primero.
  • Use el núcleo LTS (soporte a largo plazo) para la estabilidad.
  • Instale siempre al menos dos versiones de kernel.
  • Use copias de seguridad (especialmente /arranque, /etc. y configuraciones importantes).
  • Use KDump para habilitar los volcados automáticos de colisión para capturar registros de pánico.

Recompensa: reinicie automáticamente después del pánico

Para evitar las máquinas de congelación que están inactivas en la sala del servidor, puede configurar el núcleo para reiniciar automáticamente después del pánico.

añadir /etc/sysctl.conf Archivo, dígale al sistema que reinicie después de pánico 10 segundos.

kernel.panic = 10

Aplicarlo.

sudo sysctl -p
en conclusión

El pánico del kernel puede parecer aterrador, especialmente para los principiantes, pero una vez que comprende lo que significa y cómo lidiar con él, se convierte en otro rompecabezas de Linux para la solución.

La clave es mantener la calma, arrancar al sistema de recuperación o en tiempo real, recopilar registros, determinar qué cambios (actualizaciones del núcleo, fallas de hardware, errores de configuración) e invertir metódicamente las pérdidas.

Y, si realmente quieres ser Linux Ninja, intenta simular el pánico en un laboratorio virtual y practicar habilidades de recuperación. Así lo hacen los profesionales.

¿Hay una historia de pánico?

¿Alguna vez ha roto el sistema Linux y lo ha levantado de entre los muertos? ¿O causó pánico incorrectamente? Comparta su historia en los comentarios: nos encanta la escucha de Linux Explorers.

LEER  Una guía para principiantes sobre el sistema de archivos /proc en Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba