Cleaning up snapshots created by apt-btrfs-snapshot
Infrastructure Estimated reading time: ~3 minutes
Current versions of Ubuntu and Kubuntu install a package named apt-btrfs-snapshot by default. This package creates a btrfs snapshot each time packages are installed or removed. These snapshots can take up a lot of space if not cleaned up regularly.
How much space is left on my btrfs file system?
First a quick reminder. Traditional Linux tools like df
might
report the used / free disk space on btrfs file systems inaccurately.
Better use the following commands to get an accurate overview about
your current disk space situation:
user@laptop:~/tmp$ sudo btrfs filesystem usage /
Overall:
Device size: 156.57GiB
Device allocated: 126.16GiB
Device unallocated: 30.41GiB
Device missing: 0.00B
Used: 37.35GiB
Free (estimated): 113.61GiB (min: 113.61GiB)
Data ratio: 1.00
Metadata ratio: 1.00
Global reserve: 93.14MiB (used: 0.00B)
Multiple profiles: no
Data,single: Size:119.65GiB, Used:36.44GiB (30.46%)
/dev/sdb6 57.65GiB
/dev/sda5 62.00GiB
Metadata,single: Size:6.51GiB, Used:926.61MiB (13.90%)
/dev/sdb6 2.51GiB
/dev/sda5 4.00GiB
System,single: Size:4.00MiB, Used:48.00KiB (1.17%)
/dev/sdb6 4.00MiB
Unallocated:
/dev/sdb6 3.63GiB
/dev/sda5 26.77GiB
user@laptop:~/tmp$
If you just want to see which partitions belong to a btrfs file system the following command comes in handy:
user@laptop:~/tmp$ sudo btrfs dev usage /
/dev/sdb6, ID: 1
Device size: 63.79GiB
Device slack: 0.00B
Data,single: 57.65GiB
Metadata,single: 2.51GiB
System,single: 4.00MiB
Unallocated: 3.63GiB
/dev/sda5, ID: 2
Device size: 92.77GiB
Device slack: 0.00B
Data,single: 62.00GiB
Metadata,single: 4.00GiB
Unallocated: 26.77GiB
user@laptop:~/tmp$
Removing btrfs snapshots (created by apt-btrfs-snapshot)
To list all the snapshots in a btrfs file system the following
command can be used: $ sudo btrfs subvolume list -s /
.
Using -s
only snapshot subvolumes in the filesystem will be listed.
A snapshot is also a subvolume, but with a given initial content of the original subvolume.
If you want to read more about btrfs snapshots and subvolumes
see here.
But instead of messing around with the raw snapshots / subvolumes
I recommend using the apt-btrfs-snapshot
tool itself instead.
Execute $ sudo apt-btrfs-snapshot list
to list all btrfs snapshots created by
apt-btrfs-snapshot
. To remove all the snapshots you can use the following
command: $ sudo apt-btrfs-snapshot delete-older-than 0d
.
Check your file system
After the snapshots have been removed you might want to run a file system check:
# Start a file system check.
$ sudo btrfs scrub start /
# Check the status of a running file system check.
$ sudo btrfs scrub status /
If you want to get to know more about some of the btrfs terms you might take a look at the glossary over at the btrfs wiki. A scrub is defined as follows:
An online filesystem checking tool. Reads all the data and metadata on the filesystem, and uses checksums and the duplicate copies from RAID storage to identify and repair any corrupt data.
A note about Netcup (advertisement)
Netcup is a German hosting company. Netcup offers inexpensive, yet powerfull web hosting packages, KVM-based root servers or dedicated servers for example. Using a coupon code from my Netcup coupon code web app you can even save more money (6$ on your first purchase, 30% off any KVM-based root server, ...).