¿Poco espacio en Linux? Elimina los Kernel viejos que no uses

Para funcionar, todas las distribuciones Linux necesitan arrancar un Kernel. Este es, al fin y al cabo, el núcleo del sistema, e incluye el corazón del sistema operativo, así como todos los drivers y elementos necesarios para que funcione como tal. Este núcleo es uno de los elementos más importantes que debemos mantener siempre actualizado, ya que con cada parche corrigen errores y mejoran el funcionamiento general de todo el sistema. Sin embargo, seguro que más de una vez hemos notado que, a medida que vamos actualizando el sistema, este va ocupando más espacio en el disco. ¿A qué se debe?

Cuando nuestra distro Linux baja una actualización del Kernel, esta no baja solo las partes que han cambiado, sino que baja de nuevo el núcleo completo en el sistema, y lo instala completo. Además, para evitar problemas, deja todas las versiones antiguas del mismo guardadas en el disco duro de manera que, si la nueva versión no funciona correctamente, podamos arrancar una versión anterior del núcleo desde el menú de arranque de GRUB.

GRUB lista de núcleos Linux+

Da igual las versiones del núcleo que tengamos guardadas, ya que solo vamos a arrancar una de ellas y a trabajar de ellas. Para cambiar de núcleo hay que reiniciar el sistema. Por tanto, tener varias versiones no afectará al rendimiento del SO, aunque sí que afectará, notablemente, al espacio libre que tengamos en el disco duro.

Por tanto, como parte del mantenimiento esencial de este sistema operativo, es recomendable eliminar todas las versiones antiguas y que no usemos para tener la mayor cantidad de espacio libre disponible. Así es como se hace.

Cómo ver todos los Kernel instalados en Linux

Lo primero que vamos a hacer es ver todos los núcleos que tenemos guardados en nuestro ordenador. Esto nos permitirá hacernos una idea de cuántas versiones de Linux diferentes tenemos y por dónde empezar a borrar.

Para ello, lo único que debemos hacer es abrir un terminal y ejecutar en él el siguiente comando:

dpkg --list | grep linux-image

Como veremos, nos aparecerá una lista completa con todos los núcleos.

Ver lista Kernels instalados

En nuestro caso, tenemos 4 núcleos diferentes instalados en Ubuntu. Lo normal es que estemos usando el más nuevo, es decir, en nuestro caso «linux-image-5.8.0-48-generic«. Pero podemos comprobarlo fácilmente ejecutando el comando:

uname -r

Ver Kernel usado

Ya sabemos cuál es el Kernel que estamos usando a diario. Y si no tenemos problemas, todo lo demás sobra, y podemos eliminarlo. No debemos preocuparnos, ya que en caso de necesitar en el futuro instalar otra versión concreta podremos hacerlo.

Eliminar núcleos a mano desde Linux

Hay varias formas de eliminar los núcleos de Linux que no usemos. La más básica, manual y segura es hacerlo mediante «sudo apt purge». Este comando se utiliza principalmente para eliminar programas y paquetes que ya no queremos tener en nuestro sistema. Por lo tanto, si lo vinculamos a un núcleo, podremos eliminarlo sin problemas.

Así, para eliminar uno de los núcleos simplemente debemos ejecutar este comando, seguido del nombre del núcleo que queremos borrar (nombre que hemos visto ya en el punto anterior). En nuestro caso, para eliminar el 5.8.0-44 ejecutaremos:

sudo apt purge linux-image-5.8.0-44-generic

Desinstalar Kernel a mano

Ahora repetiremos el proceso para todos los demás núcleos que queramos eliminar de nuestro sistema. Debemos asegurarnos de dejar uno al menos instalado, ya que si no no podremos iniciar el sistema, y entonces tendremos un problema.

Una vez terminemos, podemos comprobar que solo tenemos un Kernel instalado ejecutando el comando del primer apartado.

Ver lista de Kernels limpia

Eliminar Kernel antiguos y componentes no utilizados

El método anterior nos brinda mucho control y nos ayuda a evitar errores al ser un proceso que debemos realizar a mano. Sin embargo, es una tarea bastante tediosa y muchos usuarios prefieren buscar otras formas más automáticas y rápidas de hacer lo mismo.

Podemos aprovecharnos del parámetro «purge» del comando «apt» para eliminar de una pasara todos los núcleos que no utilizamos en la distro, así como de otros paquetes inutilizados en el sistema. Para ello, no tenemos más que ejecutar el siguiente comando en un terminal:

sudo apt --purge autoremove

Apt nos mostrará todas las versiones del Kernel Linux que tenemos instaladas en el ordenador y que, si nos parece bien, se eliminará. Además, también podremos ver otros paquetes (como las actualizaciones de microcódigo) que forman parte del sistema, que no son necesarias y que se van a eliminar también.

Comprobamos todo bien (el Kernel que estamos usando debería estar ignorado), confirmamos con la letra S y dejamos que el programa haga lo suyo. Cuando acabe, ya habremos eliminado unos cuantos cientos de megas.

¡Importante! Actualizar el GRUB

Independientemente del método que hayamos usado, es importante actualizar el GRUB para acabar. Esto se debe a que, como hemos explicado, el gestor de arranque guarda una copia de todos los núcleos para permitirnos arrancar en otra versión desde sus opciones avanzadas. La opción por defecto cargará el núcleo principal, pero las otras opciones seguirán estando ahí.

Para actualizarlo, y eliminar las referencias a las versiones que ya no usamos, simplemente ejecutaremos el siguiente comando en un terminal:

sudo update-grub

Cuando acabe, podremos reiniciar el ordenador, entrar en GRUB mientras carga y ver como no tenemos más núcleos antiguos.

¿Has eliminado todos los Kernel? No está todo perdido

Hemos indicado que es importante asegurarnos de dejar al menos un núcleo, el más actualizado, para poder arrancar. Pero no seremos ni los primeros ni los últimos que, por despiste, los hemos eliminado todos. Y ahora la distro no arranca. ¿Qué podemos hacer?

Si tenemos ya cierto nivel de conocimientos vamos a poder recuperar nuestro Linux sin tener que formatear. Para ello, lo primero que haremos será bajar la ISO de Ubuntu, arrancar el sistema Live, montar el disco duro o partición donde teníamos instalado el sistema, y empezar a trabajar con él usando el comando «chroot».

Una vez tengamos control sobre el terminal de nuestro agonizante Linux, debemos ejecutar el siguiente comando para instalar la versión genérica del núcleo:

apt-get install linux-image-generic

Actualizamos GRUB de nuevo y listo. Cerramos, reiniciamos el ordenador y listo. Eso sí, si al arrancar seguimos entrando a memtest, entonces debemos ejecutar este comando para reconfigurar el sistema:

dpkg --configure -a[<code]