7

What explains the discrepancy in usage (82 GB vs 13 GB) that I see below?

  • Using df:

    $ df -h /
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              96G   82G  9.9G  90% /
    
  • Using du:

    $ sudo du -cshx /
    13G     /
    13G     total
    
4
  • 2
    Maybe you have 69 gigs of data in a subdirectory that got mounted over where du can't see it? Commented Apr 11, 2017 at 13:48
  • 2
    Might be because of files that were deleted but are still kept open by some process; you should try lsof +L1. Commented Apr 11, 2017 at 13:48
  • 2
    Relevant: unix.stackexchange.com/questions/120311/… Commented Apr 11, 2017 at 13:54
  • 1
    If the filesystem is btrfs things can get messy. Commented Apr 11, 2017 at 13:56

1 Answer 1

9

-x option is a false friend as its purpose is to skip things. That option never gives you the complete picture.

To get a complete listing, use bind mounts and then du, ncdu, xdiskusage, baobab or whatever you wish on the bound directory without skip options:

mkdir /mnt/root
mount --bind / /mnt/root
ncdu /mnt/root

Then you might discover you have lots of stuff in /mnt/backup (because it wasn't mounted when the backup task ran), or a giant file in /dev (result of a dd if=/dev/zero of=/dev/sdx when no /dev/sdx existed and no tmpfs was mounted in /dev).

It could also be a deleted file still used by a process, but people don't usually ask about it as it's gone after reboot. It could also be a filesystem inconsistency, but that too would be gone after reboot (if it forces fsck in the process).

2
  • Thanks! Rebooting the machine did it +1. Interesting that du "loses" track of space until I restarted the machine Commented Apr 11, 2017 at 14:38
  • 2
    @AmelioVazquez-Reina The usual reason is that there's a large deleted file that some process still has open. The file contents don't go away until the process closes it, but du can't count it because it just traverses the directory. Commented May 22, 2017 at 19:56

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.