Hi! A friend just recommended the backup tool that comes with Ubuntu. I took a look at it and was wondering what you guys include and exclude from the backups. I just installed wire guard VPN and but the config file in the etc/wireguard folder, where it belongs. I would have to include this folder as well if I want to keep my configs. And I guess many programs do the same, so how do you know what to include, so you can just revert to the last backup if something breaks or you get a new machine? Maybe that is a stupid question, but it was going through my head for some time now. Thanks a lot!
If you want to be able to restore the machine completely, with everything installed and configured, then yes you have to backup everything. There’s generally two ways, file-level backup where you’d use something like rsync, tar, etc. and block-level where you’d backup the whole partition/disk using something like dd, clonezilla, etc. The latter is the easiest to restore but it’s a bit of a pain to backup because the system generally has to be offline, booted from alternative OS. The forner is a bit more difficult to restore but not by much, and it’s so easier to backup. You can do it while the system is live. I’d probably try that first. Find documentation on backing up a complete root filesystem with rsync/tar and you’re good to go. Some ideas. It’s typically a single command which can be run on a schedule.
The built-in GUI backup tool is generally intended for your own user data. In order to be able to backup other things it’ll have to run as root or be given caps and that might get more complicated than using straight rsync/tar.
You can use Borg for both things you mentioned. It stores deduplicated chunks so it doesn’t care if you backup files or a block device.
Not sure why you’d have to be offline to do that though.
Because if you’re not offline, something is writing to the filesystem and changing blocks while you’re copying. If you’re lucky what you copied would be outdated. If you’re less lucky it would cause fs inconsistency which would be cleaned up by fsck. If you are even less lucky you’d end up with silently corrupted files, e.g. a text file with old parts mixed with new. If you’re even less lucky, you’d hit a vital metadata part of the fs and it would not be mountable anymore.
To clarify, the filesystem being block-copied has to be offline or mounted RO, not the whole OS. However if that’s the root/home filesystem, then you can’t unmount it while the OS is online.
If you don’t want to deal with that you need a filesystem or volume manager that supports snapshots, then you can copy the snapshot. E.g. snapshot your root LVM vol, then block-copy the snapshot.
What I am always wondering, to set up Linux until everything runs without problem, it takes quite some time for me. I use Linux for about a year regularly, and had to set it up about 4-5 times. And it almost always is a pain and I need to search online for some time until everything works. Is it getting easier the more often it’s done? Or do you create a setup script that runs everything if you reinstall the system?
I use config-as-code for some stuff but in reality there are many manual steps that aren’t covered. This is why I run an LVM mirror (RAID1) with two SSDs and I keep a full backup. The system hasn’t been reinstalled in 10 years.
If you feel the way you do, you should probably just do a full disk backup with clonezilla or dd every X days and be done with it. If X is large, e.g. months, you should also run home dir backup more often. The Ubuntu built-in tool is great for that. Then when something dies, restore the whole OS from the clonezilla/dd backup, boot, then restore the most recent home dir backup, reboot, and you’re back. Minimal effort.
@avidamoeba @WbrJr Just install a pre-configured distro like Mint or Fedora and stay away from Arch
I started my journey with fedora, but got annoyed by things like not working videos. Ubuntu works for me pretty well and I had very little issues with it compared to fedora. And that’s what I seek in an os