sábado, 16 de febrero de 2008

Desinstalar un Kernel (núcleo del sistema)

Seguro que más de un usuario relativamente nuevo tiene en el sistema más kernels de lo necesario con una entrada del grub con muchas opciones distintas. El kernel del sistema se actualiza cada poco tiempo con mejoras y correcciones de seguridad. Como ya sabemos, estas actualizaciones se instalan de forma (más o menos) automática, creando una nueva entrada en nuestro Grub para poder arrancar el sistema con el nuevo kernel. Ahora bien, las antiguas se quedan ahí, y si no las quitamos nosotros mismos, no tardaremos en tener un sistema con muchos megas de espacio ocupados por núcleos (kernel) antiguos y además un menú de inicio nada funcional, con varias opciones de arranque no necesarias.
------------------------------------------------
Instalación manual de un nuevo kernel:
De todas formas si no se actualiza al último kernel y quieres hacerlo de forma manual se pueden bajar desde la página http://kernel.ubuntu.com/~kernel-ppa/mainline/ los paquetes adecuados:
linux-headers ** all.deb
linux-headers ** i386.deb
( o amd64.deb si esa es la arquitectura del sistema )
linux-image ** i386.deb
( o amd64.deb si esa es la arquitectura del sistema )
** es el nombre especifico de cada versión del kernel.
Una vez bajados hay que instalarlos en ese mismo orden ( dato este importante ) y una vez instalados hay que actualizar el grub, con la orden en la terminal: sudo update-grub2

Es recomendable,mantener siempre al menos dos versiones del kernel: la versión mas actual del kernel y una anterior, por si ocurre algún problema con el que estamos usando, poder arrancar el sistema con el que teníamos anteriormente.

-------------------------------------------------

Desinstalación de kernels antiguos:
No debemos desinstalar la versión (a ) del kernel desde la que, en el menú del grub, entramos en la sesión de usuario. Si queremos desinstalar ésta versión (a) deberemos entrar, en el menú del grub, desde otra versión del kernel (b). Es decir para desinstalar la versión (a) debemos entrar con la versión (b) y viceversa.
Para desinstalar completamente una versión de un kernel debemos desinstalar tanto la versión correspondiente de linux-image, como la de linux-headers.
---------------------

Desinstalar "linux-image":

En Ubuntu ( y todas las distribuciones basadas en Debian, claro), la forma de comprobar todas las versiones del kernel que tenemos instaladas es tan sencillo como ejecutar en consola:

sudo dpkg --get-selections | grep linux-image

Este comando nos va a mostrar una lista de las versiones que tengamos instaladas en nuestro sistema. Por ejemplo:

usuario@GuadaV4:~$ sudo dpkg --get-selections | grep linux-image
linux-image-2.6.20-14-generic install
linux-image-2.6.20-15-generic install
linux-image-generic

( Para saber que kernel es el que estamos usando en el momento en el que estamos en la sesión de usuario, ejecutar  en la terminal: uname -a )

Ahora, para desinstalar un kernel que ya no usemos (por ejemplo la versión 2.6.20-14 aunque a muchos os aparecerán bastantes más) lo que tenemos que hacer es ejecutar en una terminal:

sudo apt-get remove --purge linux-image-2.6.20-14-generic

( hay que cambiar, lógicamente el número que aquí pongo, que es solo un ejemplo ).

Este comando además de eliminar los núcleos del sistema, borra las entradas correspondientes en el menú del Grub. Es recomendable, eso si, mantener siempre la versión actual del kernel y una anterior, por si ocurre algún problema con el que estamos usando, poder arrancar el sistema con el que teníamos anteriormente.

Mucho cuidado con desinstalar el linux-image-generic  ( NO poner sudo apt-get remove--purge linux-image-generic ) que nos inutilizaría el sistema .

Al desinstalar un linux-image en la terminal al final nos sale un mensaje: "al desinstalar linux-image-2.6.20-14-generic, el directorio /lib/modules/2.6.20-14-generic/kernel' no está vacío, por lo que no se borra" ; Una vez desinstalado el linux-image correspondiente podemos desde nautilus con permisos de root borrar completamente la carpeta: /lib/modules/2.6.20-14-generic

------------------------------

Desinstalar "linux-headers":

De forma similar buscamos los linux-headers de los kernel , con el mismo número de los linux-image que hemos eliminado anteriormente, con el siguiente comando:
dpkg --get-selections | grep linux-headers

Nos devolverá una lista con los headers instalados, en la debemos tener en cuenta que hay dos paquetes (en este ejemplo serian: linux-headers-2.6.20-14  y linux-headers-2.6.20-14-generic ) por cada kernel. Eliminaremos los linux-headers de los kernel , con el mismo número de los linux-image que hayamos eliminado anteriormente , con el comando:

sudo apt-get remove --purge linux-headers-2.6.20-14 linux-headers-2.6.20-14-generic

Al igual que con los kernel image,  mucho cuidado con desinstalar el linux-headers-generic  ( NO poner sudo apt-get remove--purge linux-headers-generic ) que nos inutilizaría el sistema .

Al desinstalar un linux-header en la terminal al final nos sale un mensaje: "al desinstalar linux-header-2.6.20-14-generic, el directorio /lib/modules/2.6.20-14-generic' no está vacío, por lo que no se borra" ; Una vez desinstalado el linux-header correspondiente podemos desde nautilus con permisos de root borrar completamente la carpeta: /lib/modules/2.6.20-14-generic

------------------------------------------------------------

10 comentarios:

  1. Información relevante. Muchas gracias Me fué de Gran Utilidad. Saludos!

    ResponderEliminar
  2. Muchas gracias, tengo esta entrada del blog en mis marcadores desde hace tiempo y acudo a ella cada vez que tengo que desinstalar antiguos kernels.
    Saludos

    ResponderEliminar
  3. Perfecto, como siempre,... voy a tirar mi manual de linux y me voy a hacer otro con tus apuntes.
    un saludo.

    ResponderEliminar
  4. Perfecto ....los gurús de Linux no pudieron darme una solución a esto, y es que mi Grub ya parece lista del mandado del supermercado.

    Saludos

    ResponderEliminar
  5. Bueno para practicar con la terminal.
    El centro de programas que se llama Ailurus, que tengo instalado, tiene una pestaña que te dice los núcleos del sistema que tienes y te da opción a desinstalar el que quieras con sólo hacer clic en eliminar.

    ResponderEliminar
  6. No siempre, en todas las distros y todas las versiones, se puede instalar Ailurus. En todas se puede usar la terminal.

    ResponderEliminar
  7. Gracias!!!, muy útil tu información.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.