miércoles, 19 de mayo de 2010

Desinstalar kernels en desuso

  Esta es otra de las preguntas que encuentro en la lista de correo y en los foros de Ubuntu-es. Después de varios updates del sistema empiezan a amontonarse los kernels. Esta es la forma de desinstalar los antiguos kernels que vez en los arranques de grub. Explico en esta receta la forma de hacerlo limpiamente.
  Comenzamos buscando el kernel en uso. Necesitamos saber cual es el kernel que estamos usando, lo mas practico seria abrir una consola y teclear dentro:
$ uname -r
2.6.31-21-generic
 Después de esta orden ya hemos identificado el kernel en uso, ahora toca identificar los demás kernels que tengas y no estés usando:

$ sudo dpkg --get-selections | grep linux-image
[sudo] password for tu_usuario:
linux-image-2.6.31-14-generic            deinstall
linux-image-2.6.31-17-generic            install
linux-image-2.6.31-19-generic            install
linux-image-2.6.31-20-generic            install
linux-image-2.6.31-21-generic            install
linux-image-generic                      install
               
  Un consejo, yo suelo dejar dos kernels para poder usar, por si en algún momento con alguna prueba de drivers o cualquier update erróneo no funcionase él que estoy usando, poder usar un kernel anterior y poder hacer el arranque de la maquina sin errores. Se supone que el anterior kernel lo teníais en uso y estaba funcionando perfectamente.
 Ahora con la siguiente orden iremos borrando las imágenes del kernel, tantas repeticiones de la orden como kernels a borrar:

$sudo aptitude remove --purge linux-image-2.6.31-14-generic

 Con esta orden borraras la imagenes del kernel y con el siguiente las headers:

$sudo aptitude remove --purge linux-headers-'uname -r'

 Para asegurar la limpieza de toda configuración en nuestro sistema, hemos añadido el parametro --purge a la orden y debería de borrar todos esos archivos de configuración que puedan dar guerra. Además se realizara un update del grub2 de forma automática, eliminando las entradas del kernel antiguo.
 Una aclaración en ninguna de las circunstancias borrar linux-image-generic, aclaro linux-image-2.6.31-xx-generic si se puede, pero linux-image-generic ¡¡¡¡NO SE PUEDE!!! terminaras rompiéndolo todo, por decir algo. Aclarado todo esto espero te sea útil la receta.
Revisión 0.1(24/05/10)
Hago esta revisión para explicar algunos detalles:
1.- En el momento de borrar dependencias de los kernel's solo tenemos que respetar las dependencias del kernel en uso y estas dependencias solo saldrán si intentamos borrar el kernel que estamos usando.
2.- En el caso de que se os pida borrar configuraciones antiguas de kernel pulsar afirmativamente, ya que no tendréis que volver a usar esta configuración.

2 comentarios:

Anónimo dijo...

Hola!! He seguido este post y a la hora de borrar el kernel más antiguo que tengo (el primero con el que lo intento) me surge el siguiente error en el terminal:

sudo aptitude remove --purge linux-image-2.6.28-11-generic
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Los siguientes paquetes están ROTOS:
linux-restricted-modules-2.6.28-11-generic
Se ELIMINARÁN los siguientes paquetes:
linux-image-2.6.28-11-generic
0 paquetes actualizados, 0 nuevos instalados, 1 para eliminar y 3 sin actualizar.
Necesito descargar 0B de ficheros. Después de desempaquetar se liberarán 112MB.
No se satisfacen las dependencias de los siguientes paquetes:
linux-restricted-modules-2.6.28-11-generic: Depende: linux-image-2.6.28-11-generic pero no es instalable
Las acciones siguientes resolverán estas dependencias

Eliminar los paquetes siguientes:
linux-restricted-modules-2.6.28-11-generic

La puntuación es 119

¿Acepta esta solución? [Y/n/q/?]

No me atrevo a aceptar la solución por miedo a romper dependencias y generar más problemas. Imagino que al ser un kernel en desuso no habría problema, pero preferiría asegurarme antes de aceptar.
Muchas gracias y adelante con el blog, que es muy útil y está muy bien!

arriero dijo...

Haber por estas cosas, muchas veces intento meter comentarios que algunas veces parecen chorras.
Comentario:
""Un consejo, yo suelo dejar dos kernels para poder usar, por si en algún momento con alguna prueba de drivers o cualquier update erróneo no funcionase él que estoy usando, poder usar un kernel anterior y poder hacer el arranque de la maquina sin errores.""

Esto que quiere decir que puedes borrarlo todo exceptuando lo que te hago notar, no te preocupes ya que los kernels no suelen tener dependencias entre ellos y los linux-restrictes-modules son independientes para cada versión de kernel, pero toma como una norma de prohibición de no borrar nunca bajo ningún concepto linux-image-generic, por lo demás puedes borrar todo lo que no sea el kernel en uso y sus dependencias propias, lo demás es borrable todo.