Commit graph

15 commits

Author SHA1 Message Date
Cédrix
4b56a7967d 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
2026-09-26 00:13:36 +02:00
Cédrix
a95139d6ae Donner à ces scripts un dépôt qui dit ce qu'ils sont
Ces trois fichiers vivaient dans le dépôt du wiki, seuls fichiers exécutables
parmi cent dix pages de documentation. Le wiki est public et sa branche main
n'est pas protégée ; le serveur de l'install party en recopie deux toutes les
heures et les distribue en root aux machines des participants. Un commit de
documentation et un commit de code y avaient donc les mêmes conséquences, et
rien ne le disait.

Ils sont désormais chez eux, classés par contexte d'exécution — qui les lance,
sur quelle machine, avec quels droits — et non par distribution : « poste/ »
tient les trois ensemble, ce qu'impose de toute façon l'appel du relevé par
install.sh, qui le cherche à côté de lui.

La branche stable est ce que les machines reçoivent, main ce sur quoi on
travaille. Avancer l'une sur l'autre demande d'avoir essayé sur une machine :
c'est le relecteur qui manquait.

L'historique des trois fichiers est conservé, depuis la migration du monorepo
alpinux.site.2026 en mai. Les adresses de téléchargement de leurs en-têtes
sont reprises.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BssvzfDMeXVoUQHEcnavW7
2026-09-25 23:50:38 +02:00
Cédrix
e301327f45 Compter les caractères et non les octets, dans le tableau des disques
Ces trois correctifs avaient été éprouvés sur alpicache jeudi soir — commit
5d606ab du dépôt du serveur, 22 h 56 — cinq minutes après que ce dépôt-ci ait
repris le relevé. Ils n'ont donc jamais été versés ici, et la version amont,
celle que le serveur redistribue, les ignorait. Les voilà.

« printf %-10s » compte les octets : « mécanique » en pèse dix pour neuf
signes, et le tableau des disques glissait d'un cran à partir de la deuxième
colonne. La fonction « colonne » compte les caractères, ce que Bash sait faire
quand la locale le permet — d'où la locale forcée plutôt qu'espérée.

Le contrôle affiche par ailleurs les chiffres sur lesquels il se fonde, et pas
seulement ce qui cloche : modèle, type, taille, état SMART, heures de marche
pour un disque mécanique ou usure pour un SSD, et les trois compteurs de
secteurs. On peut répondre à qui demande comment se porte son disque, même
quand tout va bien.

Cette version est désormais identique, au seul en-tête d'usage près, à celle
qui tourne sur la machine.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BssvzfDMeXVoUQHEcnavW7
2026-09-25 23:02:56 +02:00
Alpinux
790874682b Faire voyager le verdict avec la fiche, au lieu de le refaire au serveur
Sur une machine réelle, un HP 250 G4 affichait devant son propriétaire
« NE PAS INSTALLER EN L'ÉTAT — 976 secteurs en attente », et apparaissait
« sain » sur le tableau de bord. La fiche ne transportait que le compteur
de secteurs réalloués, nul sur ce disque, et le serveur rejugeait
là-dessus. Deux juges, deux verdicts, et c'est le rassurant qu'on lisait.

Le verdict part désormais avec la fiche — champs « verdict » et
« motifs », ces derniers débarrassés de leurs couleurs — et le serveur
les affiche sans rien recalculer. Un seul juge, celui qui a vu le disque.

Les trois compteurs SMART cessent d'être confondus : les secteurs
réalloués disent l'usure et se comptent, ceux en attente et les
illisibles disent une panne en cours, et un seul suffit à déclencher
l'alerte. Ce ne sont pas des secteurs fatigués mais des données que le
disque n'arrive plus à relire. Les deux nouveaux compteurs voyagent aussi
dans la fiche.

Le relevé se chronomètre enfin, sur la collecte seule : la pause du
verdict attend quelqu'un devant l'écran, la mesurer reviendrait à
chronométrer la personne.

Constat, correctifs et version de référence : session alpicache.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-24 22:56:13 +02:00
Alpinux
7795ad3158 Reprendre le relevé éprouvé sur machine, avec ses trois correctifs
La session alpicache a essayé le relevé sur une machine réelle et en a
tiré trois défauts, tous vérifiés là-bas :

Le verdict ne sortait qu'en session live. Relancé après installation, le
relevé ne disait donc rien de l'état des disques — précisément ce dont on
voulait parler au propriétaire pendant qu'il est encore là. Il sort
maintenant à tous les coups, sauf en mode --montrer.

