Soy Nuevo: Como eliminar un kernel antiguo

Como ya sabreis, todo el software de nuestro linux no para de actualizarse, y a un ritmo impresionante. El kernel (nucleo del sistema) no iba a ser menos y desde la instalacion limpia que hice para pasarme a Ubuntu Hardy Heron, hoy sera la cuarta version del kernel que voy a tener. Nada mas instalar Hardy, viene con la version 2.6.24.16 y ahora ya esta disponible para actualizar hasta la version 2.6.24.19.

Cada uno vera si se atreve a actualizar a un kernel nuevo o no. En un principio no deberia haber ningun problema, pero ya sabeis que siempre existe un riesgo. De todas formas, yo siempre pienso que es mejor guardar tambien la version vieja por si la nueva se vuelve inestable. Asi, si hay algun problema, quitas la nueva y ya esta.

La cuestion es que segun vas actualizando vas acumulando mas y mas versiones del kernel. El hecho de tenerlos todos instalados no implica ningun problema, pero quiza te resulte molesto el menu del GRUB ya que ahi es donde se van añadiendo las entradas de los distintos kernels para que elijas con cual quieres iniciar el ordenador.

Con este sencillo tip que he leido en Entre Tuxes y Pepinos sera pan comido eliminas u ocultar las versiones del kernel que no nos interese tener (recuerda, yo recomendaria tener una version vieja que hayamos comprobado que es estable de respuesto, por si acaso.):

Tip: Eliminar un kernel antiguo

26 06 2007

Tras algunas actualizaciones se nos puede instalar un nuevo kernel (núcleo) de Linux a una versión más moderna. Tras reiniciar habréis comprobado que en el grub os aparecen varias entradas de distintos kernels, esto es debido a que el kernel no se actualiza tal cual, sino que nos instala una nueva versión conservando la antigua.

Si lleváis mucho tiempo con el mismo sistema y habéis actualizado el kernel varias veces tendréis una lista bastante larga en el grub, algo que puede resultar molesto. ¿Queréis eliminar las versiones antiguas?

Antes de comenzar

He de avisaros que para los novatillos es recomendable tener al menos dos versiones distintas instaladas, la más actual que se nos haya podido instalar ayer mismo, y la previa que usábamos hasta entonces. El motivo es simple: si por cualquier circunstancia nos cargamos el último kernel (que normalmente es el que usaréis), siempre tendréis el previo disponible para iniciar el ordenador y enmendar el error.

Los usuarios medios o avanzados que se vean con conocimientos suficientes para enfrentar esa posible situación, pueden quedarse con uno sólo si así lo desean, o bien ocultar la versión previa como os mostraré al final.

Eliminar kernel antiguo

Es sencillo. Vamos a la consola y buscamos los kernels que tenemos instalados:

$ sudo dpkg -l | grep linux-image

Nos saldrá una lista parecida a esta (según vuestro sistema operativo x86, 64bits, versión del kernel…):

linux-image-2.6.20-15-generic
linux-image-2.6.20-16-generic
linux-image-generic

He acortado la salida, os saldrá también la versión completa (junto con su revisión) y una breve descripción, por cada paquete. Bien, ahora vamos a desinstalar el kernel 2.6.20-15 que es el más antiguo:

$ sudo aptitude purge linux-image-2.6.20-15-generic

Recordad que tenéis el tabulador para que os vaya complementando el nombre, acostumbraros a usarlo pues es muy práctico en el uso de la consola.

Ahora vamos a desinstalar las cabeceras del kernel eliminado. Al igual que antes vemos cuales tenemos instaladas:

$ sudo dpkg -l | grep linux-headers

Y nos dará una salida similar a esta (salvando versiones como comenté antes):

linux-headers-2.6.20-15
linux-headers-2.6.20-15-generic
linux-headers-2.6.20-16
linux-headers-2.6.20-16-generic
linux-headers-generic

Vemos que tenemos dos paquetes por cada versión, pero sólo desinstalaremos uno, el otro se desinstalará sólo al ser dependiente del primero:

$ sudo aptitude purge linux-headers-2.6.20-15

