Actualizar Ubuntu suele ser una tarea sencilla y recomendable, pero en algunos casos una actualización del kernel puede provocar un problema grave: el sistema deja de arrancar correctamente y aparece un kernel panic.
Esto puede ocurrir después de una actualización automática o tras ejecutar un apt upgrade, especialmente si el nuevo kernel instalado no se lleva bien con el hardware, los controladores o alguna configuración concreta del sistema.
En mi caso, el sistema dejó de arrancar correctamente tras instalarse un kernel problemático. La solución no fue reinstalar Ubuntu ni formatear el equipo, sino identificar qué kernel seguía funcionando, arrancar manualmente con él y dejar esa versión protegida frente a nuevas actualizaciones.
El problema: Ubuntu no arrancaba tras actualizar el kernel
Después de una actualización, Ubuntu intentaba arrancar con un kernel nuevo que provocaba un fallo grave. El sistema no llegaba a iniciar con normalidad y era necesario intervenir desde GRUB ( al que por cierto se accede por cierto pulsando Shift/Escape justo en el momento del encendido y manteniendo esta tecla pulsada).
El kernel problemático era una versión más reciente, mientras que una versión anterior del kernel seguía funcionando perfectamente.
En este caso, el kernel estable era:
6.11.0-26-generic
Y el kernel que provocaba el problema era:
6.17.0-20
La clave fue descubrir que el sistema todavía podía arrancar con el kernel anterior.
Primer paso: identificar los kernels disponibles
Desde GRUB es posible ver qué versiones del kernel están instaladas. En algunos casos, si el menú de GRUB no aparece automáticamente, se puede acceder manteniendo pulsada la tecla Shift o Esc durante el arranque, dependiendo del equipo.
Una vez dentro de las opciones avanzadas de Ubuntu, hay que buscar las versiones del kernel disponibles y probar a arrancar con una versión anterior.
Normalmente aparecerá algo parecido a:
Ubuntu, con Linux 6.11.0-26-genericUbuntu, con Linux 6.17.0-20-generic
Si el sistema arranca correctamente con el kernel anterior, ya tenemos identificado el kernel bueno.
Arrancar con el kernel que sí funciona
Una vez localizado el kernel funcional, se debe iniciar Ubuntu con esa versión. Si el arranque se completa correctamente, ya se puede trabajar desde la terminal para eliminar o bloquear el kernel problemático.
Conviene comprobar la versión del kernel en uso con:
uname -r
La salida debería mostrar la versión estable, por ejemplo:
6.11.0-26-generic
Congelar el kernel estable
Para evitar que Ubuntu sustituya automáticamente el kernel bueno por otro que pueda volver a fallar, se puede congelar la versión estable.
Primero se puede comprobar qué paquetes están actualmente congelados:
apt-mark showhold
Después, si se desea impedir que se actualicen los metapaquetes del kernel, se puede ejecutar:
sudo apt-mark hold linux-image-generic linux-headers-generic
Esto evita que Ubuntu instale automáticamente nuevas versiones del kernel a través de esos paquetes genéricos.
Eliminar el kernel problemático
Una vez confirmado que el sistema funciona correctamente con el kernel anterior, se puede eliminar el kernel que provocaba el fallo.
El comando exacto dependerá del nombre de los paquetes instalados, pero primero se pueden listar los kernels disponibles con:
dpkg --list | grep linux-image
Después se elimina el paquete correspondiente al kernel defectuoso, por ejemplo:
sudo apt remove linux-image-6.17.0-20-generic
También puede ser necesario eliminar sus cabeceras asociadas:
sudo apt remove linux-headers-6.17.0-20-generic
Después conviene actualizar GRUB:
sudo update-grub
Así el sistema dejará de intentar arrancar con el kernel problemático.
Crear una copia de seguridad de la configuración
Una vez recuperado el sistema, es recomendable guardar una copia de seguridad de la configuración actual.
Por ejemplo, para guardar la configuración de GRUB:
sudo cp /etc/default/grub /etc/default/grub.bak
Y para guardar la lista de paquetes congelados:
apt-mark showhold > ~/paquetes_congelados.txt
Esto resulta útil si más adelante hay que repetir el proceso o documentar qué cambios se hicieron.
Revisar futuras actualizaciones
Antes de ejecutar una actualización completa del sistema, conviene revisar si Ubuntu pretende instalar un nuevo kernel:
apt list --upgradable | grep linux-image
Si aparecen paquetes relacionados con linux-image, es buena idea revisar con calma qué se va a instalar antes de continuar.
En sistemas que se usan para trabajo, investigación, servidores domésticos, adquisición de datos o entornos de desarrollo, una actualización de kernel puede tener consecuencias importantes.
¿Y si quiero actualizar el kernel más adelante?
Congelar el kernel no significa que nunca más pueda actualizarse. Simplemente evita que se haga de forma automática o accidental.
Si más adelante interesa probar una versión nueva, se puede descongelar temporalmente:
sudo apt-mark unhold linux-image-generic linux-headers-generic
Después se actualiza el sistema, se reinicia y se comprueba que todo funciona correctamente.
Si el nuevo kernel es estable, se puede volver a congelar la configuración. Si no funciona, se puede arrancar de nuevo con el kernel anterior desde GRUB.
Conclusión
Un kernel panic tras una actualización de Ubuntu puede parecer un problema grave, pero no siempre implica reinstalar el sistema. En muchos casos, la solución consiste en arrancar con un kernel anterior, eliminar el kernel defectuoso y evitar que Ubuntu vuelva a instalar automáticamente una versión problemática.
La idea fundamental es sencilla:
- Localizar un kernel que sí funcione.
- Arrancar Ubuntu con esa versión.
- Eliminar el kernel defectuoso.
- Actualizar GRUB.
- Congelar el kernel estable.
- Documentar los cambios realizados.
Este procedimiento permite recuperar el sistema sin perder programas, configuraciones ni entornos de trabajo ya instalados.
En mi caso, además de recuperar Ubuntu, pude conservar intacto todo el entorno de trabajo que tenía configurado, evitando una reinstalación completa y muchas horas de trabajo.

Deja un comentario