Thomas Stallinger 683cf70af5 fix: /updates auf dem Live-System deployen + Kunden-ISO-Build (Phase 4)
Casper merged /updates nie automatisch auf das gebootete Live-System -
eine seit Projektbeginn unverifizierte Annahme, die erst beim echten
QEMU-Boot (UEFI, kompletter GRUB->Live-Desktop-Pfad) einer personalisierten
Kunden-ISO aufgefallen ist: /opt/tuxflotte fehlte trotz korrekt auf dem
Medium liegendem /cdrom/updates vollständig.

Fix per casper-bottom-Hook, eingebettet via Initrd-Cpio-Konkatenation
(scripts/lib/initrd.sh, derselbe in Phase 1 verifizierte Mechanismus wie
beim Kexec-Preseed). Wichtig dabei: ein komplett neuer Hook-Skriptname wird
nie ausgeführt, weil mkinitramfs eine statische ORDER-Datei mit der
Aufrufliste ins Initrd backt - stattdessen wird der Inhalt des bereits
gelisteten, garantiert letzten Skripts (99casperboot) überschrieben.

start-kiosk.sh erkennt jetzt TUXFLOTTE_AUTO_MODE und startet den Installer
automatisch statt der Kiosk-Startseite. build_customer_iso.sh baut daraus
personalisierte Kunden-ISOs (WLAN-Zugangsdaten + Enrollment-Session-Code).

Nebenbei zwei vorbestehende Bugs behoben: xorriso -osirrox übernimmt
Original-ISO-Dateirechte (oft 444/555, kein Write-Bit), was cp/rm -rf in
build.sh/build_customer_iso.sh bisher unbemerkt kaputt gemacht hat.

Real per QEMU verifiziert (echter GRUB-Boot einer gebauten Kunden-ISO).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-06 22:18:04 +02:00

39 lines
1.3 KiB
Bash
Executable File

#! /bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
# Ueberschreibt das originale 99casperboot (macht nur `touch
# /run/.casper-boot`) statt einen zusaetzlichen, neuen Hook-Skriptnamen
# einzufuehren: initramfs-tools generiert beim ISO-Bau eine ORDER-Datei
# (scripts/casper-bottom/ORDER) mit der fest verdrahteten Aufruf-Reihenfolge
# aller casper-bottom-Skripte - real durch Extraktion des echten initrd.lz
# mit unmkinitramfs bestaetigt. Ein per Initrd-Cpio-Layer NEU hinzugefuegtes
# Skript taucht in dieser ORDER-Datei nicht auf und wird nie aufgerufen,
# selbst wenn die Datei im initramfs physisch vorhanden ist (erste Version
# dieses Fixes ist daran gescheitert). Das Ueberschreiben eines bereits in
# ORDER referenzierten Pfads funktioniert dagegen zuverlaessig (spaetere
# cpio-Schichten ueberschreiben Dateiinhalte am selben Pfad, siehe
# scripts/lib/initrd.sh - derselbe Mechanismus, der schon fuer das
# Kexec-Preseed in Phase 1 verifiziert wurde). 99casperboot ist laut ORDER
# das letzte casper-bottom-Skript ueberhaupt - garantiert nach 05mountpoints,
# das /cdrom nach /root/cdrom umhaengt und damit die Voraussetzung fuer den
# folgenden Kopiervorgang schafft.
if [ -d /root/cdrom/updates ]; then
cp -a /root/cdrom/updates/. /root/
fi
touch /run/.casper-boot