By default, Ext4 reserves 5% of the filesystem’s block count for the super-user, so that root processes can continue to run without problem even if other non-privileged processes are prevented from writing to the filesystem when it’s full.

This makes perfect sense for the root partition where the operating system is installed, but for most other partitions, reserving 5% of the disk space for the super-user is probably a waste of storage space.

For a 1 TB partition, assuming its size is exactly 1024 GB, 5% is 51.2 GB; and for a 4 TB partition, it’s 204 GB. That is a lot of wasted disk space.

To prevent reserving blocks upon filesystem creation, use the m option to set it to 0%:

1 mkfs.ext4 -m 0 /dev/device

To change the reserved block count percentage of an Ext4 filesystem after it’s been created, use:

1tune2fs -m 0 /dev/device

To find out the reserved block count of an Ext4 filesystem, use:

1tune2fs -l /dev/device | grep 'Reserved block count:'

To convert the output of the above into bytes, multiply it with the output of the following command:

1tune2fs -l /dev/device | grep 'Block size:'

However, if one repeatedly writes to the filesystem when it’s almost full, setting the reserved block count to zero will hinder performance due to fragmentation. In that case, it’s best to either leave the reserved block count as it is or set it to a lower percentage.

If, on the other hand, the Ext4 partition is used for storing user-files such as videos, images, and so on, in which case the partition is used almost as an archival storage device, then it’s probably a good idea to set the reserved block count of the partition to zero.