I noticed that I only had 5 GiB of free space left today. After quickly deleting some cached files, I tried to figure out what was causing this, but a lot was missing. Every tool gives a different amount of remaining storage space. System Monitor says I’m using 892.2 GiB/2.8 TiB (I don’t even have 2.8 TiB of storage though???). Filelight shows 32.4 GiB in total when scanning root, but 594.9 GiB when scanning my home folder.
Meanwhile, ncdu
(another tool to view disk usage) shows 2.1 TiB with an apparent size of 130 TiB of disk space!
1.3 TiB [#############################################] /.snapshots
578.8 GiB [#################### ] /home
204.0 GiB [####### ] /var
42.5 GiB [# ] /usr
14.1 GiB [ ] /nix
1.3 GiB [ ] /opt
. 434.6 MiB [ ] /tmp
350.4 MiB [ ] /boot
80.8 MiB [ ] /root
23.3 MiB [ ] /etc
. 5.5 MiB [ ] /run
88.0 KiB [ ] /dev
@ 4.0 KiB [ ] lib64
@ 4.0 KiB [ ] sbin
@ 4.0 KiB [ ] lib
@ 4.0 KiB [ ] bin
. 0.0 B [ ] /proc
0.0 B [ ] /sys
0.0 B [ ] /srv
0.0 B [ ] /mnt
I assume the /.snapshots
folder isn’t really that big, and it’s just counting it wrong. However, I’m wondering whether this could cause issues with other programs thinking they don’t have enough storage space. Steam also seems to follow the inflated amount and refuses to install any games.
I haven’t encountered this issue before, I still had about 100 GiB of free space last time I booted my system. Does anyone know what could cause this issue and how to resolve it?
EDIT 2024-04-06:
snapper ls
only shows 12 snapshots, 10 of them taken in the past 2 days before and after zypper transactions. There aren’t any older snapshots, so I assume they get cleaned up automatically. It seems like snapshots aren’t the culprit.
I also ran btrfs balance start --full-balance --bg /
and that netted me an additional 30 GiB’s of free space, and it’s only at 25% yet.
EDIT 2024-04-07: It seems like Docker is the problem.
I ran the docker system prune
command and it reclaimed 167 GB!
Try using
btdu
. I’m not sure how it works with compression, but it at least understands snapshots, as long as they are named in a sane way.Thanks for the suggestion. The repository says it is able to deal with BTRFS compression.
I do have some issues using the application. The instructions say to run it with the filesystem you want to check as argument. However, I get an error when using it with the root filesystem from
df -h --output=source,target
. Runningsudo btdu /dev/mapper/system-root
gives the following error:Fatal error: /dev/mapper/system-root is not a btrfs filesystem
./etc/fstab
shows/dev/system/root
as being mounted on/
, but it gives the same error.Do you happen to know which path I should be using (or how I can find out)?
EDIT 2024-04-07: It seems like Docker is the problem.
I ran the
docker system prune
command and it reclaimed 167 GB!You need to point it at a directory that has the btrfs root subvolume mounted on it (subvolid=5) although I thought it gave a different error if that was your problem.
As the other user suggested, you probably just need to mount the root subvolume somewhere and run it on that.