Спробуйте це:
http://www.cyberciti.biz/tips/freebsd-why-command-df-and-du-reports-different-output.html
Якщо файли видалено (командою rm) під час їх відкриття або Використовувана програмою / процесом Linux, виникає проблема проблеми "відкритого дескриптора файлів" і плутає файлову систему Linux з повідомленням про реальну фігуру використаного дискового простору або вільного місця на диску.
Для вирішення підробленої проблеми "повного простору дискового простору", тобто для повернення "використаного простору на диску", вам потрібно вбити або припинити "неіснуючий процес" - в цьому випадку команда rm, яка перетворюється на неіснуючий процес, поки файли використовуються.
Після завершення цих неіснуючих процесів проблема "відкритого дескриптора файлу" буде вирішена, і обидва команди du і df погоджуються повідомити про реальну файлову систему, що використовується на диску або вільному просторі на диску!
Як знайти та припинити або вбити неіснуючі процеси, які викликають проблему дескриптора відкритого файлу, щоб вирішити різницю використовуваного дискового простору в команді du і df?
Для цього конкретного сценарію команда lsof (список відкритих команд для файлів) чудово показує світло:
#lsof | grep "deleted"
і шукайте ідентифікатор процесу Linux у другому стовпці виводу команди lsof. Сьомий стовпчик - це розмір файлу, який "видаляється" (але не є успішним і виявляється неіснуючим процесом).
Тепер вам просто потрібно буде вбити ідентифікатори процесу Linux, щоб побачити правильний вихід DU та DF. Використовуйте наступну команду, щоб вбити ідентифікатори процесу
#lsof | grep "deleted" | awk '{print $2}' | xargs kill -9
Тепер перевірте використання диска обома командами; ви не повинні отримувати різницю.