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.

Más tips entre tuxes y pepinos

Acciones

Information

27 responses

26 06 2007
marcgenou

no lo he leido entero pero en ubuntu feisty son 4 paquetes por kernel y solo hablar del nucleo y los headers, faltan los restricted por ejemplo que los usa muchisima gente

26 06 2007
CeeC

Buenas marcgenou.

Los «restricted» son dependientes del «image». Cuando haces el «aptitude purge» los primeros se eliminarán junto a los segundos, y si no me equivoco con Synaptic también, por lo que no hace falta ir uno por uno. Los «headers» sin embargo sí hay que hacerlo aparte.

Saludos.

26 06 2007
Jose

Me resulta útil, yo de tantos kernels que tengo ya no veo ni el Windows en la pantalla del grub… ups, se me ha escapado que también tengo Windows 😉

30 06 2007
sitositos

Que grande… todo muy bien, excelente tio!

22 07 2007
DiegO!!!

Buenas… como actualizo el kernel?

22 07 2007
DiegO!!!

al hacer un uname -r me dice

2.6.20-16-generic

entre en la pagina http://www.kernel.org/

y baje 2.6.22-rc6-mm1.bz2

me conviene actualizar el kernel?

22 07 2007
CeeC

El kernel se actualiza sólo mediante las actualizaciones automáticas (te avisará al lado del reloj) o bien mediante un «sudo aptitude upgrade» en consola. Una vez bajado te pedirá que reinicies.

Saludos.

31 12 2007
Jose

Hola, he hecho lo que dices y me sale un mensaje diciendo que el directorio /lib/modules/2.6.10-5-386 no está vacío. Dentro de dicho directorio sólo hay un archivo llamado modules.seriomap. ¿Se puede borrar? Gracias y felicidades por el blog.

2 01 2008
CeeC

Hola Jose.

¿En qué momento exactamente te da ese mensaje?

Saludos.

29 05 2008
Mike

Hola a todos,
me sale el mismo mensaje que a Jose, pero a mi con el kernel linux-image-2.6.22-14-generic

C&P:

Updating /boot/grub/menu.lst … done

