Cómo resolver eficazmente el error “No hay espacio disponible en el dispositivo” en Linux
Encontrarse con el mensaje «No hay espacio suficiente en el dispositivo» puede ser realmente frustrante, sobre todo cuando el disco aún parece estar casi vacío. Linux puede ser así de impredecible: a veces no se trata de tener suficiente espacio libre, sino de algún otro problema oculto. Entre las posibles causas se incluyen procesos que aún conservan archivos eliminados, agotamiento de inodos o incluso fallos de hardware. Averiguar cuál es el problema te ahorrará muchos quebraderos de cabeza. Aquí te explicamos cómo solucionarlo sin perder la paciencia.
Cómo solucionar el error «No hay espacio disponible en el dispositivo» en Linux
Asegúrate de que realmente haya espacio; comprueba con du y df.
Este es el primer paso, ya que a veces Linux muestra que no hay espacio cuando en realidad el disco no está lleno. Ejecuta estos comandos en tu terminal:
sudo du -sh /
Te ofrece un resumen rápido del uso total del disco del directorio raíz. La salida puede ser extensa, pero céntrate en el total que aparece en la parte superior. Después, comprueba el espacio libre en tus montajes con:
sudo df -h
Esto muestra cuánto espacio está disponible en los sistemas de archivos montados. Comparar estos resultados ayuda a confirmar si realmente te has quedado sin espacio o si el error se debe a otra causa. A veces, un proceso elimina un archivo muy grande, pero no libera el espacio porque todavía está abierto por otro proceso; por lo tanto, Linux muestra el espacio lleno incluso cuando hay espacio disponible.
Solución 1: Finalizar los procesos que mantienen archivos eliminados
Este es un problema común. A veces, un proceso bloquea un archivo que ya se ha eliminado, y Linux no puede liberar el espacio porque técnicamente todavía está «en uso».Haz lo siguiente:
sudo lsof / | grep deleted
Esto mostrará una lista de los procesos que tienen archivos eliminados aún abiertos. No estoy seguro de por qué funciona, pero en algunos equipos, este comando ayuda a detectar el proceso problemático. Para liberar ese espacio, reinicia el proceso.
sudo systemctl restart your-service-name
Si no conoce el servicio exacto, o si hay varios, puede recargar todas las dependencias del sistema con:
sudo systemctl daemon-reload
Nota: Al reiniciar o recargar, el espacio de almacenamiento ocupado por esos procesos debería liberarse. Normalmente, esto soluciona el problema rápidamente. Sin embargo, en algunas configuraciones, puede que necesite reiniciar para ver el efecto completo, especialmente si hay muchos servicios involucrados.
Solución 2: Comprueba si te has quedado sin inodos.
Esta es una causa menos obvia. Los inodos son como pequeños contenedores de metadatos para cada archivo. Si tienes muchísimos archivos pequeños, podrías alcanzar el límite de inodos antes de que el disco se llene. Para comprobarlo, ejecuta:
sudo df -i
Este comando muestra el total de inodos, los usados y los libres. Si tu sistema tiene 0 inodos libres, ahí está el problema. Eliminar archivos pequeños innecesarios o borrar la caché puede ayudar a liberar inodos. A diferencia del espacio en disco, no puedes generar más: los inodos se asignan al formatear la unidad.
Solución 3: Marcar los sectores defectuosos en el disco
El desgaste del hardware puede provocar sectores defectuosos: áreas del disco físicamente dañadas. Aunque pueden aparecer como espacio libre, en realidad no se pueden leer ni escribir datos en ellas. Para solucionar esto, es necesario arrancar desde un entorno Live y ejecutar una comprobación del sistema de archivos.
sudo fsck -vcck /dev/sda
Reemplace /dev/sdacon la ruta real de su disco duro. Este comando busca sectores defectuosos y los marca como inutilizables, lo que ayuda a prevenir errores al escribir datos. Tenga en cuenta que esto no liberará espacio mágicamente; simplemente protege el sistema de archivos contra la corrupción de datos. Si los sectores defectuosos siguen apareciendo, podría ser necesario realizar una limpieza y, posiblemente, reemplazar el hardware.
Otros consejos que vale la pena probar
- Elimina los archivos de registro o las carpetas de caché que puedan haberse llenado en exceso. Por ejemplo, /var/log o /tmp.
- Revisa tu rutina de limpieza de disco; a veces, los kernels antiguos o las instantáneas de dispositivos consumen gigabytes.
- Si estás utilizando volúmenes específicos, comprueba sus cuotas; puede que el límite esté configurado por debajo de lo esperado.
Descubrir qué error provoca el fallo «No hay espacio disponible» puede requerir algo de prueba y error. Generalmente, los procesos que retienen archivos eliminados o el agotamiento de inodos son las causas más comunes. Ten en cuenta que los problemas de hardware son un asunto aparte y podrían requerir diagnóstico o reemplazo del hardware.
Resumen
- Ejecute sudo du -sh / y sudo df -h para confirmar problemas de espacio.
- Utilice sudo lsof / | grep deleted para identificar los procesos que bloquean los archivos eliminados.
- Reinicia los servicios o procesos problemáticos para liberar espacio.
- Compruebe la disponibilidad de inodos con sudo df -i. Elimine los archivos pequeños si es necesario.
- Ejecute una comprobación del sistema de archivos con sudo fsck -vcck /dev/sda si se sospechan sectores defectuosos.
Resumen
Generalmente, este problema se debe a procesos residuales o límites de inodos. Una vez eliminados, el espacio en disco debería funcionar con normalidad. A veces, requiere algo de investigación y paciencia, pero estos pasos cubren la mayoría de los casos. Esperemos que esto le ahorre a alguien unas cuantas horas de frustración.
Artículos relacionados
¿Te resultó útil este artículo?