More disk space is needed or desired.
You must be logged in as root to make changes to the system partition.
With btrfs, check disk space using:
btrfs fi usage /
The place to start is checking your snapshots. Very old snapshots will appear to consume a lot of space.
If you have never run a "snapper rollback", then you can't delete snapshot 1 (this is normal). If you have, then you won't be able to delete whatever snapshot you rolled back to. You can check what snapshot that is at the top of the "findmnt" output.
Check how many snapshots you have:
If for some reason you have dozens or hundreds of snapshots, then the daily cleanup isn't being run.
It's a bash script you can also run manually, but there are other ways.
With the release of snapper 0.5.3 the cron script was replaced with a systemd timer. The related systemd units are
snapper-cleanup.service. The associated config file is
/etc/snapper/configs/root and the service calls
This can also be called via:
systemctl start snapper-cleanup
Those use the cleanup algorithms, which you can also call individually:
snapper cleanup <algorithm> (number or timeline or empty-pre-post)
You can also delete a specific snapshot manually:
snapper rm <n>
Or delete a range of snapshots:
snapper rm <n1>-<n2>
Occasionally, snapshots not listed by snapper will still exist. Check with:
btrfs subvolume list /
The two reportedly effective methods for removing unlisted snapshots are:
- recreating the missing xml file, then deleting with snapper
- deleting them in a specific way: https://github.com/openSUSE/snapper/issues/24
You can check the size of the journal with:
If you don't care about log entries from more than two days ago, you can:
journalctl --rotate journalctl --vacuum-time=2d
You can also set limits in /etc/systemd/journald.conf
On Tumbleweed old kernels can build up. You can remove them with:
systemctl start purge-kernels
You can delete the zypper package and/or metadata cache with:
There is a systemd timer/service set to run 15 minutes after boot that calls:
There are two ways to check if the timer is active:
systemctl list-timers systemctl status systemd-tmpfiles-clean.timer