Introducción al problema de espacio agotado en Linux
Uno de los dolores de cabeza más comunes para los administradores de sistemas Linux es encontrarse con el mensaje No space left on device al intentar guardar un archivo o instalar un paquete, a pesar de que el comando df -h indica que aún hay gigabytes disponibles. Este fallo suele ocurrir debido al agotamiento de los inodos (inodes) o a la retención de espacio por parte de procesos eliminados pero que siguen activos en memoria.
Causas principales del error 'No space left on device'
Las razones principales por las cuales Linux rechaza la escritura de nuevos datos se deben a dos factores críticos en la gestión de archivos del sistema operativo:
- Agotamiento de Inodos: El sistema de archivos ha creado tantos archivos pequeños (como cachés o sesiones web) que ha superado el límite de inodos disponibles, aunque quede espacio físico en disco.
- Procesos con archivos abiertos eliminados: Se han borrado archivos pesados desde la terminal, pero un servicio o demonio sigue ejecutándose y manteniendo los descriptores de archivo abiertos, impidiendo que el sistema libere el espacio real en el disco duro.
Método 1: Cómo verificar y liberar Inodos agotados
Para comprobar si el problema es la falta de inodos, debes ejecutar el siguiente comando en tu terminal de Linux:
df -inode
Si el porcentaje de uso (IUse%) de alguna partición está al 100%, debes seguir estos pasos para encontrar y eliminar el exceso de archivos pequeños:
- Ejecuta el siguiente comando para identificar qué directorio está consumiendo más inodos:
sudo du --inodes -s /* | sort -hr - Navega hasta el directorio problemático (comúnmente
/var/logo directorios de caché de aplicaciones). - Elimina los archivos innecesarios o vacía los registros antiguos para recuperar inodos disponibles inmediatamente.
Método 2: Liberar espacio retenido por procesos activos
Si los inodos están en niveles normales pero el disco sigue lleno, es muy probable que un proceso esté reteniendo archivos borrados. Sigue estos pasos para solucionarlo:
- Ejecuta el comando para listar archivos eliminados pero aún abiertos por el sistema:
sudo lsof +L1 - Identifica en la salida del comando el PID (Identificador de Proceso) del servicio que está acaparando el espacio.
- Reinicia el servicio afectado para forzarlo a cerrar los descriptores de archivos fantasma, por ejemplo:
sudo systemctl restart nginx(reemplaza 'nginx' por el servicio correspondiente).
Conclusión y prevención
Solucionar el error de espacio en Linux requiere ir más allá de una simple revisión de gigabytes con df. Monitorizar regularmente el uso de inodos y configurar la rotación automática de logs evitará que este molesto problema interrumpa la operatividad de tu servidor o estación de trabajo.