Una vez hecho esto, se habrá eliminado automáticamente del grub las dos entradas que correspondían a la versión 2.6.20-15 del kernel.

Como siempre todo esto podéis hacerlo también gráficamente. El proceso es el mismo pero usando Synaptic. Buscáis los nombres que os he indicado (linux-image y linux-headers) y os aparecerá con un cuadro en verde los instalados. Os fijáis en la versión y desinstaláis la que queráis.

Ocultar la kernel antiguo del menú de grub sin desinstalarlo

Esta es una buena alternativa para los que sólo queráis el último kernel en el menú de grub y a la vez queráis conservar el antiguo por si hay algún problema con el más nuevo.

Abrid con derechos de administrador el archivo /boot/grub/menu.lst, bien sea con “Alt+F2” y tecleando dentro “gksu gedit /boot/grub/menu.lst” o bien desde consola:

$ sudo gedit /boot/grub/menu.lst

Ahora iros al final del fichero e id subiendo. Veréis que están las distintas entradas que os aparece en el menú ordenadas en secciones. Buscad las dos que contienen la versión del kernel que queréis ocultar. Siguiendo con el ejemplo sería la 2.6.20-15. Podréis identificarlo porque dicha versión aparece en el title, kernel e initrd.

Una vez localizadas las dos secciones, ponemos una almohadilla (#) al comienzo de cada línea de cada sección. Os quedará algo parecido a esto:

#title Ubuntu, kernel 2.6.20-15-generic
#root (hd0,1)
#kernel /boot/vmlinuz-2.6.20-15-generic
#root=UUID=……
#initrd /boot/initrd.img-2.6.20-15-generic

#title Ubuntu, kernel 2.6.20-15-generic (recovery mode)
#root (hd0,1)
#kernel /boot/vmlinuz-2.6.20-15-generic
#root=UUID=……
#initrd /boot/initrd.img-2.6.20-15-generic

Lo que hemos hecho es comentarlo para que grub no lo interprete y no lo muestre. Cuando lee estas líneas y ve la almohadilla, pasa automáticamente a la siguiente, no lo considera como parte del “código“.

Si algún día os cargáis el kernel actual y queréis iniciar este otro que está oculto, tan sólo tenéis que iniciar con un Live CD, montar la partición y quitar las almohadillas para que vuelva a aparecer en el grub la próxima vez que iniciéis el ordenador.

—————————————————

Quiero añadir un detalle a esta completisima explicacion en lo referente a la desinstalacion del kernel. Solamente comentar que, para aquellas personas que no se sientan comodas utilizando la consola como yo, todo esto es posible hacerlo desde synaptic. Simplemente accedeis a synaptic y buscais:

linux-headers

y tambien:

linux-image

De los resultados que os aparezcan, las versiones instaladas estaran en verde, y borrais (“marcar para eliminar completamente”) las versiones que no querais conservar de las 2 busquedas que habeis realizado.

Teneis mas detalles del funcionamiento de Synaptic en este otro articulo que escribi hace poco.

3 comentarios

  1. Está excelente yo ya lo voy a probar y les comento, que ya lo daba yo por hecho; que se podia hacer de alguna manera…
    Saludos desde: http://www.trucoswindows.net especial agradecimiento a Vera (Moderadora) de ese foro por mandarme aquí.
    Gracias!!

  2. Lo hice desde consola, es mas facil y rapido ya que copias y pegas lo que en tu blog pusiste (con cuidado de no borrar el ultimo kernel es decir no poner el numero del ultimo) Cuando uno tiene 3 kernel conviene dejar los 2 ultimos , pero en mi caso borre todos y deje el ultimo (para ahorrar espacio jeje) medio kamikaze pero me tengo fe

    Luego comprobé que efectivamente estaba bien el menu.lst, por las dudas

    gracias

  3. En mi caso me marca esto:

    [joker@itorizaba ~]$ sudo rpm -l | grep linux-image
    [sudo] password for lot:
    joker is not in the sudoers file. This incident will be reported.

    cuando lo aplico a fedora 9, o al menos que sea con otra instruccion y si me podrian decir cual sería esa instruccion.

    saludos..

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: