Everytime a btrfs based volume runs out of space, I’m reminded of these:
There are a few scripts that help you assess quota usage. If you think they are wrong, then you need to btrfs quota rescan / which tells you that it started, but won’t tell when it’s finished (nor wil journalctl -xe a.k.a. journalctl --catalog --pager-end), but dmesg does:
# dmesg | grep qgroup
[ 316.608122] BTRFS info (device sda2): qgroup scan completed (inconsistency flag cleared)
For now I’ve this quick script to start investigation:
~/Versioned/btrfs-du/btrfs-du && df -h | grep "\/$\|^[^\/]" && btrfs quota rescan -s /
It assumes there is quota on the root (enable with btrfs quota enable /) and is based on my fork github.com/jpluimers/btrfs-du. The df will limit itself to the root (trailing / matched by \/$) or disks not mounted from / (matched by ^[^\/]).
–jeroen
References (not solutions):
- [WayBack] Snapper, The ultimate Snapshot Tool for Linux: Cleanup based on Disk Usage
- [WayBack] Quota support – btrfs Wiki
- [WayBack] Tool for understanding each snapshot used space size · Issue #51 · openSUSE/snapper
- From my own blog:
- How can a partition be full if du does not show it is? (via: linux – Super User) #OpenSuSE #btrfs #snapshots
- A bash script to btrfs snapshot details like disk sizes (requires btrfs quota to be enabled)
- Nice diskinfo alias showing du, df, btrfs, parted, lsblk
- how to resize (grow) device partition of a multi-device BTRFS filesystem?
- Interesting thread about various file systems: BTRFS, ReiserFS, ext4











