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.