--- # Exécuté HORS chroot (live system) pour accéder à l'ISO montée. # But : restaurer le kernel (retiré du squashfs par mkarchiso) et # corriger les fichiers mkinitcpio archiso-spécifiques. dontChroot: true # Timeout par défaut (secondes) appliqué à chaque commande. # La valeur par défaut de Calamares est 30 s — beaucoup trop courte # pour l'installation d'un bureau complet (pacman télécharge des # centaines de Mo). On relève le défaut et on accorde un délai # spécifique très large à la commande d'init du bureau. timeout: 300 script: # Copie le kernel depuis l'ISO vers /boot du système cible - 'cp "$(find /run/archiso/bootmnt -name vmlinuz-linux 2>/dev/null | head -1)" "${ROOT}/boot/vmlinuz-linux"' # Installation du bureau choisi : peut être long (réseau + gros DE # comme KDE/GNOME) → 1 h de marge pour ne jamais expirer à tort. # # arch-chroot (et non « chroot » brut) : monte /proc /sys /dev /run et # copie resolv.conf dans la cible. Indispensable, sinon les hooks # post-transaction de pacman (systemd daemon-reload, udev, tmpfiles…) # échouent faute de ces points de montage → pacman sort en code 1 # alors même que les téléchargements ont réussi. # Le nom du bureau est validé contre une allow-list (mêmes valeurs que # les scripts fws-desktop-init-* présents) : toute valeur vide / inconnue # / avec espace parasite retombe sur xfce → jamais d'abandon d'install sur # un script d'init manquant. - command: 'd="$(cat /run/fws-desktop 2>/dev/null)"; d="${d%%[[:space:]]*}"; case "$d" in xfce|kde|gnome|hyprland) ;; *) d=xfce ;; esac; arch-chroot "${ROOT}" /bin/bash "/usr/local/bin/fws-desktop-init-$d"' timeout: 3600 # ── Nettoyage des artefacts « live-only » qui ne doivent PAS persister # sur le système installé (le squashfs du live devient le root cible) ── # 1) Autologin root SANS mot de passe sur tty1 (drop-in getty du live) : # trou de sécurité + conflit avec le display manager sur vt1. - 'rm -rf "${ROOT}/etc/systemd/system/getty@tty1.service.d"' # 2) Provisionnement auto archiso (param noyau script=) : ne doit jamais # tourner sur la machine installée. - 'rm -f "${ROOT}/root/.zlogin" "${ROOT}/root/.automated_script.sh"' # Supprime le drop-in archiso (surcharge HOOKS avec des hooks inexistants post-install) - 'rm -f "${ROOT}/etc/mkinitcpio.conf.d/archiso.conf"' # Remplace le linux.preset archiso par le preset standard (default + fallback) # \x27 = ' et \x22 = " pour éviter les conflits de quotes dans YAML/bash - 'printf "PRESETS=(\x27default\x27 \x27fallback\x27)\nALL_kver=\x22/boot/vmlinuz-linux\x22\nALL_config=\x22/etc/mkinitcpio.conf\x22\nALL_microcode=(/boot/*-ucode.img)\ndefault_image=\x22/boot/initramfs-linux.img\x22\nfallback_image=\x22/boot/initramfs-linux-fallback.img\x22\nfallback_options=\x22-S autodetect\x22\n" > "${ROOT}/etc/mkinitcpio.d/linux.preset"'