Lancer install.sh dès la session live, pour que le décompte démarre

La durée réelle d'une installation est l'écart entre les deux relevés d'une même
machine, horodatés par le serveur. Sans relevé en session live, il n'y a pas
d'heure de départ, et la seule chose qu'on mesure est la post-installation.
D'où la consigne : on lance install.sh dès le live.

Encore fallait-il qu'il s'y arrête. Il le faisait, mais mal, et le détail
comptait :

- la détection ne reposait que sur /cdrom/preseed/linuxmint.seed, le signe dont
  le relevé a démontré le 24/09 qu'il désigne aussi des machines installées —
  et s'il manque sur l'ISO du jour, c'est l'inverse qui se produit : le script
  installe des paquets dans un système vivant en mémoire, qui disparaîtra au
  redémarrage ;
- elle n'intervenait qu'au milieu de modif_systeme, après configuration_apt,
  donc après une première modification ;
- lancé sans sudo, il passait d'abord par personnalisation_utilisateur, puis la
  sortie en « exit 0 » de la relance était lue comme une réussite : le script
  annonçait « Installation terminée avec succès » et se supprimait lui-même.

La session live est donc écartée en tête de fichier, avant quoi que ce soit,
avec la détection éprouvée du relevé : racine en overlay ou squashfs, et
boot=casper sur la ligne du noyau. Le script lance le relevé — avec --check,
pour que le verdict s'affiche et qu'on ait le temps de le lire — dit que rien
n'a été installé et que le serveur a noté l'heure de départ, puis s'arrête sans
se supprimer.

Les cinq situations sont vérifiées, dont le piège du 24/09 : un /cdrom monté en
ext4 sur une machine installée reste une machine installée.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BssvzfDMeXVoUQHEcnavW7
This commit is contained in:
Cédrix 2026-09-26 00:13:36 +02:00
parent a95139d6ae
commit 4b56a7967d

View file

@ -21,6 +21,58 @@ if [ "$(id -u)" = "0" ] && [ -x "$(dirname "$0")/alpi-fiche.sh" ]; then
"$(dirname "$0")/alpi-fiche.sh" || true
fi
##################################################
# Une session live : relever, et ne rien installer
#
# On lance ce script dès la session live, avant même d'installer : c'est ce
# premier relevé qui donne au serveur l'heure de départ. La durée réelle d'une
# installation est l'écart entre les deux relevés d'une même machine, horodatés
# par le serveur — sans le premier, on ne mesure rien.
#
# Rien n'est installé ici. Le système live vit en mémoire et disparaîtra au
# redémarrage : y poser des paquets coûterait du temps et de la place, sans
# rien laisser. Le script s'arrête donc après le relevé, et se relance après
# l'installation.
#
# La détection est celle du relevé, éprouvée le 24/09/2026 : la racine montée
# en overlay ou squashfs, ce qu'aucun système installé ne fait, et « boot=casper »
# sur la ligne de commande du noyau. L'existence de /cdrom n'en fait pas partie :
# l'installateur de Mint en laisse un vide derrière lui, et s'y fier faisait
# prendre des machines installées pour des sessions live.
##################################################
en_session_live() {
findmnt -n -o FSTYPE / 2>/dev/null | grep -qE '^(overlay|aufs|squashfs)$' \
|| grep -qE '(^| )boot=(casper|live)( |$)' /proc/cmdline 2>/dev/null \
|| mountpoint -q /rofs 2>/dev/null \
|| { mountpoint -q /cdrom 2>/dev/null \
&& findmnt -n -o FSTYPE /cdrom 2>/dev/null | grep -qE '^(iso9660|squashfs)$'; }
}
if en_session_live; then
echo ""
echo "==> Session live détectée : rien ne sera installé."
echo ""
releve="$(dirname "$0")/alpi-fiche.sh"
if [ -x "$releve" ]; then
if [ "$(id -u)" = "0" ]; then
"$releve" --check || true
else
sudo "$releve" --check || true
fi
echo ""
echo "==> Le serveur a noté l'heure de départ de cette installation."
else
echo " Le relevé alpi-fiche.sh n'est pas à côté de ce script : le"
echo " décompte ne démarrera pas. Prenez-le sur le serveur :"
echo " wget http://alpicache.lan/alpi-fiche.sh && chmod +x alpi-fiche.sh"
fi
echo " Relancez ce script après l'installation, sur le système installé."
echo ""
exit 0
fi
# Script de post-installation pour Linux Mint 22.3
# testé le 25/03/2026
@ -163,13 +215,12 @@ opti_apt() {
modif_systeme() {
configuration_apt
# Vérification Live USB
if [ -f "/cdrom/preseed/linuxmint.seed" ]; then
echo "Mode Live détecté. Fin du script."
exit 0
fi
# La session live est écartée en tête de script, avant toute modification :
# ce test-ci arrivait après « configuration_apt », et ne reposait que sur un
# fichier de /cdrom — le signe dont on sait depuis le 24/09 qu'il désigne
# aussi des machines installées.
install_logiciels
config_firefox_fr
config_timeshift_desactive