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:
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
@@ -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
@@ -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}"
|
||||
|
||||
Reference in new issue
Block a user