PC1 - sauvegarde système et réinstallation complète EndeavourOS

PC1 - sauvegarde système et réinstallation complète EndeavourOS

Notes

Dernière mise à jour : 6 novembre 2026

1. Principe

  • /home/yann est déjà sauvegardé par borg (dépôt local sur le disque USB, dépôt distant sur la Storage Box).
  • Ce qui n’est pas dans /home (paquets installés, configuration système, services, réseau, VMs) n’est sauvegardé nulle part : c’est ce qui rend une réinstallation pénible.
  • Solution : générer régulièrement un kit de restauration dans ~/restore-kit/. Comme il est dans /home/yann, ton borg actuel l’embarque sans rien changer.

⚠ Le piège à éviter. Si la passphrase du dépôt borg et la clé SSH de la Storage Box sont uniquement dans /home/yann, tu ne pourras pas ouvrir la sauvegarde le jour où /home est perdu. Garde-les aussi hors de /home : une entrée dans KeePassXC (clé SSH en pièce jointe) et une copie sur une autre machine. Vérifie-le avant tout le reste.

2. Ce qu’il faut sauvegarder en plus de /home

Élément Où Pourquoi
Listes de paquets pacman -Qqen, -Qqem, flatpak Réinstaller les mêmes applications
Services et timers activés systemctl list-unit-files --state=enabled (système et --user) Retrouver les services (borg, cert home.arpa, cryptomator, libvirt…)
SDDM /etc/sddm.conf, /etc/sddm.conf.d/ (dont 20-wayland.conf) Greeter Wayland, thème
Réseau /etc/NetworkManager/system-connections/ Connexions enp6s0 (192.168.0.20), enp7s0, bridge br0
Démarrage /etc/kernel/cmdline, /etc/dracut.conf.d/ Options noyau (référence : ne pas restaurer telles quelles, le root=UUID change)
Montages /etc/fstab Référence (les UUID changent)
Pacman /etc/pacman.conf, /etc/pacman.d/hooks, /etc/makepkg.conf Dépôts et options
CA locale /etc/ca-certificates/trust-source/anchors/ Racine homearpaCA.crt dans le magasin système
Libvirt /etc/libvirt/, XML des VMs, /var/lib/libvirt/images/ VMs de virt-manager (images : volumineuses, à sauvegarder à part)
Tailscale /var/lib/tailscale/ Identité du nœud (sinon nouvelle inscription sur Headscale)
VPN / pare-feu /etc/mullvad-vpn/, /etc/nftables.d/, /etc/nftables.conf Si présents sur pc1
SSH serveur /etc/ssh/ Seulement si sshd tourne sur pc1
Divers système /etc/sudoers.d, /etc/udev/rules.d, /etc/modprobe.d, /etc/sysctl.d, /etc/environment, /etc/hosts, /etc/systemd/system, /etc/cups Réglages locaux
Logiciels hors paquets /usr/local, /opt Par exemple cryptomator-cli s’il y est installé
Linger /var/lib/systemd/linger/ Les services utilisateur qui tournent hors session
Identité utilisateur id yann Retrouver l’UID (1000 normalement) et les groupes (wheel, libvirt…)
Secrets KeePassXC Passphrase borg, clé SSH Storage Box, mot de passe KWallet/Cryptomator

À compléter par toi : le système de fichiers de / (findmnt /), l’emplacement des images de VM, les applications Flatpak éventuelles, ce que contient /opt.

3. Script : générer le kit de restauration

À enregistrer par exemple en ~/.local/bin/restore-kit.sh. Il demande sudo pour lire /etc et /var/lib.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env bash
set -euo pipefail

KIT="$HOME/restore-kit"
mkdir -p "$KIT"
chmod 700 "$KIT"

date -Is > "$KIT/date.txt"
cat /etc/os-release > "$KIT/os-release.txt"
uname -r > "$KIT/noyau.txt"
id "$(id -un)" > "$KIT/id.txt"

# Paquets
pacman -Qqen > "$KIT/pkg-natifs.txt"     # explicites, dépôts officiels
pacman -Qqem > "$KIT/pkg-aur.txt"        # explicites, AUR / locaux
command -v flatpak >/dev/null && flatpak list --app --columns=application > "$KIT/flatpak.txt" || true

# Services
systemctl list-unit-files --state=enabled --no-legend > "$KIT/services-systeme.txt"
systemctl --user list-unit-files --state=enabled --no-legend > "$KIT/services-user.txt"
systemctl list-timers --all --no-legend > "$KIT/timers-systeme.txt"
systemctl --user list-timers --all --no-legend > "$KIT/timers-user.txt"

