Solución al error "Not enough free disk space. The upgrade has aborted." actualizando Ubuntu

Author
Por Darío Rivera
Publicado el en Ubuntu

Hoy mismo hemos redactado otro artículo sobre Cómo actualizar Ubuntu a 22.10 desde 22.04 y hemos obtenido un par de problemas en el proceso. Uno de ellos ha ocurrido por el hecho de tener poco espacio en la partición /boot y el output que arroja el proceso de actualización es similar al siguiente:

Not enough free disk space

The upgrade has aborted. The upgrade needs a total of 433 M free space on disk '/boot'. Please free at least an additional 122 M of disk space on '/boot'. You can remove old kernels using 'sudo apt autoremove' and you could also set COMPRESS=xz in /etc/initramfs-tools/initramfs.conf to reduce the size of your initramfs.

La buena noticia, es que es relativamente sencillo solucionar. Vamos a realizar un par de configuraciones que puedes realizar para obtener el espacio necesario.

Antes de comenzar con cada una de las soluciones debes ingresar como root al sistema para evitar digital en todos los comandos sudo.

sudo su

Compresión del initramfs

Para editar la forma en que se comprime el initramfs podemos utilizar un editor de texto como nano o vim y abrir el siguiente archivo.

vim /etc/initramfs-tools/initramfs.conf

Busca la línea con para configurar la compresión COMPRESS y modifícala para que tenga el valor xz. Si la línea está comentada también debes eliminar el caracter #.

COMPRESS=xz

Guarda los cambios y actualiza el initramfs.

update-initramfs -u

Finalmente ejecuta el siguiente comando para borrar cualquier kernel antiguo en tu sistema.

apt autoremove

Eliminación de Kernels antiguos

En primer lugar puedes verificar la versión del kernel que está actualmente usando tu sistema.

root@server:/# uname -r
5.19.0-40-generic

Esto te servirá para contrastar otras versiones posiblemente instaladas del kernel en tu sistema. Para listar todas las versines instaladas puedes usar el siguiente comando:

root@server:/# dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep ii
ii  linux-image-4.19.0-16-cloud-amd64 4.19.181-1  amd64  Linux 4.19 for x86-64 cloud (signed)
ii  linux-image-4.19.0-22-cloud-amd64 4.19.260-1  amd64  Linux 4.19 for x86-64 cloud (signed)
ii  linux-image-4.19.0-23-cloud-amd64 4.19.269-1  amd64  Linux 4.19 for x86-64 cloud (signed)

Como puedes ver en este caso hay tres versiones del kernel de Linux instaladas. Es recomendable dejar solamente las dos últimas. Así que podemos fácilmente eliminar la más antigua.

update-initramfs -d -k 4.19.0-16-cloud-amd64

Aún así puedes intentar ejecutar dpkg para eliminar cualquier rastro del kernel si lo hubiere.

dpkg --purge 4.19.0-16-cloud-amd64

Después de esto puedes verificar listando el contenido de la carpeta /boot en busca de cualquier archivo antiguo del kernel.

Listado de archivos dentro de la carpeta /boot

Si es el caso y encuentras un archivo como se muestra a continuación con la terminación .old podrás eliminar el archivo asociado de manera segura.

rm /boot/initrd.img-5.15.0-25-generic
rm vmlinuz-5.15.0-25-generic

Enseguida en términos de dejar todo consistente, ejecuta el siguiente comando para actualizar el GRUB y eliminar esas entradas innecesarias del menú de selección cuando arranca tu máquina.

update-grub

Finalmente puedes ejecutar la siguiente serie de comandos para arreglar cualquier paquete roto o paquetes no utilizados en tu sistema.

apt install -f
dpkg --configure -a
apt autoremove

Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.