Hund

How to save disk space by changing the reserved blocks for Ext-filesystems

Published: Thursday, May 28, 2020

By default the Extended-filesystem, more known as Ext2/4, reserves 5% of the filesystem blocks on the filesystem for privileged processes. It’s done to avoid filesystem fragmentation and to allow system daemons to continue to function correctly after non-privileged processes are prevented from writing to the filesystem due to a full filesystem.

It’s a great feature for system critical filesystems, but if you have a storage disk you usually don’t need that feature at all. And if you have a very large system disk you could probably lower the value a bit, but that’s for you to decide.

An example with my storage disk

I have turned off the reserved blocks on my storage disk and as you can see below it does make a noticeable difference on a larger filesystem.

Before

$ df -h

Filesystem      Size  Used Avail Use% Mounted on
[...]
/dev/sdb1       3.6T  1.9T  1.6T  55% /mnt/hdd0

After

$ df -h

Filesystem      Size  Used Avail Use% Mounted on
[...]
/dev/sdb1       3.6T  1.9T  1.8T  52% /mnt/hdd0

Instructions

Start by checking the amount of reserved block count you have on the disk:

# tune2fs -l /dev/sdb1  | grep 'reserved block count'

Reserved block count:     48837696

If you don’t know what your device names is you can list them with the command fdisk -l as a privileged user. In my case the device name was sdb1.

To change the value we are going to use the tool tune2fs. In this example I changed the value to 0 (zero) with the flag -m0:

# tune2fs -m0  /dev/sdb1

tune2fs 1.45.5 (07-Jan-2020
Setting reserved blocks percentage to 0% (0 blocks)

You can then double check to see if it worked:

# tune2fs -l /dev/sdb1  | grep 'reserved block count'

Reserved block count:     0


Meta

Comments

If you want to leave feedback you can do so by either sending me a message via e-mail or by commenting on my post for this article on the fediverse.