No space left on device. Avant de tout supprimer, l’ordre exact des commandes qui disent ce qui remplit le disque — fichiers effacés encore ouverts inclus.
Le message arrive toujours au pire moment : No space left on device. Le réflexe est de supprimer ce qui semble gros. Le bon réflexe est de mesurer, dans un ordre précis — parce que sous Linux, un fichier « effacé » peut encore occuper l’espace tant qu’un processus le tient ouvert.
df -hRegardez la colonne Use% et le Mounted on. Souvent / ou /var est à 100 %, alors que /home a de la marge. Inutile de chercher dans le mauvais arbre.
df -ihParfois l’espace reste libre, mais les inodes sont épuisés (des millions de petits fichiers). df -h dit « OK » ; df -ih dit la vérité.
sudo du -xh / --max-depth=2 2>/dev/null | sort -h | tail -n 20-x reste sur un seul système de fichiers (évite de descendre dans /mnt ou des binds). En une minute, vous savez si c’est /var/log, /var/lib/docker ou un dossier de builds.
Pour zoomer :
sudo du -xh /var/log --max-depth=1 | sort -hsudo journalctl --disk-usage
sudo ls -lhS /var/log | headUn *.log de 40 Go après un weekend de debug n’est pas rare. Avant de tronquer :
sudo truncate -s 0 /var/log/gros-fichier.logtruncate vide le fichier sans casser le descripteur ouvert par le démon. Un rm + recreation laisse parfois le processus écrire dans un inode orphelin.
sudo lsof +L1 | headOu, plus ciblé :
sudo lsof 2>/dev/null | grep deletedSi un processus (Java, Docker, nginx) tient un gros fichier supprimé, du ne le voit plus dans l’arborescence, mais df compte encore les blocs. La solution : redémarrer le processus fautif (ou le conteneur), pas supprimer « encore plus ».
docker system df
docker system prune -af --volumes # destructif : images et volumes non utilisésSur une machine de build, les couches d’images mortes sont souvent le premier suspect après /var/log.
df -h /Si le pourcentage n’a pas bougé après un rm massif, retournez à l’étape 4. Ce pattern — « j’ai tout effacé, le disque est encore plein » — est presque toujours un descripteur ouvert.
L’ordre compte : df → du → logs → lsof (deleted) → confirmation. Supprimer au hasard avant de mesurer crée des incidents plus graves que le disque plein lui-même. Une fiche de commandes par tâche (« trouver ce qui remplit le disque ») vaut mieux qu’une encyclopédie d’options man.
Développement et déploiement de solutions de données — les premiers modules sont en accès libre.