Can I change the location of BTRFS snapshots. I installed CachyOS, and it automatically setup BTRFS subvols.

This is the layout 👇

ID gen parent top level path
258 1773 5 5 @root
259 1601 5 5 @srv
260 1789 5 5 @cache
261 1785 5 5 @tmp
262 1797 5 5 @log
263 26 377 377 var/lib/portables
264 26 377 377 var/lib/machines
265 1791 377 377 .snapshots
266 1427 378 378 @home/.snapshots
377 1797 5 5 @
378 1797 5 5 @home

According to Arch wiki https://wiki.archlinux.org/title/Snapper#Creating_a_new_configuration

Create a subvolume at /path/to/subvolume/.snapshots where future snapshots for this configuration will be stored. A snapshot’s path is /path/to/subvolume/.snapshots/#/snapshot, where # is the snapshot number.

From which I understand that if I created a snap of /home (@home), it will save in /home/.snapshots (@home/.snapshots).

So, CachyOS configured to save snaps to separate subvol.

But, what I want to do is, Instead of just saving it in separate subvol, i want snaps to be saved on different btrfs partition. Maybe @home/.snapshots but on different partition.

Is that possible ?

  • So, you might be misunderstanding how BTRFS snapshots work.

    A BTRFS snapshot is not a complete copy of the system, but rather, merely a recording point, and only CHANGES between the current system and the snapshotted system actually take up space. Like, if you snapshot a system, and then install 1 GB of updates, that snapshot only takes up that 1GB of differences in the system.

    It’s exactly because of this, that it’s somewhat difficult to shuffle BTRFS snapshots around.

    So, you can use BTRFS send/receive to send subvolumes to other btrfs devices.

    So, snapshots are really just a subvolume that only takes up the difference between your main subvolume that you use, and the snapshot subvolume. You can use btrfs send/receive to send them them to another btrfs partition… but I don’t know if sending subsequent backups will deduplicate data properly.

    What you might want instead, are rsync backups. Timeshift also supports rsync backups, which copy all the data over to any device using rsync for the initial backup, but then use hardlinks to store only the changes between the backups for subsequent backups. Similar to btrfs — but simpler, is my understanding.

    • @gpstarmanOP
      link
      14 days ago

      Thank you.

      I’m still learning how BTRFS works. I stopped using rsync because I don’t have lots of storage. I also think btrfs is easier on disk read and write operations.