Introducción
Uno de los problemas más desconcertantes para los administradores de sistemas y usuarios avanzados de Linux ocurre cuando el sistema operativo arroja errores de 'No space left on device' (No hay espacio restante en el dispositivo), pero al ejecutar el comando df -h se observa que las particiones aún tienen gigabytes disponibles. Este fenómeno ocurre cuando se agotan los inodos.
¿Qué son los inodos y cuáles son las causas del error?
En los sistemas de archivos basados en Unix/Linux (como ext3, ext4), un inodo es una estructura de datos que almacena información sobre los archivos (metadatos), excluyendo su nombre y contenido real. Cada archivo, directorio o enlace simbólico consume un inodo. Si tu sistema genera una cantidad masiva de archivos pequeños (como sesiones de PHP, cachés de aplicaciones, correos electrónicos no leídos o registros de logs), puedes agotar la tabla de inodos antes de llenar la capacidad física del disco duro.
Método 1: Identificar qué directorio está consumiendo todos los inodos
El primer paso para resolver el problema es localizar exactamente dónde se está acumulando la gran cantidad de archivos pequeños. Para ello, utilizaremos una combinación de comandos en la terminal.
- Abre tu terminal de Linux con permisos de superusuario.
- Ejecuta el siguiente comando para listar el uso de inodos por cada sistema de archivos:
df -i - Identifica la partición que muestra un uso del 100% (o cercano) en la columna
IUse%. - Navega hasta la raíz de esa partición y ejecuta este bucle para encontrar el directorio con más inodos consumidos:
sudo du --inodes -s /* | sort -hr
Método 2: Limpiar archivos temporales y cachés masivas
Una vez identificado el directorio culpable (comúnmente /var/log, /var/spool o directorios node_modules), debes proceder a eliminar el exceso de archivos pequeños.
- Si el problema está en los logs del sistema, vacía los registros antiguos:
sudo journalctl --vacuum-time=1d - Si son archivos temporales de sesión, elimínalos de forma segura:
sudo find /var/lib/php/sessions/ -type f -mmin +1440 -delete - Reemplaza la ruta anterior según el directorio afectado que encontraste en el Método 1.
Método 3: Optimizar o redimensionar la tabla de inodos (Solución avanzada)
Si tu sistema operativo requiere permanentemente almacenar millones de archivos pequeños y la limpieza no es suficiente, la única solución a largo plazo es respaldar la partición, formatearla asignando un mayor número de inodos mediante el comando mkfs.ext4 -N y restaurar los datos.
Con estos sencillos pasos habrás recuperado el control de tu sistema Linux y solucionado el error de inodos llenos de manera definitiva.