parse_cmdline() {
proxdebug=0
+ proxtui=0
# shellcheck disable=SC2013 # per word splitting is wanted here
for par in $(cat /proc/cmdline); do
case $par in
proxdebug)
- proxdebug=1
+ proxdebug=1
+ ;;
+ proxtui)
+ proxtui=1
+ ;;
+ console=ttyS*)
+ serial=1
;;
esac
done;
echo "rebooting - please remove the ISO boot media"
sleep 3
- reboot -f
+ reboot -nf
sleep 5
echo "trigger reset system request"
# we do not expect the reboot above to fail, so rather to avoid kpanic when pid 1 exits
mount -n -t efivarfs efivarfs /sys/firmware/efi/efivars
fi
mount -n -t tmpfs tmpfs /run
+mkdir -p /run/proxmox-installer
parse_cmdline
# we use a trimmed down debootstrap so make busybox tools available to compensate that
busybox --install -s || true
+setupcon || echo "setupcon failed, TUI rendering might be garbled - $?"
+
if [ $proxdebug -ne 0 ]; then
/sbin/agetty -o '-p -- \\u' --noclear tty9 &
printf "\nDropping in debug shell before starting installation\n"
- echo "type exit or CTRL-D to continue and start the installation wizard"
+ echo "type 'exit' or press CTRL + D to continue and start the installation wizard"
debugsh || true
fi
echo "Starting a root shell on tty3."
setsid /sbin/agetty -a root --noclear tty3 &
-xinit -- -dpi "$DPI" >/dev/tty2 2>&1
+/usr/bin/proxmox-low-level-installer dump-env
+
+if [ $proxtui -ne 0 ]; then
+ if [ "$serial" -ne 0 ]; then
+ echo "Setting terminal size to 80x24 for serial install"
+ stty columns 80 rows 25
+ fi
+
+ echo "Starting the TUI installer"
+ /usr/bin/proxmox-tui-installer 2>/dev/tty2
+else
+ echo "Starting the installer GUI - see tty2 (CTRL+ALT+F2) for any errors..."
+ xinit -- -dpi "$DPI" >/dev/tty2 2>&1
+fi
# just to be sure everything is on disk
sync