I've used CentOS 7 as a host for KVM guests for several years now. I'm using the
CentOS Virtualization SIG's version of qemu specifically because I was anxious/curious
to try making VMs with UEFI (OVMF). I also transitioned to using Virtio-SCSI a few years
ago, so when I started experimenting with OVMF, I used Virtio-SCSI for the block devices,
as usual. In that environment (more details below), everything Just Worked.
I'm now experimenting with using Fedora 30 to host guests using KVM. I have
successfully create a guest using Q35/OVMF. I used a VirtIO-SCSI block device, as
I've done on CentOS in the past. The guest (Fedora 30 Server) PXE network booted in
UEFI mode, and correctly installed F30 Server to the block device, creating a UEFI System
Partition and a GPT disk.
However, it wouldn't boot. I poked around, comparing the guest made on the F30 host
to the guest made on the C7 host, pressing "F2" when the guest booted to get
into OVMF's UI. It was there that I realized that OVMF didn't "see" the
VirtIO-SCSI block device at all. It didn't list the entire drive it as a boot option,
and it (obviously) didn't show the UEFI boot entry stored on its UEFI System
Partition.
I switched the device to a VirtIO device, and it booted right up.
So, now I'm wondering if I've missed something. Should OVMF be able to recognize
a VirtIO-SCSI block device on a Fedora 30 KVM host? Did something change between what
I've been using on CentOS 7 and here to remove that? Or was I maybe just getting
lucky on C7 all along, successfully doing something that shouldn't be working?
Below are some of the packages I have installed on my two VM hosts. The Fedora 30 host is
very standard. The C7 host has packages from C7's virt SIG, so they're newer than
the KVM offered in C7's base install. The base packages don't support Q35/OVMF at
all. (Always made me wonder why RHEL 7 included OVMF, but no way to use it.)
I noticed that the guest created on CentOS is using this as the UEFI:
/usr/share/OVMF/OVMF_CODE.secboot.fd but the one created on F30 used
/usr/share/OVMF/OVMF_CODE.fd instead. I edited the VM to use OVMF_CODE.secboot.fd on the
F30's VM, but it still didn't work (the disk was still not recognized when I used
F2 to enter OVMF's interface).
Fedora 30:
qemu-3.1.1-2.fc30.x86_64
qemu-img-3.1.1-2.fc30.x86_64
qemu-kvm-3.1.1-2.fc30.x86_64
qemu-kvm-core-3.1.1-2.fc30.x86_64
...
edk2-ovmf-20190501stable-2.fc30.noarch
CentOS 7.6:
From CentOS Virt SIG repo:
qemu-img-ev-2.12.0-18.el7_6.7.1.x86_64
qemu-kvm-common-ev-2.12.0-18.el7_6.7.1.x86_64
From CentOS repo:
OVMF-20180508-3.gitee3198e672e2.el7_6.1.noarch
Show replies by date