ENOSPC (errno 28)
errno 28
Message officiel (tel qu'affiché à l'écran) : No space left on device
Aussi recherché sous la forme : No space left on device, errno 28, ENOSPC: System limit for number of file watchers reached
Ce que cela signifie
ENOSPC, « No space left on device » (errno 28), signifie qu’une écriture a échoué faute de place sur le système de fichiers. Cela peut désigner un manque de blocs libres, un manque d’inodes libres ou, de façon trompeuse, l’épuisement de la limite de surveillances inotify (fréquent avec les surveillants de fichiers de Node.js).
S'applique à : Linux, macOS (errno BSD), WSL, Conteneurs Docker
Comment corriger ENOSPC (errno 28)
- Vérifiez l’espace libre avec 'df -h' et les inodes libres avec 'df -i' ; l’un ou l’autre à 100 % provoque ENOSPC
- Repérez les gros répertoires avec 'sudo du -xh / --max-depth=2 | sort -h | tail -20'
- Nettoyez les cibles sûres : anciens journaux ('journalctl --vacuum-size=200M'), caches de paquets ('apt clean') et données Docker ('docker system prune')
- Si 'df' indique de la place mais que les suppressions ne la libèrent pas, un processus garde encore ouvert un fichier supprimé : trouvez-le avec 'lsof +L1' et redémarrez ce processus
- Si de très nombreux petits fichiers épuisent les inodes, supprimez-les ou archivez-les (répertoires de sessions ou de cache, typiquement)
- Pour les erreurs de surveillance (« System limit for number of file watchers reached »), augmentez 'fs.inotify.max_user_watches' avec 'sudo sysctl fs.inotify.max_user_watches=524288' et rendez le réglage permanent dans /etc/sysctl.d/
- Rappelez-vous que ext4 réserve par défaut environ 5 % des blocs à root ; les utilisateurs normaux obtiennent ENOSPC avant que 'df' n’atteigne 100 %
Pourquoi cela se produit
Une écriture nécessite à la fois des blocs de données et des inodes. Disques pleins, épuisement des inodes par de nombreux petits fichiers, fichiers supprimés mais encore ouverts, limites de type quota et limite de surveillances inotify (qui renvoie aussi ENOSPC) en sont les causes.
FAQ
Pourquoi ai-je « No space left on device » alors que df indique de l’espace libre ?
Vérifiez les inodes avec 'df -i', recherchez les fichiers supprimés mais encore ouverts avec 'lsof +L1', et regardez si l’erreur correspond en réalité à la limite de surveillances inotify.
Comment corriger ENOSPC avec la surveillance de fichiers de Node.js ou de VS Code ?
Augmentez fs.inotify.max_user_watches via sysctl ; il s’agit d’une limite de surveillance et non d’espace disque.
Erreurs liées
Source : Linux kernel errno.h · solutions rédigées et vérifiées par les éditeurs (voir notre politique éditoriale)
Dernière mise à jour :