Es muy posible que tenga un archivo eliminado muy grande (o muchos pequeños) en el que un proceso aún tenga un identificador de archivo abierto. La forma de encontrarlos es correr
# lsof | grep "deleted"
Si ve muchas líneas que terminan con "(eliminado)", entonces puede encontrar el Id. del proceso que las tiene abiertas y reiniciarlo. Una vez que eso suceda, su espacio en disco debería volver.
Si esto no lo soluciona, recomendaría un fsck.
Hay un montón de razones por las que du no es igual a df. Vea las respuestas a esta pregunta.
Algunos son montajes superpuestos, muchos archivos pequeños y un tamaño de bloque más grande, y archivos eliminados que todavía están en uso. Los montajes superpuestos son cuando montó un sistema de archivos en un punto de montaje que tenía archivos, por lo que du no los ve.
La principal diferencia entre los dos es que df solo verifica el superbloque y confía en él, mientras que du escanea todos los archivos que puede ver y los suma. Consulte este enlace de IBM para obtener información sobre la supermanzana.
Siempre use la opción -x con du cuando esté persiguiendo problemas como este. Evita que du cruce los sistemas de archivos.