Solución al error "Not enough free disk space. The upgrade has aborted." actualizando 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.
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