Last week my personal worst case scenario happened:
The SD-Card of my Raspberry Pi 3b+ was corrupted. The Freedombox became unusable and I wasn’t able to recover it because the backups didn’t contain the users I created.
This made me think about a hassle-free disaster recovery solution. How difficult would it be to realize following use case?
Create regular full system backups automatically once a day / week (i. e. using Timeshift)
In case of SD-Card failure:
use a Desktop PC to flash new SD-Card with latest Backup
insert new SD-Card into Freedombox and boot again
No new installation and configuration. Just recover the last working snapshot and continue working.
On most FreedomBox (that have been installed from image or bought from store) we have btrfs filesystem. This provides a good opportunity to take snapshots regularly and transferring the snapshots elsewhere is also possible. Perhaps we can think on those lines.
When implementing the current backup solution we considered a full system backup (i.e. a full disk image). However, it had the disadvantage that we can’t restore it on a machine with different architecture. This could happen when migrating from a cloud instance to a local network after playing with cloud instance. Or when upgrading from older hardware to newer one. So, we choose the current solution which focuses on backup of particular apps and data.
On btrfs machines, we are taking regular snapshots of the entire filesystem. If we can find a way to transfer the snapshots to a remote location that would essentially solve this use case, I suppose.