Abbruch sauber (kein ERR-Trap im Auto-Modus), statt root-Shell Neustart per ENTER (Produktiv), isolinux-Menue deutsch (VM-Tests T3/T4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-03 13:13:45 +02:00
1 parent e494b5835b
commit 437bdc79df
3 files changed
+54 -18

No files matched your search

@@ -16,6 +16,23 @@ for cfg in boot/grub/grub.cfg isolinux/live.cfg; do
"${cfg}"
done
# isolinux (BIOS, VM-Test 03.10.2026): Titel "Boot menu" ragte ins Logo,
# Untermenue und Hilfezeilen waren englisch. "menu autoboot" ist die
# vesamenu-Vorlage fuer den Countdown (# = Sekunden).
if [ -f isolinux/menu.cfg ]; then
sed -i \
-e 's|^menu title Boot menu.*|menu title|' \
-e 's|menu label ^Utilities|menu label ^Werkzeuge|' \
-e 's|menu title Utilities|menu title Werkzeuge|' \
-e 's|menu label ^Back\.\.|menu label ^Zurueck ...|' \
isolinux/menu.cfg
fi
if [ -f isolinux/stdmenu.cfg ]; then
sed -i -e 's|^menu tabmsg .*|menu tabmsg Eingabe: starten Tab: Optionen bearbeiten|' isolinux/stdmenu.cfg
grep -q '^menu autoboot' isolinux/stdmenu.cfg ||
echo 'menu autoboot Automatischer Start in # Sekunden ...' >> isolinux/stdmenu.cfg
fi
if [ -f boot/grub/live-theme/theme.txt ]; then
# Ueberschrift weg, Fusszeile + Countdown auf Deutsch (03.10.2026). Der
# Countdown-Text ist eine printf-Vorlage (%d = verbleibende Sekunden).
+26 -14
View File
@@ -93,18 +93,30 @@ fi
# Live gefunden (31.08.2026): ein ExecStopPost, der beim Dienstende
# getty@tty1.service neu startet, ist unzuverlaessig (Race mit dem eigenen
# TTY-Teardown dieses Dienstes - der Job wurde angestossen, blieb aber
# "inactive/dead"). Stattdessen: diese Konsole faellt nach installer.sh
# (egal ob Erfolg, kontrollierter Abbruch an einem Commit-Gate, oder
# Fehler) deterministisch in eine interaktive Root-Shell - kein Race,
# garantiert nutzbare Konsole fuer Fehlersuche/manuellen Neustart. Im
# Erfolgsfall mit tatsaechlichem Deployment loest 40_backend.sh ohnehin
# selbst einen Reboot aus, wodurch diese Shell nie sichtbar wird.
{
echo
echo "Tuxflotte-Installer beendet (Exit-Code: ${STATUS})."
echo "Diese Konsole steht fuer Fehlersuche/manuellen Neustart zur Verfuegung."
echo
} | tee -a "${LOG_FILE}"
# TTY-Teardown dieses Dienstes). Deshalb bleibt dieser Prozess selbst im
# Vordergrund. Im Erfolgsfall loest 40_backend.sh ohnehin einen Reboot aus.
#
# Kunden-ISO-Test 03.10.2026: bisher folgte hier immer eine root-Shell des
# Live-Systems ("Diese Konsole steht fuer Fehlersuche ...") - fuer Kunden
# verwirrend und unnoetig. Produktiv-Medium: Neustart per ENTER (wie am Ende
# von 40_backend.sh); nur Dev-Builds (build_boot_medium.sh --dev) behalten
# die Shell fuer die Fehlersuche.
if [[ -e /etc/tuxflotte-dev-build ]]; then
{
echo
echo "Tuxflotte-Installer beendet (Exit-Code: ${STATUS})."
echo "Dev-Build: diese Konsole steht fuer Fehlersuche/manuellen Neustart zur Verfuegung."
echo
} | tee -a "${LOG_FILE}"
exec /bin/bash --login
fi
exec /bin/bash --login
echo
if [[ "${STATUS}" -eq 0 ]]; then
echo " Die Installation wurde beendet."
else
echo " Die Installation wurde abgebrochen (siehe Hinweis oben)."
fi
echo " ENTER zum Neustarten - oder das Gerät einfach ausschalten."
read -r _ || true
reboot
+11 -4
View File
@@ -179,8 +179,14 @@ run_module() {
# dann darf es NICHT durch run_module_quiet() laufen (siehe
# _tuxflotte_device_previously_installed()).
if [[ "${TUXFLOTTE_AUTO_MODE:-false}" == "true" ]]; then
# VM-Test 03.10.2026: ein im Auto-Modus fehlschlagendes Modul (z.B. die
# Vorabpruefung) loeste ueber den Rueckgabewert zusaetzlich den
# ERR-Trap aus ("Unerwarteter Fehler in Zeile N") - dasselbe Muster wie
# beim Bare-Metal-Fund vom 21.09. im ausfuehrlichen Zweig unten. "exit"
# statt Rueckgabewert, die Fehlermeldung des Moduls steht schon da.
local auto_status=0
if _tuxflotte_module_is_backend "${module_name}"; then
run_module_backend "$module"
run_module_backend "$module" || auto_status=$?
elif [[ "${module_name}" == "25_installation_confirm.sh" ]] && _tuxflotte_device_previously_installed; then
# Kunden-ISO-Test 02.10.2026 (R3): Titel + gruenes [OK] wie bei allen
# anderen Schritten statt log_step/"Starte Modul ..."; die
@@ -196,11 +202,12 @@ run_module() {
else
log_module_failed "${confirm_title}"
fi
return "${confirm_status}"
auto_status="${confirm_status}"
else
run_module_quiet "$module"
run_module_quiet "$module" || auto_status=$?
fi
return "$?"
[[ "${auto_status}" -eq 0 ]] || exit "${auto_status}"
return 0
fi
log_step "${module_name}"