Disk full, du tells different. How to further investigate?
Just stumbled on this page when trying to track down an issue on a local server.
In my case the
df -h and
du -sh mismatched by about 50% of the hard disk size.
This was caused by apache (httpd) keeping large log files in memory which had been deleted from disk.
This was tracked down by running
lsof | grep "/var" | grep deleted where
/var was the partition I needed to clean up.
The output showed lines like this:
httpd 32617 nobody 106w REG 9,4 1835222944 688166 /var/log/apache/awstats_log (deleted)
The situation was then resolved by restarting apache (
service httpd restart), and cleared up 2gb of disk space, by allowing the locks on deleted files to be cleared.
Check for files on located under mount points. Frequently if you mount a directory (say a sambafs) onto a filesystem that already had a file or directories under it, you lose the ability to see those files, but they're still consuming space on the underlying disk. I've had file copies while in single user mode dump files into directories that I couldn't see except in single usermode (due to other directory systems being mounted on top of them).
I agree with OldTroll's answer as the most probable cause for your "missing" space.
On Linux you can easily remount the whole root partition (or any other partition for that matter) to another place in you filesystem say /mnt for example, just issue a
mount -o bind / /mnt
then you can do a
du -h /mnt
and see what uses up your space.
Ps: sorry for adding a new answer and not a comment but I needed some formatting for this post to be readable.
df -i says. It could be that you are out of inodes, which might happen if there are a large number of small files in that filesystem, which uses up all the available inodes without consuming all the available space.
In my case this had to do with large deleted files. It was fairly painful to solve before I found this page, which set me on the correct path.
I finally solved the problem by using
lsof | grep deleted, which showed me which program was holding two very large log files (totalling 5GB of my available 8GB root partition).