Tip: Eliminar un kernel antiguo
26062007Tras 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.
Comentarios
Publicar un comentario