QEMU und UEFI

Heute abend hab ich mit libvirt und qemu rumgespielt sowie mit UEFI in einer Qemu VM angesehen.

Bei UEFI gibt es jetzt eine nette OpenSource Implementierung welche mach sich in Qemu reinschrauben kann. Wird noch nicht standardmäßig ausgeliefert. Das Ding heist OVMF.fd. Mit

qemu-system-x86_64 -L efi -bios OVMF.fd …

lässt sich das nutzen. Eine EFI Partition (gdisk ef00) wird auch gleich gefunden. Das Verzeichnis boot und bootx64.efi sind der Fallback von (U)EFI wenn es im NVRAM keinen Booteintrag findet. Hier ist das einfach grub2 efi-64.

Die nächste spannende Erkenntnis für mich war, das man nicht libvirt braucht um eine Qemu VM runterzufahren. mit

-monitor unix:ctrl_port,server,nowait

auf der Kommandozeile von qemu kann man dann bei laufender VM mit

nc -U ctrl_port

auf die Konsole von Qemu zugreifen und mit system_powerdown einen shutdown über acpi auslösen. Das kann natürlich auch nett geskriptet werden.

SO sieht jetzt mein Startscript für diese VM aus

#!/bin/bash
MAC=52:54:00:6A:CD:FF
DISK="/home/georg/vm/test/test.qcow2"
CDROM="/home/georg/vm/install-cd/systemrescuecd-x86-3.5.1.iso"
MEM=4000M
CORES=6

rm ctrl_port
qemu-system-x86_64 -enable-kvm \
	-L efi -bios OVMF.fd \
	-m $MEM \
	-daemonize \
	-smp $CORES \
	-boot menu=on \
	-drive if=ide,file="$DISK",media=disk,format=qcow2 \
	-net nic,macaddr=$MAC,model=e1000 -net tap,ifname=tap0,script=no,downscript=no \
	-monitor unix:ctrl_port,server,nowait \
        -cdrom "$CDROM"
Categories software