Il est tout à fait possible que vous ayez un très gros fichier supprimé (ou beaucoup de petits) sur lequel un processus a toujours un descripteur de fichier ouvert. Le moyen de les trouver est de courir
# lsof | grep "deleted"
Si vous voyez beaucoup de lignes qui se terminent par "(supprimé)", vous pouvez trouver l'ID de processus qui les a ouvertes et le redémarrer. Une fois que cela se produit, votre espace disque devrait revenir.
Si cela ne résout pas le problème, je recommanderais un fsck.
Il y a un tas de raisons pour lesquelles du n'est pas égal à df. Voir les réponses à cette question.
Certains sont des montages superposés, beaucoup de petits fichiers et une taille de bloc plus grande, et des fichiers supprimés qui sont toujours utilisés. Les montages superposés se produisent lorsque vous montez un système de fichiers sur un point de montage contenant des fichiers, donc du ne les voit pas.
La principale différence entre les deux est que df vérifie simplement le superbloc et lui fait confiance, tandis que du analyse tous les fichiers qu'il est capable de voir et les additionne. Voir ce lien IBM pour plus d'informations sur le superbloc.
Utilisez toujours l'option -x avec du lorsque vous recherchez des problèmes comme celui-ci. Cela empêche du de traverser les systèmes de fichiers.