¿Qué significa el error No space left on device en Linux?
El error No space left on device en Linux es uno de los problemas más frustrantes para administradores de sistemas y usuarios avanzados. Ocurre cuando el sistema operativo no puede escribir nuevos archivos o datos en el disco duro. Sin embargo, este fallo no siempre indica que el disco esté lleno de gigabytes; a menudo, la causa raíz es el agotamiento de los inodos o la presencia de archivos eliminados pero retenidos por procesos activos.
Causas principales del error en distribuciones Linux
Antes de aplicar cualquier solución, es importante entender qué origina este bloqueo en terminal:
- Agotamiento total del espacio en las particiones principales (como / o /home).
- Saturación de la tabla de inodos debido a la creación masiva de archivos pequeños (cachés, sesiones web, etc.).
- Archivos borrados pero que siguen abiertos y consumiendo espacio por procesos en segundo plano.
- Acumulación excesiva de logs antiguos en directorios como
/var/log.
Método 1: Comprobar el espacio real y liberar particiones llenas
El primer paso es identificar qué partición ha alcanzado el 100% de ocupación ejecutando el comando de análisis de almacenamiento.
- Abre tu terminal de Linux.
- Ejecuta el siguiente comando para ver el uso de disco por partición:
df -h - Localiza la partición con un uso del 100% y busca directorios pesados usando el comando:
sudo du -sh /* | sort -hr - Elimina archivos temporales o innecesarios para liberar espacio inmediatamente.
Método 2: Verificar y solucionar el agotamiento de Inodos
Si el comando df -h muestra espacio disponible pero sigues sin poder crear archivos, el problema es que te has quedado sin inodos (estructuras que almacenan los metadatos de los archivos).
- Comprueba el uso de inodos ejecutando en la terminal:
df -i - Si alguna partición muestra un 100% en la columna
IUse%, significa que hay miles de archivos pequeños (como cachés o sesiones PHP). - Identifica qué directorio está consumiendo los inodos con:
sudo find / -xdev -printf '%h ' | sort | uniq -c | sort -k 1 -n - Limpia directorios afectados borrando archivos antiguos o basura acumulada.
Método 3: Liberar espacio de archivos eliminados pero retenidos por procesos
A veces, eliminas archivos grandes (como logs), pero si un proceso sigue utilizándolos, Linux no libera el espacio en disco.
- Ejecuta el siguiente comando para listar archivos borrados pero aún abiertos:
sudo lsof +L1 - Identifica el ID del proceso (PID) en la salida del comando anterior.
- Reinicia el servicio o proceso correspondiente, o mátalo con el comando:
sudo kill -9 [PID] - Verifica nuevamente el espacio libre con
df -hpara confirmar que el problema ha sido resuelto con éxito.