Cómo actualizar una instalación Linux cuando no tenemos espacio libre en disco

En Backup doméstico seguro con Linux, cifrado y ZFS (VII): Volvemos a la tarjeta microSD original nos quedábamos usando una tarjeta microSD de 4 Gigabytes. Tras completar todo el proceso, le quedan unos 300 Megabytes de espacio libre.

Esa cantidad es suficiente para el día a día de esa máquina y para muchas actualizaciones del sistema operativo, pero una actualización completa del kernel de Linux necesita más de 400 Megabytes de espacio libre.

Hago los siguientes pasos para poder realizar una actualización pesada:

  1. Utilizo un disco RAM, tal y como se describe en Disco RAM en Linux, como espacio de descarga de las actualizaciones:

    # mount -t ramfs none /var/cache/apt/archives/
    
  2. Eliminamos los ficheros de cabeceras del kernel que vamos a sustituir:

    # apt-get remove linux-headers-generic
    # apt-get autoremove
    

    Esta operación libera unos 90 Megabytes en la microSD.

  3. Actualizo el sistema:

    # apt-get dist-upgrade
    

    Esta operación descargará unos 54 Megabytes en el disco RAM e instalará 244 Megabytes en la tarjeta microSD. Nos quedarán libres unos 100 Megabytes.

  4. Ahora queremos borrar el kernel antiguo, pero es el que está funcionando en estos momentos. Tendremos que reiniciar el ordenador primero para que arranque con el kernel nuevo.

    # reboot
    
  5. Una vez reiniciado, comprobamos qué versión del kernel estamos usando y nos aseguramos de que sea el último, el que acabamos de instalar:

    # uname -a
    
  6. Ahora podemos borrar todo rastro del kernel antiguo:

    # apt-get remove linux-headers-4.15.0-17 linux-headers-4.15.0-17-generic \
                     linux-image-4.15.0-17-generic linux-modules-4.15.0-17-generic \
                     linux-modules-extra-4.15.0-17-generic
    
  7. Instalamos las cabeceras del kernel que eliminamos en un paso anterior. Instalará la última versión, correspondiente al kernel actual.

    # apt-get install linux-headers-generic
    

    Nota

    Dependiendo de cómo vayamos de espacio, puede ser buena idea volver a usar un disco RAM para descargar el paquete, como se explicó al principio.

  8. Hacemos limpieza:

    # apt-get clean
    # apt-get autoclean
    # apt-get autoremove
    

Todo esto lo hago porque la máquina está en remoto. En una visita presencial futura debería reemplazar la tarjeta microSD de 4 Gigabytes por una de 8 Gigabytes...

Nota

Se puede recuperar bastante espacio haciendo limpieza en el directorio /var/log/, sobre todo en /var/log/journal/.

Podemos hacer algo tipo:

# find /var/log/ -type f -ctime +1 -exec rm {} \;

Advertencia

Ojo, este comando es peligroso. No lo ejecutes a ciegas sin saber lo que va a hacer.