/etc is 10–50 MB of mostly text: take the whole directory, not cherry-picked configs:

pacman -Qqe > ~/pkglist.txt      # explicitly installed
pacman -Qqm > ~/aur-pkglist.txt  # from the AUR

Those two lists make a rebuild an hour, not a weekend. Easy to forget beyond /etc: ~/.config, the shell dotfiles, ~/.ssh, ~/.gnupg, ~/.gitconfig, the bootloader config — /etc/default/grub for GRUB, /boot/loader/ for systemd-boot, outside /etc.

One Borg run covering system, user config and package state:

borg create \
  --stats \
  --compression zstd,6 \
  --exclude '/home/*/.cache' \
  --exclude '/home/*/.local/share/Trash' \
  ::arch-{now:%Y-%m-%d} \
  /etc \
  /home/$USER/.config \
  /home/$USER/.local/share \
  /home/$USER/.bashrc \
  /home/$USER/.zshrc \
  /home/$USER/.profile \
  /home/$USER/.ssh \
  /home/$USER/.gnupg \
  /home/$USER/.gitconfig \
  /home/$USER/pkglist.txt \
  /home/$USER/aur-pkglist.txt

Preview and retention:

borg create --dry-run ::test /etc
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 --stats

⚠️ Restoring /etc wholesale onto a fresh install is the mistake: some of it is machine-specific or generated at install time. Diff first, then apply what you want:

rsync -a --dry-run etc-backup/ /etc/
diff -ruN etc-backup/ /etc/

pacman -Qkk verifies tracked files against their package — the check for an altered restore.

Which bootloader is in use Link to this section

archinstall picks by firmware; the bootloader matters when restoring /boot:

ScenarioBootloader
UEFI (the default path)systemd-boot
BIOS / legacyGRUB
Manual selectioneither, or none

systemd-boot installs to /boot/EFI/systemd/, entries under /boot/loader/entries/arch.conf. Confirm, do not assume:

bootctl status

bootctl reporting systemd-boot information means systemd-boot; if not found, GRUB or a manual setup.

References Link to this section