I have a btrfs root partition with an @
root subvolume and an @home
subvolume and I do auto-snapshots during updates and timeshift scheduled snapshots, both of which are saved on the same drive. This is great but I want to have extra redundancy in case of a drive failure.
In my last setup on Debian, I used the ext4 filesystem and put my timeshift rsync backups on an external drive.
How can I do something similar, i.e. backup to an external drive, while still taking snapshots on the root device?
In addition to the system device, which is a 1TB SSD formated as btrfs, I have a 2 TB HDD currently formatted with two NTFS paritions since I dual boot windows as well. Now I would be willing to completely move to a linux filesystem on that drive but I don't know how I would handle backing up the root drive. I thought about doing a disk image onto the HDD with dd
but if I do this, I would (a) loose an extra TB of storage if I understand correctly how dd
works and (b) would not now how to restore from the image. Ideally, I would like to have a btrfs partition on the second drive for backups of the root device only and a second (e.g. ext4 or ntfs) partition just for overflow data storage.
Essentially my question is: How can I facilitate a backup of my already "snapshotting" root partition (and also know how to restore from it)?
EDIT: My solution
The solution I came up with uses btrbk
, which is a single perl script that manages snapshots and automatically sends them to another drive. I documented the setup on my github account here.
btrbk
runs using a single config file to specify snapshot and backup locations as well as retention policies. I schedule the backup process using crontab. It is a little work to set it up for beginners but much more rewarding in the learning process than simply using snapper or timeshift.