Can't remove reserved blocks on ext4

I’m sorry in advance if I posted this in the wrong place.

I have two drives; a main SSD “boot” drive (/dev/sda; sda1 is the EFI bootloader while sda2 is mounted on root), and a HDD “secondary” drive (/dev/sdb; it only has a single partition), and both of them use ext4 (except /dev/sda1, which uses fat32). I’m too stupid to understand how fstab works, so I used Gnome Disk Utility to configure my HDD to be automatically mounted on boot to ~/Secondary Drive.

Issue is, it seems that both my SSD and HDD are automatically reserving huge amounts of data to root. When I got my 4 TB HDD and created an ext4 partition on it through Gnome Disks while still on Linux Mint, it reported me only having 3.6 TBs of available space and that over 200 GBs were being utilized or otherwise filled up, even though the hard drive was factory stock and fresh out of the box. I quickly found out this was due to ext4 data reservation, and the Arch Wiki helped me fix it by running sudo tune2fs -m 0 /dev/sdb1, which solved the issue on Linux Mint and allowed me to get my full 4 TBs of space.

Except, when I backed up my stuff onto the HDD and switched to EndeavourOS, the drive (which had 3.8 TBs on Mint post-removal of reserved blocks) was now registering only 3.5 TBs of space available. I unmounted it and ran the tune2fs command again, except it didn’t work and I remained with the reserved blocks. I’ve tried running it on the disk unmounted and mounted, but it just doesn’t work and remains forcing reserved blocks on me. I’m a huge data hoarder, so I honestly would rather have my full 4 TBs of disk space instead of having nearly 300 GBs taken from me through no fault of my own.

What should I do to make the reserved blocks go away, and why is it refusing to work here while Linux Mint had it work right out of the box? Am I missing a mount option/argument? And how may I do the same with my SSD, since it also reports only 447 GBs of space available when I should in fact have 480?

Give this a try;

Get the list of partitions:
df -h

For each partition that’s ext4 run this to check if there are reserved blocks:
tune2fs -l /dev/partition | grep 'Reserved'

Finally, use tune2fs to set the reserve blocks to 0:
tune2fs -r 0 /dev/partition

Source:

2 Likes

tune2fs -l returned me this:

Reserved block count:     0
Reserved GDT blocks:      1024
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

What exactly are GDT blocks? Are they the same as normal reserved blocks?

What I don’t get is that df -h says my HDD is only 3.6 TBs large, when by all accounts it should be 4 TBs. I don’t understand why Endeavour is for some reason shaving 400 GBs off of my hard drive.

You don’t have reserved blocks.

1 Like

Then why is my hard drive reporting it’s only 3.6 TBs large when it’s in fact 4.0 TBs, and I could get it to show up as 4.0 TBs just fine on Linux Mint?

Short answer - humans think in decimal (base 10), computers think in binary (base 2).

You’re thinking 1GB = 1000MB.

The computer, on the other hand, is thinking 1GB = 1024MB.

Maybe this article will help:

https://www.seagate.com/support/kb/why-does-my-hard-drive-report-less-capacity-than-indicated-on-the-drives-label-172191en/

2 Likes

It is probably just the units being displayed differently. Some things show you TB and other TiB

1 Like

I see, thank you for clarifying! And sorry for being so dumb.

So basically, the computer is reporting 3.6 TBs due to reading it in binary, but functionally it still does have 4 TBs and it’s just a display issue (rather than it legitimately having less space than advertised)? Is there a way to make the file system report the disk size in decimal instead of binary?

1 Like

The available space/free space/total space is always the same, it’s just different ways of expressing that size. A colorblind individual may see red as “brown” but objectively it’s still red.

Hmmm…I never really gave it any thought. My instinct is to say “no,” at least not on a system-wide basis - but again, I never really thought about it.

1 Like

For example, see the manual of the df command:

  man df

Then, compare the outputs of commands:

  df -hT
  df -hT --si
1 Like

@SimplyTadpole
A hard drive that is 4TB is going to report a smaller than 4 TB size because of the partition table and formatting for the files system used.

A computer uses binary which is 1 GB = 1024 MB So it depends on how it’s being read by the program reading it because 1 GB is also = 1000 MB Most data products manufacturers use this method. Computers normally use binary but that’s not to say that all programs use that method.

1 Like

In the storage world 1024 MB is 1 GiB (gibibyte) see https://searchstorage.techtarget.com/definition/gibibyte-GiB#:~:text=Gibibyte%20vs.&text=A%20gibibyte%20is%20equal%20to,One%20gibibyte%20equals%201.074%20gigabytes.&text=gigabytes%2C%20that%207%%20difference%20can%20start%20to%20add%20up.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.