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>
39 lines
1.3 KiB
Bash
Executable File
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
|