domingo, 23 de febrero de 2014

Cómo remover kernels antiguos en Fedora

Contrario a otros paquetes en el sistema, a medida que se actualiza el kernel éste no se reemplaza con la versión más reciente, sino que van quedando acumuladas para un posible uso posterior, probar funcionalidades ya no soportadas en kernels recientes o por si un kernel reciente presenta algún fallo que no permite el funcionamiento correcto del sistema y podamos usar uno anterior para diagnosticar el inconveniente.

En Fedora, como en otros sistemas, es posible eliminarlos. Una de las razones por las cuales esto se hacía era por el problema del espacio disponible, pero hoy día los discos son de gran capacidad y eso no es significativo.

Sin embargo, al instalar una distribución dejando el particionamiento automático, es posible que la partición /boot quede con un tamaño relativamente pequeño (unos 477MB en un disco de 1TB), ya que es obvio que sólo tendremos allí el gestor de arranque y los kernels.

Ahora veremos cómo remover esos kernels dejando al menos uno adicional al más reciente para recuperarnos de algún inconveniente de los antes mencionados.

Verificamos cuál es nuestro kernel actual
[fraterneo@rainbow ~]$ uname -r
3.12.11-201.fc19.x86_64
Verificamos todos los kernels instalados incluyendo el actual
[fraterneo@rainbow ~]$ rpm -q kernel
kernel-3.12.8-200.fc19.x86_64
kernel-3.12.9-201.fc19.x86_64
kernel-3.12.11-201.fc19.x86_64
Como podemos observar, a parte del kernel actual tenemos también dos versiones anteriores. Este es el mejor de los casos, ya que pudieran ser más.

Ahora procedemos a remover estos dos haciendo uso del comando package-cleanup, el cual es parte de yum-utils. Si no lo tienes instalado, hazlo ahora: sudo yum install -y yum-utils.

[fraterneo@rainbow ~]$ sudo package-cleanup --oldkernels --count=2
Con el comando anterior estamos ordenando a package-cleanup que remueva todos los kernels, exceptuando los dos más recientes. Por lo que nos quedaría el kernel actual y un kernel anterior adicional.

Si queremos que en lo adelante no se acumulen muchos kernels, podemos editar o agregar el parámetro installonly_limit del fichero /etc/yum.conf con la cantidad a mantener. Por defecto este parámetro tiene un valor de 3.

[fraterneo@rainbow ~]$ sudo echo 'installonly_limit=2' >> /etc/yum.conf

1 comentario:

  1. Hola Claudio.

    Despues de aplicar el comando # man package-cleanup, para ver las opciones disponibles con este comando, no encontrado información adecuada para o la manera de eliminar el kernel mas moderno.

    La razon de querer eliminar el kernel mas moderno, es que he cometido algun error modificando archivos de configuración para instalar el driver privativo de Nvidia.

    Tengo los siguientes:

    kernel-4.0.4-301.fc22.x86_64
    kernel-4.1.5-200.fc22.x86_64
    kernel-4.1.6-200.fc22.x86_64

    Ademas me aparece otro en el arranque que es identico al ultimo, pero en modo Debug, aunque no aparece en la lista.

    Me gustaria borrar el 4.1.6 y el 4.1.5.

    Quisiera no cometer errores experimentando por mi mismo sin saber bien lo que hago o borrar el kernel mas antiguo, ya que es con el que estoy escribiendo ahora mismo.

    Cualquier sugerencia es bienvenida.

    Un saludo desde Tenerife.

    ResponderEliminar