packer-plugin-qemu
packer-plugin-qemu copied to clipboard
Unable to boot Windows Server 2022 in UEFI mode on RHEL 8.10 - always boots in Legacy BIOS - no errors
Overview of the Issue
I am trying to produce a proof of concept based around Windows Server 2022 (eval) but booted in UEFI mode with a vTPM. My source system is RHEL 8.10 but I can test on newer systems if that helps. All permutations of the build file are booting into SeaBIOS, and there are no errors I can see in the output of packer with PACKER_LOG=1
set. It's almost like the efi_boot
parameter is being ignored.
Reproduction Steps
- Define build file as below
- Run
packer build
- VM boots - if you open the VNC console, you can see it has booted into SeaBIOS. Also the qemu arguments do not show any EFI or OVMF related flags.
Plugin and Packer version
Packer v1.11.2
Simplified Packer Buildfile
source "qemu" "ws2022" {
accelerator = "kvm"
boot_wait = "0s"
communicator = "winrm"
cpus = "${var.cpu}"
disk_size = "${var.disk_size}"
efi_boot = true
efi_firmware_code = "/usr/share/OVMF/OVMF_CODE.secboot.fd"
efi_firmware_vars = "/usr/share/OVMF/OVMF_VARS.fd"
headless = true
iso_checksum = "${var.iso_checksum}"
iso_url = "${var.iso_url}"
machine_type = "q35"
memory = "${var.ram}"
output_directory = "windows_2022-qemu"
qemu_binary = "/usr/libexec/qemu-kvm"
qemuargs = [["-drive", "file=windows_2022-qemu/{{ .Name }},if=virtio,cache=writeback,discard=ignore,format=qcow2,index=1"],
["-drive", "file=${var.virtio_win_iso},media=cdrom,index=3"]]
vm_name = "WindowsServer2022"
vtpm = true
winrm_password = "${var.ssh_password}"
winrm_timeout = "${var.winrm_timeout}"
winrm_username = "${var.ssh_username}"
}
Operating system and Environment details
RHEL 8.10 host machine on AMD64 architecture. OVMF files installed and verified as present.
Log Fragments and crash.log files
==> qemu.ws2022: Overriding default Qemu arguments with qemuargs template option...
2024/08/02 17:03:53 packer-plugin-qemu_v1.1.0_x5.0_linux_amd64 plugin: 2024/08/02 17:03:53 Executing /usr/libexec/qemu-kvm: []string{"-drive", "file=windows_2022-qemu/WindowsServer2022,if=virtio,cache=writeback,discard=ignore,format=qcow2,index=1", "-drive", "file=/home/jamesf_local/packer-netboot-webserver/webroot/iso/virtio-win.iso,media=cdrom,index=3", "-smp", "2", "-netdev", "user,id=user.0,hostfwd=tcp::3032-:5985", "-machine", "type=q35,accel=kvm", "-m", "2048M", "-chardev", "socket,id=vtpm,path=/tmp/2886944654/vtpm.sock", "-device", "virtio-net,netdev=user.0", "-device", "tpm-tis,tpmdev=tpm0", "-name", "WindowsServer2022", "-vnc", "127.0.0.1:39", "-tpmdev", "emulator,id=tpm0,chardev=vtpm"}
2024/08/02 17:03:53 packer-plugin-qemu_v1.1.0_x5.0_linux_amd64 plugin: 2024/08/02 17:03:53 Started Qemu. Pid: 235889