Btrfs-assistant flexibility

I use btrfs-assistant and snapper regularly. I’ve always been confused about the seemly 2 methods of setting up snapshots. Both seem to work but not sure which to use and why.

One method seems to target having a separate subvolume created as a top level 5 path with the /.snapshots directory mounted to it. This seems to be more Arch like.

The other method you get by a standard BTRFS install on EOS. No snapshot subvolume is create and no /.snapshot directory is create. You install snapper and btrfs-assistant and use the btrfs-assistant to configure and take snapshots.

This is the method I use most often. And it works as far as I can tell. But the snapshots seem to be nested under the subvolumes that they are snapshoting.

Somehow when I restore a snapshot with btrfs-assistant for both / and /home, it works as I want it to.

However, the more I read about snapper and btrfs-assistant, some others are using the Arch type subvolume layout and they use btrfs-assistant for that as well.

So is btrfs-assistant smart enough to not care about your snapper and subvolume setup or is this just a fluke?

This how Snapper manages things by default. I would strongly recommend you continue to use this method.

It makes recovery much simpler and will generally work more reliably.

Btrfs Assistant supports this layout(It supports pretty much any layout). However, in some cases you will need a config file to tell Btrfs Assistant where to restore those snapshots. Unfortunately, Snapper doesn’t store the source of the snapshots. To know where to restore them, Btrfs Assistant looks to see what subvolume the .snapshots subvolume is mounted inside of. If you have mounted an arbitrary subvolume there. Btrfs Assistant doesn’t know where it should restore those snapshots to.

What often happens with people who use this layout is that everything works fine until they are in an emergency situation and then when they go to recover their snapshots, it doesn’t show up on the list of possible snapshots to recover until they add the proper config file entry manually.

1 Like

Thanks, I appreciate your comments. To me it seems that the concern many have is in the nesting of snapshots. But since snapper will not take a snapshot of a subvolume mounted under another subvolume, I don’t see the problem.

What works without fail is your suggested method on EOS.

Where I get confused is for my development on systems under Debian 12. In that case I can use timeshift but I have to get very familiar with another app. I’ve tried using snapper and btrfs-assistant with Debian but sometimes strange things happen.