Deleting Files From Snapper

Snapper is a nice tool to revert changes made to your system.

Unfortunately, it has a nasty side effect: If you happen to delete some large files (say, an ISO image you accidentally copied to the wrong place), and that large file ended up in one of your snapshots, well … the file will be gone but the disk space will still be allocated.

The first step is to locate the large file(s) under /.snapshots

The next step is to delete it/them. That’s not so easy since snapper created read-only file system snapshots. The workaround is to create a writable snapshot, delete the files, delete the read-only snapshot, create a new one and then delete the writable snapshot. Too much on one sentence? Here is the sequence of commands:

cd .../
btrfs subvolume snapshot snapshot snapshot.bak
rm -rf snapshot.bak/...
btrfs subvolume delete snapshot
btrfs subvolume snapshot -r snapshot.bak snapshot
btrfs subvolume delete snapshot.bak

Breakdown: First, we cd into the folder which contains the snapshot itself (it also contains a file “info.xml”).

Then we clone the snapshot in “snapshot.bak” which we can modify.

The last three steps replace “snapshot” with the new, cleaned “snapshot.bak”.

In at least one occasion, that didn’t free the disk space, yet. I also had to delete the oldest snapshot which contained the file.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s