Un disque mécanique n'était signalé qu'au-delà de cinq ans de marche, ce
qui laissait passer sans un mot un disque de trois ans — alors que c'est
le premier frein d'une machine par ailleurs correcte. Il se signale
désormais quel que soit son âge, qui est simplement rappelé.

Le verdict défilait sans que personne ne le lise : trois secondes quand
tout va bien, vingt avec des réserves, et il attend une touche — deux
minutes au plus — quand il dit de ne pas installer. Jamais indéfiniment,
ni du tout sans terminal : le script tourne aussi appelé par install.sh.

La détection de session live est reprise dans sa version, plus fine que
celle que j'avais faite : /cdrom et /rofs comptent de nouveau, mais
seulement montés, et pour /cdrom seulement avec un système de fichiers
de média. Un répertoire vide ne prouve plus rien.

Seul l'en-tête reste de moi : le script se prend dans ce dépôt, pas sur
le serveur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-24 22:41:19 +02:00
Alpinux
b5efc63600 alpi-fiche : ne plus prendre un /cdrom vide pour une session live
L'installateur de Mint laisse derrière lui un /cdrom vide sur la machine
installée. La détection s'y fiait, et déclarait donc « session live » des
machines parfaitement installées — ce qui fausse aussi le chronométrage,
puisqu'il se calcule entre les deux relevés.

Restent les deux signes qui ne mentent pas : la racine montée en overlay
ou squashfs, et boot=casper sur la ligne du noyau. /rofs disparaît avec
/cdrom, n'ayant pas plus de valeur probante.

Constat de la session alpicache, sur une machine réelle. Je n'ai pas pu
le reproduire moi-même — la machine d'essai ne se laissait pas piloter —
mais le changement est sûr dans les deux sens : ces deux signes-là sont
présents sur toute session live, et aucun ne l'est sur un système
installé.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-24 22:38:04 +02:00
Alpinux
d1f400a599 Verser le relevé de fiche matérielle dans le dépôt
La demande initiale faisait télécharger un script depuis alpicache et
l'exécuter en root sur la machine de chaque participant. Le relevé est
désormais versionné ici, relu comme le reste, et appelé localement : rien
n'est tiré du réseau, rien n'est exécuté sans avoir été publié.

Le script vient de la session alpicache, éprouvé sur place. Il relève le
modèle, le processeur, la mémoire et le détail de ses connecteurs, les
disques et leur état SMART, puis envoie la fiche au serveur de la salle.
Depuis une session live, il rend en plus un verdict — bon, avec réserves,
ou ne pas installer — que le bénévole peut opposer à un disque qui
faiblit pendant que la machine est encore là.

install.sh l'appelle en tête de fichier, dans sa passe root, et seulement
s'il le trouve à côté de lui : une machine qui rejoue le script chez son
propriétaire n'envoie rien à personne.

