[libvirt] regression in finding boot device

I just built a fresh libvirt rpm from the head of git on my Fedora 14 machine and updated all the libvirt packages (I'm not sure what version had been running previously, but it was at least 0.8.8-4 from virt-preview, probably something later built from source). Just prior to the update, I had successfully started up a Fedora 15 guest and stopped it. After the update, I started the F15 guest and got the following message on the virt-viewer console: Booting from Hard Disk... Boot failed: could not read the boot disk. I downgraded to 0.8.8-4 from virt-preview, and was once again able to boot the guest. Upgraded again, still broken. Investigated some more, and I found that if I disable QEMU_CAPS_BOOTINDEX in the new libvirt, the guest boots with no problem. (bootindex was showing up as "1" in the log; not knowing anything about how it worked, I decided to try just changing it to "0". That didn't work. Switching back to the old method *did* work, though.) This system is running qemu-kvm-0.14-7.fc14.x86_64. If you'd like a look at the domain XML, the qemu logs, or access to the machine, just let me know.

On Sat, Jun 25, 2011 at 00:21:29 -0400, Laine Stump wrote:
(bootindex was showing up as "1" in the log; not knowing anything about how it worked, I decided to try just changing it to "0". That didn't work. Switching back to the old method *did* work, though.)
This system is running qemu-kvm-0.14-7.fc14.x86_64. If you'd like a look at the domain XML, the qemu logs, or access to the machine, just let me know.
Yeah, sending the domain XML and qemu command line to which it was transformed would be great. However, since you say you see bootindex=1 (in qemu command line I suppose), I think everything should work fine on libvirt side... What version of seabios do you have? Jirka

On 06/27/2011 05:50 AM, Jiri Denemark wrote:
On Sat, Jun 25, 2011 at 00:21:29 -0400, Laine Stump wrote:
(bootindex was showing up as "1" in the log; not knowing anything about how it worked, I decided to try just changing it to "0". That didn't work. Switching back to the old method *did* work, though.)
This system is running qemu-kvm-0.14-7.fc14.x86_64. If you'd like a look at the domain XML, the qemu logs, or access to the machine, just let me know. Yeah, sending the domain XML and qemu command line to which it was transformed would be great.
Sure. I've attached the XML at the end. Here's the non-working commandline (split into multiple lines for readability): LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/root USER=laine LOGNAME=laine QEMU_AUDIO_DRV=none /usr/bin/qemu-kvm -S -M pc-0.14 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name F15 -uuid 5091aadb-136d-56a7-76c8-b829ad934c1a -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/F15.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,multifunction=on,addr=0x7.0x0 -drive file=/var/lib/libvirt/images/F15.img,if=none,id=drive-virtio-disk0,format=raw -device virtio-blk-pci,bus=pci.0,multifunction=on,addr=0x5.0x0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:48:27:1d,bus=pci.0,multifunction=on,addr=0x3.0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:1 -vga cirrus -device AC97,id=sound0,bus=pci.0,multifunction=on,addr=0x4.0x0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x6.0x0 Just for reference, here's the working commandline: LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/bin/qemu-kvm -S -M pc-0.14 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name F15 -uuid 5091aadb-136d-56a7-76c8-b829ad934c1a -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/F15.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot c -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,multifunction=on,addr=0x7.0x0 -drive file=/var/lib/libvirt/images/F15.img,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,multifunction=on,addr=0x5.0x0,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=27,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:48:27:1d,bus=pci.0,multifunction=on,addr=0x3.0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:1 -vga cirrus -device AC97,id=sound0,bus=pci.0,multifunction=on,addr=0x4.0x0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,multifunction=on,addr=0x6.0x0
However, since you say you see bootindex=1 (in qemu command line I suppose), I think everything should work fine on libvirt side... What version of seabios do you have?
The console screen says SeaBIOS is 0.6.0 and rpm -q says "seabios-bin-0.6.0-1.fc14.noarch".

On Mon, Jun 27, 2011 at 13:55:06 -0400, Laine Stump wrote:
On 06/27/2011 05:50 AM, Jiri Denemark wrote:
On Sat, Jun 25, 2011 at 00:21:29 -0400, Laine Stump wrote:
(bootindex was showing up as "1" in the log; not knowing anything about how it worked, I decided to try just changing it to "0". That didn't work. Switching back to the old method *did* work, though.)
This system is running qemu-kvm-0.14-7.fc14.x86_64. If you'd like a look at the domain XML, the qemu logs, or access to the machine, just let me know. Yeah, sending the domain XML and qemu command line to which it was transformed would be great.
Sure. I've attached the XML at the end. Here's the non-working commandline (split into multiple lines for readability):
OK, that looks like a correct translation of <boot dev='hd'/> into device bootindex so everything is fine on libvirt side.
The console screen says SeaBIOS is 0.6.0 and rpm -q says "seabios-bin-0.6.0-1.fc14.noarch".
IIRC this is too old to support bootindex. I think at least 0.6.1 is needed (or maybe even 0.6.2 unless some patches were backported). I wonder why qemu with bootindex support is shipped with seabios that lacks this support. I'm not sure what we should do about this. Jirka
participants (2)
-
Jiri Denemark
-
Laine Stump