Introducción al error 'No space left on device' en Linux
Uno de los problemas más frustrantes a los que se enfrentan los administradores de sistemas y usuarios habituales de Linux es el mensaje No space left on device. Este error ocurre cuando la partición raíz (/) u otro punto de montaje se queda completamente sin espacio disponible, impidiendo la escritura de nuevos archivos, la ejecución de servicios e incluso el inicio de sesión en el sistema.
Causas principales de la falta de espacio en Linux
Existen diversos motivos por los cuales una distribución Linux como Ubuntu o Debian puede quedarse sin almacenamiento de manera repentina:
- Acumulación excesiva de logs y archivos de registro en el directorio
/var/log. - Caché de paquetes obsoleta acumulada por el gestor de paquetes
APT. - Archivos grandes eliminados pero que siguen siendo retenidos por procesos activos en segundo plano.
- Uso excesivo de Docker con contenedores, imágenes y volúmenes huérfanos.
Método 1: Limpiar la caché y paquetes huérfanos de APT
El gestor de paquetes suele almacenar archivos .deb descargados que ya no son necesarios. Para limpiar la caché y liberar espacio rápidamente, ejecuta los siguientes comandos en tu terminal:
sudo apt-get cleanpara eliminar completamente la caché de paquetes descargados.sudo apt-get autoremove --purgepara desinstalar dependencias huérfanas que ya no se utilizan en el sistema.sudo apt-get autocleanpara borrar archivos de paquetes antiguos que ya no se pueden descargar.
Método 2: Liberar espacio eliminando archivos de logs pesados
Los archivos de registro pueden crecer desmedidamente hasta saturar el disco duro. Puedes verificar qué directorios están ocupando más espacio utilizando el comando du:
sudo du -sh /var/log/* | sort -hr
Una vez identificado el directorio o archivo pesado, puedes vaciarlo de forma segura (sin borrar el archivo en sí para evitar errores en los servicios) usando:
sudo truncate -s 0 /var/log/syslog
Método 3: Identificar procesos que retienen archivos eliminados
A veces, aunque hayas borrado archivos grandes, el espacio no se libera porque algún proceso sigue manteniéndolos abiertos. Para listar estos archivos fantasmas, ejecuta:
sudo lsof +L1
Revisa la lista obtenida y reinicia el servicio correspondiente o finaliza el proceso con sudo kill -9 [PID] para que el sistema operativo libere finalmente los bloques de disco ocupados.