What is the best way to back up as much as possible of Debian 12 on my laptop to a server that has SSH available? I am currently backing up my users /home/<homedir> folder, but I would like to be able to nuke and restore the system from a backup.
I have ventoy on an external drive if that helps any.
P.S. I would like to be able to do incremental backups too.
Ignoring the whole debate about whether to include system files in your backup,
rdiff-backup
sounds a lot like what you want. It stores your latest backup as plain files on-disk just like rsync, checks the box for incremental backups (older versions of files are stored as diffs, which you can easily browse withrdiff-backup-fs
) and isn’t much different to use than rsync. That said, people will point out that you can make rsync do pretty much the same stuff using hard linking.The standard answer: don’t backup the system, automate its deployment instead. Backup only data.
Even for a home system? Not a fleet of data center servers. I am currently using rsync to backup /home/<<user>>/ to the ssh server. I tend to make a lot of changes to the base Debian/KDE install.
Yeah, it’s worth it to just start fresh. Keep your user data, nuke the rest and setup from scratch w/automation if it’s extremely customized to your liking.
I personally try to use the default config as much as possible so there’s not as much to set up after installing from ISO.
no calls for restic? I use restic and a s3 layer on the other end, be it either backblaze/wasabi/s3/whatever for remote or minio/garage for local object storage. Stuff just works, then I write a systemd unit file to back it up according to whatever schedule I want for both a local target and a remote target. Helps to solve the 3-2-1 backup strategy this way. Good luck!
Relax And Recover for os level backups. https://relax-and-recover.org/
With rear you can back up your system to pretty much anything. Mounted volume, USB drive, even to a bootable iso.
I use weekly rear backups for my system, and hourly Borg backups for diffs/point in time restore of user data, but you could use rear for an entire system snapshot as well.
dd if=/dev/sda of=/dev/sdb bs=5M --status=progress
Just don’t mix up a and b otherwise you’re truly screwed.
I actually did this **dd if=(running system root volume) of=(local usb attached hard drive file) ** This gives me a full disk backup that would be no worse than if power got yanked. (I know laptops have batteries, for this case we are pretending to be a desktop with no UPS)
I like rdiff-backup (like someone already mentioned in a comment) for some things but if you want a GUI :
Tested them both. First one can scheduled backups and iirc it will ask you to insert the USB disk you used when the time is there.