When I create an ext4 file system on a sparse 16GB file without reserving root space, the actual free size is 15.58GB. Why does this happen? Commands I use:
fallocate -l 16G test.img
mkfs -t ext4 -m 0 test.img
mount test.img test
In tune2fs there is a value Overhead clusters: 109857 that can be multiplied by 4096 (block size) and divided by 1024^3 to get the value in gigabytes, then get the missing ~0.41 GB. https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout says something very strange about Overhead clusters:
Overhead blocks/clusters in fs. (Huh? This field is always zero, which means that the kernel calculates it dynamically.)
What is the meaning of this? Does it have something to do with this issue? What size should I set in fallocate so that the total size of the mounted image would be 16 GB?