Btrfs Assistant: Snapper Defaults to Off?

I just took a look at Btrfs Assistant and was surprised that Snapper wasn’t active by default. Is there a reason for that? I was under the impression that Btrfs snapshots took very little space, so I’d have assumed it Snapper would default to on with some reasonable settings. Is there some kind of standard for those snapshots?

EDIT: And, while I’m at it, I notice that the Btrfs Maintenance tab is not present. Is there a reason for that? Is there some way to make it show up?

Btrfs Assistant is just reporting the status. It being enabled or disabled by default is a choice that would be made by the snapper package.

You probably don’t have btrfsmaintenence installed.

We don’t use snapper or btrfs snapshots. ostree gives you rollback image which in most cases is enough.

That only rolls back the OS image though, right?

I use snapshots for user data. They have saved me so many times.

I was planning on trying various things to get KeePassXC browser integration working again in Bazzite 44. So, I was hoping to get some kind of system snapshots set up so that if I mess things up and can recover.

In Btrfs Assistant, I tried creating a manual snapshot on the Snapper tab. There’s nothing under the Select Config dropdown, and when I try hitting New, I get “No Config Selected for Snapshot.” After a bit of research, I found that I need to set up a config in the terminal with something like:

sudo snapper -c root create-config /

But, I get:

Creating config failed (invalid filesystem type).

According to my fstab, I’ve got the following btrfs partitions (subvolumes?):

/ btrfs subvol=root,compress=zstd:1,ro 0 0
/home btrfs subvol=home,compress=zstd:1 0 0
/var btrfs subvol=var,compress=zstd:1 0 0

To me, that looks like / is a btrfs partition (subvolume). I tried listing the subvolumes:

sudo btrfs subv list /
ERROR: not a btrfs filesystem: /
ERROR: can't access '/'

Odd. I thought the mountpoint would be / . Then I tried:

sudo btrfs subv list /root
ID 256 gen 148645 top level 5 path var
ID 257 gen 148645 top level 5 path home
ID 258 gen 148627 top level 5 path root

I don’t understand why the subvolumes are under /root. But, in a bit of random flailing, I tried:

sudo snapper -c root create-config /root
IO Error (subvolume is not a btrfs subvolume).

So, I’m at a loss. How do I create a config in Bazzite that will allow me to create Btrfs snapshots?

EDIT: I also looked for my Btrfs mount points with:

cat /proc/mounts | grep btrfs
/dev/nvme0n1p7 /etc btrfsrw,seclabel,relatime,ssd,discard=async,space_cache=v2,subvolid=258,subvol=/root 0 0
/dev/nvme0n1p7 /sysroot btrfsro,seclabel,relatime,ssd,discard=async,space_cache=v2,subvolid=258,subvol=/root 0 0
/dev/nvme0n1p7 /sysroot/ostree/deploy/default/var btrfsrw,seclabel,relatime,ssd,discard=async,space_cache=v2,subvolid=258,subvol=/root 0 0
/dev/nvme0n1p7 /var btrfsrw,seclabel,relatime,ssd,discard=async,space_cache=v2,subvolid=256,subvol=/var 0 0
/dev/nvme0n1p7 /var/home btrfs rw,seclabel,relatime,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/home 0 0

and I’m still pretty much at a loss.

You can’t do that. / is not mounted to a btrfs filesystem. It won’t work the way it works on a traditional distro. The files on the image can’t be edited so you can’t mess them up in the first place.

This will “just work” if you don’t use flatpak to install your browsers. I just unpack my browsers in my home directory. Most browsers will update themselves when installed this way and then keepassxc integration won’t have anything blocking it.

I also have installed snapper in my custom image because I also need it for some of my user data.

I guess I’m going to have to look into un-flatpaking my browser, then.

Regarding creating a snapper config: Digging around some more, I found reference to a ujust script for configure-snapshots. Apparently, that’s what I have to use to set that up. I had looked through those ujust commands for btrfs related entries earlier, but didn’t find that. Looking for snapshot related ones brought that up.

It looks like it puts the config in /var/home. So, only the home subvolume will have snapshots activated (not the whole system). It’s better than nothing and will cover any changes I’d be able to make. System rollbacks and rebases via rbh will cover anything worse.

EDIT: I ran the ujust command and it seems to have worked. But, I got some weird output:

Created symlink '/etc/systemd/system/timers.target.wants/snapper-cleanup.timer' → '/usr/lib/systemd/system/snapper-cleanup.timer'.
Removed '/etc/systemd/system/timers.target.wants/snapper-timeline.timer'.

(zenity:15418): Gtk-WARNING**: 05:48:07.568: Unknown key gtk-modules in /home/[redacted]/.config/gtk-4.0/settings.ini

(zenity:15418): Gtk-WARNING**: 05:48:07.580: Theme directory places/symbolic of theme BreezeRainbowFolders has no size field


(zenity:15418): Adwaita-WARNING **: 05:48:07.603: Using GtkSettings:gtk-application-prefer-dark-theme with libadwaita is unsupported. Pleas
e use AdwStyleManager:color-scheme instead.

(zenity:15418): Gtk-WARNING**: 05:48:07.643: Theme directory places/symbolic of theme BreezeRainbowFolders has no size field

WARNING: radv is not a conformant Vulkan implementation, testing use only.

Those warnings don’t seem to have anything to do with snapshots, but it’s interesting that they pop up when setting up a config.