df -h - Used space + Avail Free space is less than the Total size of /home
Solution 1:
By default, ext2/3/4
filesystems reserve 5% of the space to be useable only by root
. This is to avoid a normal user completely filling the disk which would then cause system components to fail whenever they next needed to write to the disk.
You can see the number of reserved blocks (and lots of other information about the filesystem) by doing:
sudo tune2fs -l /dev/sda8
For a /home
partition, it is probably safe to set the reserved fraction to zero:
sudo tune2fs -m 0 /dev/sda8
Which should make an additional ~5GB available.
Solution 2:
This question is really about interpreting the output of the df
command, which is famously confusing and if you Google it, you'll see many questions about df.
How to Interpret df
Output:
"Size" is df
results are INCLUSIVE of the 5% reserved space @chronitis told you about. This is the total ABSOLUTE space. This number will approximate the size shown in the results of fdisk -l
for the partition which you're reviewing in the df results.
"Used" + "Avail" provides the total EFFECTIVE space and EXCLUDES the 5% reserved space. This is the space you can actually work with.
So nothing is "missing"- the disparity between "Size" and ("Used" + "Avail") totals in df
output represents the 5% reserved space
Free Space NOT Accounted For In df
Output:
If you're scratching your head thinking "But I deleted that file(s), why can't I see the additional space in df
?!?" here's why:
If you delete a large file(s), but the process for it hasn't been terminated, this "free" space won't be reflected in the results of df
.
sudo lsof +L1
will identify deleted files still showing a pid.
HTH clears up some confusion about interpreting df
output - Terrence
Solution 3:
By default, ext2/3/4 filesystems reserve 5% of the space to be useable only by the superuser, root
.
There is also some space reserved for metadata, that is necessary for the file system, for examples inodes and the journal.
You can find some details in the manual
man mkfs.ext4