# Disques et partitions (référence)
lsblk -f > "$KIT/lsblk.txt"
findmnt --real > "$KIT/montages.txt"
sudo sgdisk --print /dev/nvme0n1 > "$KIT/partitions-nvme0n1.txt"

# Fichiers système (droits et attributs conservés)
FILES=(
  /etc/sddm.conf /etc/sddm.conf.d
  /etc/NetworkManager/system-connections
  /etc/fstab /etc/kernel /etc/dracut.conf.d
  /etc/pacman.conf /etc/pacman.d/hooks /etc/makepkg.conf
  /etc/ca-certificates/trust-source/anchors
  /etc/libvirt /etc/mullvad-vpn /etc/nftables.d /etc/nftables.conf
  /etc/ssh /etc/sudoers.d /etc/udev/rules.d /etc/modprobe.d /etc/sysctl.d
  /etc/environment /etc/hosts /etc/systemd/system /etc/cups
  /var/lib/tailscale /var/lib/systemd/linger
  /usr/local /opt
)
EXIST=()
for f in "${FILES[@]}"; do [ -e "$f" ] && EXIST+=("$f"); done

sudo tar --xattrs --acls -czpf "$KIT/systeme.tar.gz" "${EXIST[@]}"
sudo chown "$(id -un):$(id -gn)" "$KIT/systeme.tar.gz"
chmod 600 "$KIT/systeme.tar.gz"

