I’d like to be able to restore my Fedora 41 Workstation setup in the event a disaster strikes the laptop, e.g. fire. Note I didn’t say “easily”, but that’d certainly be nice. I’m quite familiar with various backup strategies and am using borg (via Pika) for my ~
, to a NAS that is in turn backed up across two physically disparate sites.
A borg backup of ~
is fine for my data but doesn’t capture the system config; this is something I’d normally make a non-issue via IaC (e.g. cloud-init + Ansible), but I don’t particularly want to have to manage my personal “daily driver” that rigorously.
I’m looking for a definition of the necessary and sufficient (i.e. bare minimum) information that is required to replicate an operating Fedora 41 Workstation instance to a newly installed instance. I’ve reviewed many of the posts here tagged as backup and there are many good ideas on system imaging, etc, I can’t really see the “necessary and sufficient” question addressed.
I expect I’d have a crude form of an answer if I got a second laptop and did a new install on it, then did a figurative rsync --dry-run --one-file-system a:/ b:/
; but I trust there’s a better way (I also don’t have a second laptop available ;-).
For example:
-
things I installed or removed:
- put
dnf history list > ~/dnf-history
in crontab, in turn backed up as part of my home dir
- put
-
things I tweaked by editing them:
- extract the files listed by
sudo rpm --all --verify --nomtime --nomode --nouser --nogroup
and add them to my regular borg backups (ignoring file attributes as for some reason there are many); separate borg backup as presumably will need to run as root - add
/usr/local/
to the above, for completeness
- extract the files listed by
-
things I configured via GNOME Settings or related apps:
- I believe most of this is in GNOME’s
~/.*
files, and thus captured in my~
backup, but I presume system stuff such as network config is not; I expect there are a list of/etc/
paths I would need to explicitly backup, e.g./etc/{NetworkManager,firewalld}
- I suspect it’s a fool’s errand to try and be selective about
/etc/
, and simplest to just back the whole thing up and sort our the diffs later if needed…
- I believe most of this is in GNOME’s
Your insights on what I’ve missed in the above would be appreciated.
FTR, I have a bunch of other requirements/desires:
-
I don’t want a system image: rather I want to back up only the file-level delta between what comes with a Fedora 41 out-of-the-box and my machine’s current state
- e.g. network configs, installed apps, GNOME Settings, anything in
/etc/
(or ideally anywhere in/
) that I tweaked and then promptly forgot about - the motivation for only backing up things that have changed is that a) it’s an implicit record of stuff I’ve fiddled with, and b) it’s far less data
- e.g. network configs, installed apps, GNOME Settings, anything in
-
set-and-forget: any approach that requires me to remember to do something is doomed to fail
-
I don’t need a particularly quick recovery time, replacing the physical hardware will take days to weeks so a few hours reinstalling/etc to get to a point where I can restore my previous state isn’t going to be a problem
FTR, I recognise there are some things that just can’t be backed up, e.g. firmware state (also likely not relevant as any replacement hardware may be a different model).