Ne plus prendre une machine installée pour une session live

L'installateur de Mint laisse un /cdrom vide derrière lui. Le test s'y fiait,
et déclarait donc « session live » une machine parfaitement installée —
constaté le 24/09/2026 sur un HP 250 G4, qui annonçait « relevé avant
installation » alors que Mint 22.3 tournait dessus.

Ce n'est pas anodin : la durée d'une installation se mesure entre le relevé
d'avant et celui d'après, et deux relevés « avant » ne se soustraient pas. Une
machine mal reconnue ne compte donc jamais dans les statistiques.

Le signe qui ne trompe pas est la racine montée en overlay ou en squashfs, ce
qu'aucun système installé ne fait, avec boot=casper sur la ligne du noyau. Les
répertoires ne sont retenus que s'ils sont réellement montés, depuis un support
en lecture seule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XLTJ8DoPfvhZMK5Yxtrfx2
This commit is contained in:
Cédrix 2026-09-24 22:34:07 +02:00
parent 6f2b9cc0f0
commit 122c0f22c3

View file

@ -106,12 +106,24 @@ ARCHITECTURE="$(uname -m)"
# comparer — un disque qui allait bien le matin et qui se plaint le soir, cela # comparer — un disque qui allait bien le matin et qui se plaint le soir, cela
# se voit. # se voit.
# #
# Une session live monte sa racine en overlay au-dessus d'un squashfs, et garde # Le signe qui ne trompe pas est la racine : une session live la monte en
# un /cdrom ou un /rofs. Aucun de ces signes n'existe sur un système installé. # overlay au-dessus d'un squashfs, ce qu'aucun système installé ne fait. S'y
# ajoute « boot=casper » ou « boot=live » sur la ligne de commande du noyau.
#
# L'existence de /cdrom ou de /rofs, elle, ne prouve rien : l'installateur de
# Mint laisse un /cdrom vide derrière lui. La première version de ce test a
# donc déclaré « session live » une machine parfaitement installée — constaté
# le 24/09/2026 sur un HP 250 G4. Ce n'est pas anodin : la durée d'une
# installation se mesure entre le relevé d'avant et celui d'après, et deux
# relevés « avant » ne se soustraient pas. On ne retient donc ces répertoires
# que s'ils sont réellement montés, et montés depuis un support en lecture
# seule.
MOMENT="post-installation" MOMENT="post-installation"
if [ -d /rofs ] || [ -d /cdrom ] \ if findmnt -n -o FSTYPE / 2>/dev/null | grep -qE '^(overlay|aufs|squashfs)$' \
|| findmnt -n -o FSTYPE / 2>/dev/null | grep -qE '^(overlay|aufs|squashfs)$' \ || grep -qE '(^| )boot=(casper|live)( |$)' /proc/cmdline 2>/dev/null \
|| grep -qE '(^| )(boot=casper|boot=live)( |$)' /proc/cmdline 2>/dev/null; then || mountpoint -q /rofs 2>/dev/null \
|| { mountpoint -q /cdrom 2>/dev/null \
&& findmnt -n -o FSTYPE /cdrom 2>/dev/null | grep -qE '^(iso9660|squashfs)$'; }; then
MOMENT="live" MOMENT="live"
fi fi