echo "Kit généré dans $KIT :"
du -sh "$KIT"/* | sort -h

Remarques :

  • systeme.tar.gz contient des secrets (mots de passe Wi-Fi, clé Tailscale) : il reste dans /home/yann, donc dans un dépôt borg chiffré. Ne l’envoie jamais ailleurs en clair.
  • Vérifie la taille avec du -sh /usr/local /opt avant la première exécution : si c’est gros, retire-les de la liste.
  • Lance le script à la main avant chaque sauvegarde importante, ou ajoute-le plus tard à ton enchaînement borg (le sudo demande alors une règle NOPASSWD ou un service root dédié).
  • Les images de VM (/var/lib/libvirt/images/) ne sont pas dans le kit : sauvegarde-les séparément si elles comptent.

4. Répétition à blanc (recommandé)

Tu as le disque sda : installe-y EndeavourOS (installation séparée, avec sa propre partition EFI), puis déroule la procédure ci-dessous. C’est le seul moyen de savoir que la sauvegarde est exploitable avant d’en avoir besoin. Nettoie ensuite l’entrée de démarrage : sudo efibootmgr.

5. Procédure de réinstallation complète

5.1 Avant de commencer

  1. Vérifie que tu peux ouvrir le dépôt borg sans /home : passphrase et clé SSH retrouvées dans KeePassXC ou sur une autre machine.
  2. Prépare une clé USB avec une ISO EndeavourOS récente.
  3. Note l’UID : id yann (doit être 1000) et les groupes (le fichier ~/restore-kit/id.txt te les redonnera aussi).

5.2 Installation du système

  1. Démarre sur la clé, lance l’installateur.
  2. Nom d’utilisateur : yann (même nom, UID 1000) et nom de machine pc1.
  3. Partitionnement identique à l’actuel : une partition EFI de 2 Go montée sur /efi, le reste en /. Chargeur : systemd-boot. Système de fichiers : celui de ton installation actuelle (findmnt /).
  4. Redémarre sur le nouveau système, puis mets-le à jour : sudo pacman -Syu.

5.3 Restaurer /home depuis borg

Fais-le sans lancer la session graphique : passe sur un TTY (Ctrl+Alt+F3), connecte-toi et installe borg si besoin (sudo pacman -S --needed borg).

Dépôt local (disque USB monté, par exemple sous /run/media/yann/FreeUSB2To) :

1
export BORG_REPO=/run/media/yann/FreeUSB2To/sauvegardes/borgbackup/pc1

Dépôt distant (Storage Box, clé SSH à remettre d’abord dans ~/.ssh/ depuis KeePassXC) :

1
2
export BORG_REPO=ssh://u694796@u694796.your-storagebox.de:23/./pc1
export BORG_RSH='ssh -i ~/.ssh/bx11-yann-02'

Puis :

1
2
3
4
5
borg list                              # choisir l'archive la plus récente et saine
borg list ::NOM_ARCHIVE | head         # vérifier le début des chemins (home/yann/...)
cd /
sudo mv /home/yann /home/yann.new      # met de côté le profil neuf
sudo -E borg extract --list --numeric-owner ::NOM_ARCHIVE home/yann

Si les chemins de l’archive ne commencent pas par home/yann, adapte le dernier argument. Si le déplacement de /home/yann échoue parce que tu es dedans, fais cd / d’abord.

Vérifie : ls -la /home/yann doit montrer tes dossiers, .config, .local, .ssh, restore-kit. Garde /home/yann.new jusqu’à la fin des vérifications.

5.4 Réinstaller les applications

1
2
3
4
cd ~/restore-kit
sudo pacman -S --needed - < pkg-natifs.txt
yay -S --needed - < pkg-aur.txt          # yay est livré avec EndeavourOS
# si Flatpak : xargs -a flatpak.txt flatpak install -y

Si un paquet n’existe plus, pacman s’arrête : retire la ligne concernée du fichier et recommence.

5.5 Restaurer la configuration système (avec précaution)

1
2
mkdir ~/restore-kit/extrait
sudo tar -xzpf ~/restore-kit/systeme.tar.gz -C ~/restore-kit/extrait --xattrs --acls

Ne restaure pas en bloc sur / : copie fichier par fichier après lecture.

  • À copier : /etc/sddm.conf.d/, /etc/NetworkManager/system-connections/ (droits 600, propriétaire root), /etc/systemd/system/, /etc/sudoers.d/, /etc/udev/rules.d/, /etc/modprobe.d/, /etc/sysctl.d/, /etc/libvirt/, /etc/ca-certificates/trust-source/anchors/, /etc/mullvad-vpn/, /etc/nftables.d/.
  • À ne pas copier tel quel : /etc/fstab et /etc/kernel/cmdline (les UUID du nouveau système sont différents ; reporte seulement les options utiles, comme nowatchdog).
  • /var/lib/tailscale/ : à restaurer avant de démarrer tailscaled, sinon réinscris le poste sur Headscale avec une nouvelle clé de pré-authentification.

Puis :

1
2
3
sudo update-ca-trust               # racine homearpaCA
sudo systemctl daemon-reload
sudo nmcli connection reload

5.6 Réactiver les services

Compare avec ~/restore-kit/services-systeme.txt et services-user.txt.

1
2
3
4
5
6
7
sudo loginctl enable-linger yann                # indispensable : services utilisateur hors session
sudo systemctl enable --now NetworkManager libvirtd tailscaled   # à adapter à la liste
sudo usermod -aG libvirt,wheel yann             # selon id.txt
# cartes à puce / clés Yubikey (KeePassXC, HMAC) :
sudo systemctl enable --now pcscd.socket
systemctl --user daemon-reload
systemctl --user enable --now borg-pc1.timer homearpa-cert.timer cryptomator-vault.service surveiller-media.service  # adapte aux noms réels

Redémarre ensuite (reboot) et connecte-toi normalement.

5.7 Vérifications

  • Connexion graphique OK (SDDM sous Wayland), deux écrans en 2560x1440.
  • Réseau : enp6s0, enp7s0, bridge br0, DNS Technitium.
  • KWallet s’ouvre (même mot de passe qu’avant) ; le coffre Cryptomator se monte dans ~/Coffre.
  • KeePassXC se déverrouille avec les clés matérielles.
  • tailscale status : le poste est visible dans le tailnet.
  • Les timers utilisateur existent : systemctl --user list-timers.
  • Une sauvegarde borg manuelle réussit (borg list montre la nouvelle archive).
  • VMs : virsh list --all et démarrage d’une VM.
  • HTTPS vers *.home.arpa sans avertissement dans les navigateurs.
  • Une fois tout validé, supprime /home/yann.new.

6. Éviter la prochaine réinstallation

  • Garde linux-lts installé comme noyau de secours (c’est déjà le cas).
  • Avant une grosse mise à jour : lis les actualités Arch (https://archlinux.org/news/), puis mets à jour les clés (sudo pacman -Sy archlinux-keyring endeavouros-keyring) avant le pacman -Su complet. Ne fais jamais de mise à jour partielle.
  • Si une mise à jour échoue, note le message exact avant de forcer quoi que ce soit : la cause la plus fréquente est un trousseau de clés périmé ou un paquet en conflit, rarement irréparable.
  • Pour pouvoir restaurer le système lui-même sans réinstaller, tu peux ajouter un borg create de / avec exclusions (/proc, /sys, /dev, /run, /tmp, /mnt, /media, /home), comme tu le fais déjà sur cwwk. La restauration consiste alors à repartitionner, extraire l’archive et réinstaller le chargeur de démarrage. Plus lourd à mettre en place, mais plus rapide au moment de s’en servir.