98d47d497c
- The installer is still W.I.P
48 lines
2.9 KiB
Plaintext
48 lines
2.9 KiB
Plaintext
---
|
|
# 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"'
|