df
подсчитывает выделенные файловой системой блоки, du
используют информацию о размере каждого файла.
У разницы может быть много причин:
1) Несвязанные (удаленные) файлы, которые все еще открыты приложением. lsof + aL1
поможет вам идентифицировать процессы.
2) Файлы ниже точек монтирования скрыты в du
. debugfs
может вам помочь.
$ sudo debugfs
debugfs 1.42.12 (29-Aug-2014)
debugfs: open /dev/
debugfs: cd /boot
debugfs: ls -l
1966081 40755 (2) 0 0 4096 26-May-2016 16:28 .
2 40555 (2) 0 0 4096 11-May-2016 10:43 ..
1974291 100644 (1) 0 0 0 26-May-2016 16:28 bob <---<<< /boot/bob is hidden by /boot fs
3) Редкие файлы , которые выглядят больше, чем на самом деле. невыделенные блоки не учитываются df
, но они учитываются в размере файла.
Обратите внимание, что жесткие ссылки не обманывают du