L'en-tête du relevé disait « rien qui touche à la personne ». C'était
inexact : la fiche emporte le nom de la machine — souvent un prénom — et
l'adresse matérielle de la carte réseau. Les deux sont maintenant
nommés, dans le script comme dans le guide, avec la consigne qui va
avec : le dire à la personne dont on installe l'ordinateur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-24 22:37:36 +02:00
49c84c04f5 Ne pas régénérer GRUB quand il est déjà configuré (#15) 2026-09-24 20:34:59 +00:00
Cédrix
a25488101e Ne pas régénérer GRUB quand il est déjà configuré
update-grub lance os-prober, qui sonde toutes les partitions à la recherche
d'autres systèmes, puis régénère la configuration entière : vingt à trente
secondes par machine, payées jusqu'ici même lorsqu'il n'y avait rien à changer.
Sur une install party de quinze machines, cela se voit.

La fonction vérifie donc d'abord, et sort si les deux réglages sont là.

Deux défauts corrigés au passage. Le sed insérait ses lignes avec
l'indentation du script : /etc/default/grub se retrouvait avec des directives
décalées, que GRUB accepte mais qui trompent la lecture quand on vient
déboguer. Et il ne faisait rien du tout si « GRUB_DEFAULT=0 » avait disparu,
ce qui arrive dès qu'un autre outil est passé avant nous — les deux lignes sont
désormais ajoutées si elles manquent, plutôt qu'insérées avant une ligne qui
peut ne plus exister.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
2026-09-24 22:34:39 +02:00
Alpinux
1c19aee031 install.sh : afficher le saut de ligne au lieu de l'écrire
« ==> Mise à jour du système\n » s'affichait tel quel, barre-n comprise,
sur l'écran des participants : le echo de cette ligne avait perdu son
-e. Relevé pendant une installation ce soir, à deux jours de l'install
party.

Au passage, « Configuraiton de dconf » devient une ligne de la même
famille que les autres — préfixe ==> et orthographe.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-24 22:07:03 +02:00
Alpinux
0a4d321478 install.sh : appeler modif_grub, qui ne l'était pas
Script joué de bout en bout sur une Mint 22.3 fraîchement installée.
Il se termine bien — polices Microsoft sans intervention, logiciels
installés, swappiness à 10, auto-destruction — mais deux choses ne
faisaient pas ce qu'elles annoncent.

modif_grub était définie et jamais appelée : après exécution,
/etc/default/grub contenait toujours GRUB_DEFAULT=0. Le réglage annoncé
— redémarrer sur la dernière entrée utilisée — n'avait donc jamais lieu.
L'appel est ajouté.

opti_fstab, elle, s'exécute sans effet : le fstab écrit par Mint 22.3 ne
contient pas « relatime », donc la substitution ne trouve rien. Constat
documenté dans la fonction plutôt que corrigé à l'aveugle, toucher aux
options de montage méritant une décision explicite.

GREEN et NC étaient utilisés sans être définis : les messages de fin
sortaient sans couleur.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-20 09:12:22 +02:00
Alpinux
4a44a3fa40 verif-disque : noms de partitions propres, et signaler un Linux déjà installé
lsblk -pn dessine un arbre : les noms de partitions héritaient des
caractères ├─ dans le rapport. La liste plate (-pnl) les donne nus.

Un Linux déjà présent était affiché sans commentaire : sur une machine
qu'on réinstalle, ce sont des données à sauvegarder d'abord.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-20 08:59:58 +02:00
Alpinux
2cbf64c16c Ajouter un script d'état des lieux du disque avant installation
En install party, personne ne regarde le disque avant de le partitionner.
On découvre en cours de route qu'il y avait deux disques, une partition
de récupération, un Windows chiffré par BitLocker ou un disque fatigué —
et il est alors trop tard.

En session live, taper les commandes une à une est fastidieux et suppose
de les connaître. Le script les enchaîne et rend un verdict lisible :
machine (64 bits, RAM, édition conseillée), mode de démarrage et Secure
Boot, disques et tables de partition, systèmes déjà installés, BitLocker,
hibernation de Windows, LUKS, santé SMART, accès réseau. Il se termine par
deux listes : ce qui bloque, et ce qu'il faut savoir.

Il ne modifie rien — lectures seules, montages en lecture seule et
démontés dans la foulée.

Au passage, l'encadré du guide sur le script de post-installation
annonçait une licence à accepter à la main : l'exécution réelle montre
que les polices Microsoft s'installent sans intervention.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-20 08:55:18 +02:00
Alpinux
aa3a04166f Corriger les guides Linux Mint d'après une installation réelle en 22.3
Installation menée de bout en bout sur une machine virtuelle, de la clé
USB au premier démarrage. Ce que l'écran dit et ce que nos pages
disaient ne concordaient pas toujours.

Le plus grave : les quatre niveaux de mise à jour, que « Utiliser Linux
Mint » décrivait avec son tableau et son menu Édition → Niveaux,
n'existent plus. Ni la clé de configuration, ni l'entrée de menu. Le
menu Édition contient Préférences, Instantanés système et Sources de
logiciels ; les préférences ont trois onglets. Mint répond désormais au
risque de régression par les instantanés système, qu'il met en avant dès
le premier lancement.

Dans le guide d'installation, sept libellés ne correspondaient plus :
l'entrée GRUB porte la version, les variantes de clavier sont en anglais
— « French (legacy, alt.) » et non « Français (variante) » —, le bouton
du type d'installation est « Installer maintenant », aucun choix GPT/MBR
n'est proposé, le disque de démarrage s'appelle « programme de
démarrage », la case des codecs est décochée par défaut, et l'option de
mot de passe à l'ouverture de session est déjà cochée.

Vérifié aussi, et conforme : le pare-feu est installé mais inactif, la
proposition de miroir local existe bien, mintreport, mintdrivers et
timeshift sont présents d'origine.

Enfin, install.sh donnait dans son propre mode d'emploi l'adresse de
l'ancien monorepo ; sa description dans le guide est reprise d'après ce
qu'il fait réellement.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-20 08:04:23 +02:00
Alpinux
75bc1eb4fc initial commit — migration depuis monorepo alpinux.site.2026 2026-05-03 17:48:11 +02:00