From f7237254c47bb5a3788e34491b1e16e13b842344 Mon Sep 17 00:00:00 2001 From: Kroese Date: Fri, 29 Dec 2023 20:13:35 +0100 Subject: [PATCH] fix: UEFI boot (#290) --- src/boot.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/boot.sh b/src/boot.sh index 52e25a7..83d0315 100644 --- a/src/boot.sh +++ b/src/boot.sh @@ -1,16 +1,26 @@ #!/usr/bin/env bash set -Eeuo pipefail +OVMF="/usr/share/OVMF" + # Docker environment variables -: ${BOOT_MODE:='legacy'} # Display type +: ${BOOT_MODE:='legacy'} # Boot mode case "${BOOT_MODE,,}" in uefi) - BOOT_OPTS="-bios /usr/share/OVMF/OVMF_CODE_4M.fd" + VARS="$OVMF/OVMF_VARS_4M.fd" + [ ! -f "$VARS" ] && error "UEFI vars file ($VARS) not found!" && exit 44 + [ ! -f "$STORAGE/uefi.vars" ] && cp "$VARS" "$STORAGE/uefi.vars" + BOOT_OPTS="-bios $OVMF/OVMF_CODE_4M.fd" + BOOT_OPTS="$BOOT_OPTS -drive file=$STORAGE/uefi.vars,if=pflash,format=raw" ;; secure) - BOOT_OPTS="-bios /usr/share/OVMF/OVMF_CODE_4M.secboot.fd" + VARS="$OVMF/OVMF_VARS_4M.secboot.fd" + [ ! -f "$VARS" ] && error "UEFI vars file ($VARS) not found!" && exit 44 + [ ! -f "$STORAGE/uefi.vars" ] && cp "$VARS" "$STORAGE/uefi.vars" + BOOT_OPTS="-bios $OVMF/OVMF_CODE_4M.secboot.fd" + BOOT_OPTS="$BOOT_OPTS -drive file=$STORAGE/uefi.vars,if=pflash,format=raw" ;; legacy) BOOT_OPTS=""