rmdir: No se pudo eliminar `/lib/modules/2.6.22-14-generic’: El directorio no está vacío
dpkg – atención: al desinstalar linux-image-2.6.22-14-generic, el directorio /lib/modules/2.6.22-14-generic/kernel/drivers/char/drm’
no está vacío, no se borra.
dpkg – atención: al desinstalar linux-image-2.6.22-14-generic, el directorio /lib/modules/2.6.22-14-generic/kernel/drivers/char’
no está vacío, no se borra.
dpkg – atención: al desinstalar linux-image-2.6.22-14-generic, el directorio /lib/modules/2.6.22-14-generic/kernel/drivers’
no está vacío, no se borra.
dpkg – atención: al desinstalar linux-image-2.6.22-14-generic, el directorio /lib/modules/2.6.22-14-generic/kernel’
no está vacío, no se borra.
dpkg – atención: al desinstalar linux-image-2.6.22-14-generic, el directorio /lib/modules/2.6.22-14-generic’
no está vacío, no se borra.

Sospecho que es debido a que se recompiló el kernel al instalar los drivers de algunos componentes como la tarjeta gráfica nvidia… y creo que no pasa nada por borrarlos, ya que no voy a volver a usar el kernel que estoy eliminando, pero me gustaría contrastar.

Gracias y un saludo

31 05 2008
CeeC

Si el driver que necesitas ya está compilado y funcionando con el kernel que usas normalmente, puedes borrar sin miedo el otro.

Saludos.

7 06 2008
Soy Nuevo: Como eliminar un kernel antiguo « OcioLinux

[…] 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 […]

24 06 2008
feryx

HOla ceec. el borrar versiones antiguas de kernel, ¿implica liberar espacio significativo en disco rígido?
saludos.

24 06 2008
feryx

Perdón por la reiteración. Pregunté antes de realizar esta tarea y luego de hacerla me doy cuenta que sí se libera espacio significativo en el disco. Mi nueva pregunta es: al aceptar esta «desinstalación» de kernel antiguo me pregunta «si, no, cancelar» o algo así, pero también coloca una puntuación. ¿a qué se refiere la puntuación esta?

24 06 2008
CeeC

Hola feryx.

Es la proposición de resolución de dependencias. Si estás seguro que estás eliminado el kernel que quieres desinstalar, simplemente dile que sí.

Saludos.

24 06 2008
Queni

lo único malo es que ahora vuelvo a ver a windows en mi GRUB :@

24 06 2008
feryx

Gracias Ceec. Ya tengo mi grub andando a mil!!!

12 05 2009
Problemas con actualizacion del kernel en ubuntu - Foros de CHW

[…] el que te funciona bien y cuando hagas una actualizacin te fijas para no volver a instalarlo … Tip: Eliminar un kernel antiguo Entre tuxes y pepinos pd: me sorprende que le quieras dar soporte a un ubuntu user… jajajaja… chao enfermo […]

24 07 2009
darkmaster4130

Una pregunta por interes, despues de borrarme el kernel mas antiguo, cuando voy a borrar las cabeceras del kernel, no estan, solo aparecen las del kernel que deje, es normal?

PD: Uso Ubuntu 9.04
PD2: Deje los dos kernel’s mas nuevos, esto no tiene nada q ver, solo lo puse y ya!
PD3: No me baneen por la PD2.

Grax amigo, excelente tu blog, me gusta mucho.

2 07 2010
Covi

No sé desde qué versión pero creo que al borrar el kernel ahora también se borran las cabeceras automáticamente.

20 03 2011
Vector_Rain

En la versión 10.04 hay que desistalar a mano tanto ‘image’ como ‘headers’
Contestando a «darkmaster4130», la primera imagen de kernel (la mas antigua), no tiene headers porque por defecto, cuando instalas ubuntu, no las incluye.

20 12 2010
Brandon

¿Cómo sé cuál kernel se está usando? Tengo varias versiones y la que acabo de actualizar fue ii linux-image-2.6.35-24-generic.

Las otras que me aparecen son:

rc linux-image-2.6.32-21-generic
rc linux-image-2.2.32-25-generic
rc linux-image-2.6.32-26-generic
ii linux-image-2.6.35-23-generic

Un punto importante es que la anterior versión del kernel antes de actualizar fue la 2.6.35-23-generic

Debo desinstalar todas las que me aparecen? (Claro, sin desinstalar la actualizada)

5 03 2011
Daniel

gracias sirvió al pelo!! jejejej buen blog 😉

11 10 2011
pajarete

linux se la come doblada

8 01 2012
Alexa

Hola a todos!!…….tengo Ubuntu 10.04 con las ultimas actualizaciones del kernel hasta la fecha de hoy y he hecho todos los pasos para eliminar mis antiguos kernels de mi grub………….pero no ha funcionado, sigo viéndolos al reiniciar el sistema(aunque parece que si se desinstalaron del disco duro)……después quise ocultarlos en la lista del grub……pero no encuentro el dichoso archivo menu.lst dentro de la carpeta Grub………..así que tampoco pude ocultarlos 😦

Alguien sabe por que ocurre esto?…….. por cierto soy novata en Ubuntu pero aprendo bien rápido. 🙂

3 11 2015
Liberar espacio en la partición de sistema / ubuntu » Software Libre y Comunicación

[…] del siguiente paso te recomiendo que leas: Ocultar la kernel antiguo del menú de grub sin desinstalarlo para prevenir posibles borrados accidentales del kernel que te funcionaba […]

22 03 2020
Liberar espacio en la partición de sistema / ubuntu » Conocimiento Libre y Comunicación

[…] del siguiente paso te recomiendo que leas: Ocultar la kernel antiguo del menú de grub sin desinstalarlo para prevenir posibles borrados accidentales del kernel que te funcionaba […]

Deja un comentario