Compute the real total size of a partition formated in EXT3
adilger at dilger.ca
Mon Feb 7 16:30:59 UTC 2011
On 2011-02-07, at 06:45, Stephane Cerveau wrote:
> In order to have a real percentage of freespace for a user interface, I’m trying to compute the size available on a 4GB USB key formatted in Ext3. Indeed after format, when I ask df to give a summary of size, it tells that there is 75MB already used.
> I would like to know the meaning of this 75MB ( is it the journal??) and especially how I can compute this when I want, whithout parsing the partition and the size of the file(s).
> /dev/sda1 3.7G 71.5MB 3.4G 2% /mnt/internal
There are several different things that add up to this overhead. The journal is a significant factor for smaller filesystems, but there are also inode tables, allocation bitmaps, reserved space, and a few other things.
If you are using a very small embedded filesystem that doesn't need a lot
of performance, you can reduce the size of the journal at format time with
options like "-J size=4", and disable resizing with "-O ^resize_inode",
which also removes some overhead. The amount of reserved space can be reduced
with "-m <percentage>" (default 5%), though this can lead to significant file
fragmentation and permanent performance impact. Finally, depending on your
workload/usage pattern, the number of the inodes in the filesystem can be
reduced using "-i <ratio>".
As for computing the available size, you can't really do better than what statfs() returns.
More information about the Ext3-users