Introducción al Problema de Espacio en Linux
Uno de los dolores de cabeza más comunes para los administradores de sistemas y usuarios avanzados de Linux es encontrarse con el mensaje No queda espacio en el dispositivo (o No space left on device), a pesar de que al revisar el almacenamiento con comandos habituales parece haber gigabytes libres. Este error puede impedir la ejecución de programas, la creación de archivos y la correcta actualización del sistema operativo.
Causas Principales del Error de Espacio
El error no siempre se debe a que hayas llenado tu disco con películas o archivos pesados. Las causas más frecuentes en entornos Linux son:
- Agotamiento total de los inodos (inodes) del sistema de archivos, lo que ocurre al tener millones de archivos muy pequeños.
- Logs del sistema o archivos de diario (journald) descontrolados que ocupan todo el espacio en la partición raíz.
- Archivos borrados pero que siguen siendo retenidos por procesos activos en segundo plano.
Método 1: Liberar Espacio Limpiando los Logs de Journald
Systemd suele almacenar registros que crecen indefinidamente. Para limitar su tamaño y liberar espacio inmediatamente, sigue estos pasos:
- Abre tu terminal de Linux.
- Consulta el espacio actual ocupado por los logs ejecutando el comando:
journalctl --disk-usage - Vacía los logs antiguos reteniendo solo los últimos 2 días con el siguiente comando:
sudo journalctl --vacuum-time=2d
Método 2: Comprobar y Solucionar el Agotamiento de Inodos
Si el disco tiene espacio pero el sistema arroja el error, tus inodos se han agotado. Realiza lo siguiente:
- Verifica el uso de inodos ejecutando en la terminal:
df -i - Identifica qué directorio está consumiendo todos los inodos utilizando:
sudo du --inodes -s /* | sort -hr - Elimina archivos temporales o cachés acumuladas en el directorio afectado para restaurar la tabla de inodos.
Método 3: Identificar Archivos Ocultos Retenidos por Procesos
A veces, eliminas archivos pesados, pero si un proceso sigue abierto, el espacio no se libera. Para solucionar esto:
- Ejecuta el comando para buscar archivos borrados pero abiertos:
sudo lsof +L1 - Identifica el ID del proceso (PID) en la lista resultante.
- Reinicia el servicio o proceso correspondiente, o usa
sudo kill -9 [PID]para forzar su cierre y liberar el espacio en disco de forma definitiva.