ENOSPC (errno 28)
errno 28
Mensaje oficial (tal como aparece en pantalla): No space left on device
También se busca como: No space left on device, errno 28, ENOSPC: System limit for number of file watchers reached
Qué significa
ENOSPC, 'No space left on device' (errno 28), significa que una escritura falló porque el sistema de archivos no tiene espacio. Puede deberse a que no quedan bloques libres, a que no quedan inodos libres o, de forma confusa, a que se ha agotado el límite de vigilancias de inotify (habitual con los observadores de archivos de Node.js).
Se aplica a: Linux, macOS (BSD errno), WSL, Contenedores Docker
Cómo solucionar ENOSPC (errno 28)
- Comprueba el espacio libre con 'df -h' y los inodos libres con 'df -i'; cualquiera de los dos al 100 % provoca ENOSPC
- Localiza los directorios grandes con 'sudo du -xh / --max-depth=2 | sort -h | tail -20'
- Limpia lo que sea seguro: registros antiguos ('journalctl --vacuum-size=200M'), cachés de paquetes ('apt clean') y datos de Docker ('docker system prune')
- Si 'df' muestra espacio pero al borrar no se libera, un proceso mantiene abierto un archivo eliminado: encuéntralo con 'lsof +L1' y reinicia ese proceso
- Si muchos archivos diminutos agotan los inodos, elimínalos o archívalos (los directorios de sesiones o de caché son típicos)
- Para errores de observadores ('System limit for number of file watchers reached'), aumenta 'fs.inotify.max_user_watches' con 'sudo sysctl fs.inotify.max_user_watches=524288' y hazlo persistente en /etc/sysctl.d/
- Recuerda que ext4 reserva por defecto cerca del 5 % de los bloques para root; los usuarios normales reciben ENOSPC antes de que 'df' llegue al 100 %
Por qué ocurre
Las escrituras necesitan tanto bloques de datos como inodos. Las causas son discos llenos, agotamiento de inodos por muchos archivos pequeños, archivos eliminados pero abiertos, límites tipo cuota y el límite de vigilancias de inotify (que también devuelve ENOSPC).
Preguntas frecuentes
¿Por qué recibo 'No space left on device' si df muestra espacio libre?
Revisa los inodos con 'df -i', busca archivos eliminados que sigan abiertos con 'lsof +L1' y comprueba si el error es en realidad el límite de vigilancias de inotify.
¿Cómo soluciono ENOSPC en Node.js o en la vigilancia de archivos de VS Code?
Aumenta fs.inotify.max_user_watches con sysctl; es un límite de observadores, no de espacio en disco.
Errores relacionados
Fuente: Linux kernel errno.h · soluciones redactadas y revisadas por los editores (consulta nuestra política editorial)
Última actualización: