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!

  • @bionicjoey@lemmy.ca
    link
    fedilink
    7
    edit-2
    8 months ago

    It could be that hardlinked files are being double-counted. What software manages that snapshot folder?

    • qazOP
      link
      fedilink
      68 months ago

      I’m using BTRFS with snapper.

      • Strit
        link
        fedilink
        48 months ago

        Maybe it’s time to clean out some old snapshots in Snapper.

        • qazOP
          link
          fedilink
          18 months ago

          sudo snapper list shows 1 snapshot without a date, 1 old one, and 10 taken in the past couple of days before and after zypper transactions. It seems like they get cleaned up automatically.

    • @rotopenguin@infosec.pub
      link
      fedilink
      English
      2
      edit-2
      8 months ago

      There’s hardlink, and then below that there’s the COW/dedupe version called “reflink”. Two files can point to the same chunks of data (extents), and altering one does not alter the other. Two files can point to just some of the same chunks of data, too. I don’t think there is much indicator for when this is happening, besides the free space vs used space accounting looking crazy. If you “compsize” two reflinked files at once, it’ll show you the difference.