From 4b56a7967d3792f23467f8b4e9bcdea729a23fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 26 Sep 2026 00:13:36 +0200 Subject: [PATCH] =?UTF-8?q?Lancer=20install.sh=20d=C3=A8s=20la=20session?= =?UTF-8?q?=20live,=20pour=20que=20le=20d=C3=A9compte=20d=C3=A9marre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Claude-Session: https://claude.ai/code/session_01BssvzfDMeXVoUQHEcnavW7 --- poste/install.sh | 65 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/poste/install.sh b/poste/install.sh index 8c6f4e8..30722c3 100644 --- a/poste/install.sh +++ b/poste/install.sh @@ -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