UEFI-basierte virtuelle Maschinen

UEFI-basierte virtuelle Maschinen können durch die Parameter -l,bootrom,<efi-rom>[,<efi-vars>] gestartet werden. Für <efi-rom> muss der Pfad zu einer EFI-ROM-Datei angegeben werden. Optional kann an der Stelle <efi-vars> der Pfad zu einer Datei angegeben werden, die wiederum als Speicherort für EFI-Variablen der virtuellen Maschine dient.

Dateien mit EFI-Variablen sollten pro VM-Instanz angelegt werden. Der folgende Befehl erstellt eine Kopie der Datei BHYVE_BHF_UEFI_VARS.fd, die für die VM-Instanz samplevm genutzt werden soll.

doas cp /usr/local/share/uefi-firmware/BHYVE_BHF_UEFI_VARS.fd /vms/samplevm/EFI_VARS.fd

Die Datei EFI_VARS.fd wird anschließend als <efi-vars> Parameter dem bhyve Aufruf übergeben.

Zusätzlich sollte der Parameter fwcfg=qemu angehangen werden. Dadurch wird es der Firmware ermöglicht, auf die dynamisch erzeugten ACPI-Tabellen von bhyve zuzugreifen.

doas bhyve \
-c sockets=1,cores=1,threads=1 \
-m 2G \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_UEFI.fd,/vms/samplevm/EFI_VARS.fd,fwcfg=qemu \
-l com1,stdio \
-s 0:0,hostbridge \
-s 31:0,lpc \
-A -H -P \
samplevm