Re: [libvirt] [fedora-virt] Guest can no longer be bootet with libvirt 0.9.6 from virt-preview repo

[adding libvirt list] On 09/28/2011 09:24 AM, Dennis Jacobfeuerborn wrote:
I just noticed that once I upgrade to libvirt-0.9.6-1 from the virt-preview repo on my Fedora 15 machine I can no longer boot guests that use virtio disks. I only get "Boot failed: could not read the boot disk". Removing the disk and re-adding it as IDE drive allows KVM to boot from the disk (although the full boot obviously fails due to the hda/vda naming difference but that's expected).
After downgrading to libvirt-0.8.8-7 again the problem goes away and the guest boot fine from virtio disks.
Somewhere around 0.9.4 libvirt switched to use a different method to indicate from which device to boot. See http://libvirt.org/git/?p=libvirt.git;a=commit;h=c3068d4d2381146ed46051ad636...
I think this causes Seabios to skip using extboot.bin for booting and to try to directly boot from a disk. If your Seabios version is too old, it won't support booting from virtio disks directly.
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

On Wed, Sep 28, 2011 at 11:41:11AM -0600, Eric Blake wrote:
[adding libvirt list]
On 09/28/2011 09:24 AM, Dennis Jacobfeuerborn wrote:
I just noticed that once I upgrade to libvirt-0.9.6-1 from the virt-preview repo on my Fedora 15 machine I can no longer boot guests that use virtio disks. I only get "Boot failed: could not read the boot disk". Removing the disk and re-adding it as IDE drive allows KVM to boot from the disk (although the full boot obviously fails due to the hda/vda naming difference but that's expected).
After downgrading to libvirt-0.8.8-7 again the problem goes away and the guest boot fine from virtio disks.
Somewhere around 0.9.4 libvirt switched to use a different method to indicate from which device to boot. See http://libvirt.org/git/?p=libvirt.git;a=commit;h=c3068d4d2381146ed46051ad636...
I think this causes Seabios to skip using extboot.bin for booting and to try to directly boot from a disk. If your Seabios version is too old, it won't support booting from virtio disks directly.
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately.
It is not a libvirt requirement really. It is QEMU that is advertising it supports the per-device boot ordering feature. libvirt queries this and then tries to use it. QEMU should have required the new Seabios if it intends to advertise this feature. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 09/28/2011 11:43 AM, Daniel P. Berrange wrote:
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately.
It is not a libvirt requirement really. It is QEMU that is advertising it supports the per-device boot ordering feature. libvirt queries this and then tries to use it. QEMU should have required the new Seabios if it intends to advertise this feature.
Ah, then the problem is qemu's spec file. On F16, I see this from 'yum deplist qemu-system-x86': dependency: seabios-bin provider: seabios-bin.noarch 0.6.2-2.fc16 So it is not requiring a minimal version, and when backporting qemu to F15 via virt-preview, no seabios-bin upgrade is being pulled in. I've created https://bugzilla.redhat.com/show_bug.cgi?id=741992 against qemu. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

On 09/28/2011 07:56 PM, Eric Blake wrote:
On 09/28/2011 11:43 AM, Daniel P. Berrange wrote:
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately.
It is not a libvirt requirement really. It is QEMU that is advertising it supports the per-device boot ordering feature. libvirt queries this and then tries to use it. QEMU should have required the new Seabios if it intends to advertise this feature.
Ah, then the problem is qemu's spec file. On F16, I see this from 'yum deplist qemu-system-x86':
dependency: seabios-bin provider: seabios-bin.noarch 0.6.2-2.fc16
So it is not requiring a minimal version, and when backporting qemu to F15 via virt-preview, no seabios-bin upgrade is being pulled in. I've created https://bugzilla.redhat.com/show_bug.cgi?id=741992 against qemu.
I'm not sure if that is correct. It is purely the libvirt update that breaks things: 1. qemu 0.14.0, libvirt 0.8.8, seabios-bin 0.6.0 => virtio boots fine 2. update libvirt to 0.9.6 => virtio boot breaks 3. update seabios-bin to 0.6.2 => virtio works again Since I didn't update qemu at all any changes to its dependencies do not help in this situation. Regards, Dennis

On Wed, Sep 28, 2011 at 20:16:23 +0200, Dennis Jacobfeuerborn wrote:
On 09/28/2011 07:56 PM, Eric Blake wrote:
Ah, then the problem is qemu's spec file. On F16, I see this from 'yum deplist qemu-system-x86':
dependency: seabios-bin provider: seabios-bin.noarch 0.6.2-2.fc16
So it is not requiring a minimal version, and when backporting qemu to F15 via virt-preview, no seabios-bin upgrade is being pulled in. I've created https://bugzilla.redhat.com/show_bug.cgi?id=741992 against qemu.
I'm not sure if that is correct. It is purely the libvirt update that breaks things:
1. qemu 0.14.0, libvirt 0.8.8, seabios-bin 0.6.0 => virtio boots fine
2. update libvirt to 0.9.6 => virtio boot breaks
3. update seabios-bin to 0.6.2 => virtio works again
Since I didn't update qemu at all any changes to its dependencies do not help in this situation.
That's a bug in qemu 0.14.0 package, which should have required newer seabios as well. Upgrading libvirt just exposes this bug because new libvirt started to use bootindex option by default if qemu supports it (while older libvirt used it only when explicitly asked to). This option is supported by qemu since 0.14.0. But for it to actually work, new seabios is also needed. Upstream qemu 0.14.0 is bundled with such seabios so it's just fedora packaging that is broken because it allows qemu 0.14.0 to be installed without a new enough seabios. Jirka

On Wed, Sep 28, 2011 at 08:16:23PM +0200, Dennis Jacobfeuerborn wrote:
On 09/28/2011 07:56 PM, Eric Blake wrote:
On 09/28/2011 11:43 AM, Daniel P. Berrange wrote:
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately.
It is not a libvirt requirement really. It is QEMU that is advertising it supports the per-device boot ordering feature. libvirt queries this and then tries to use it. QEMU should have required the new Seabios if it intends to advertise this feature.
Ah, then the problem is qemu's spec file. On F16, I see this from 'yum deplist qemu-system-x86':
dependency: seabios-bin provider: seabios-bin.noarch 0.6.2-2.fc16
So it is not requiring a minimal version, and when backporting qemu to F15 via virt-preview, no seabios-bin upgrade is being pulled in. I've created https://bugzilla.redhat.com/show_bug.cgi?id=741992 against qemu.
I'm not sure if that is correct. It is purely the libvirt update that breaks things:
1. qemu 0.14.0, libvirt 0.8.8, seabios-bin 0.6.0 => virtio boots fine
2. update libvirt to 0.9.6 => virtio boot breaks
3. update seabios-bin to 0.6.2 => virtio works again
Since I didn't update qemu at all any changes to its dependencies do not help in this situation.
The QEMU in F15 was already broken, we just didn't know about it until we tried the new libvirt. F15 should have a seabios 0.6.1 at least, but for a long time we couldn't biuld it because of a binutils bug... Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Wed, 2011-09-28 at 11:56 -0600, Eric Blake wrote:
On 09/28/2011 11:43 AM, Daniel P. Berrange wrote:
The libvirt package should probably be updated to require seabios-bin>= 0.6.2.
Yes, that probably needs to happen to libvirt.spec when built for F16 (and thus imported into F15 via virt-preview). I'll tackle that, since I've been making a couple other spec file patches lately.
It is not a libvirt requirement really. It is QEMU that is advertising it supports the per-device boot ordering feature. libvirt queries this and then tries to use it. QEMU should have required the new Seabios if it intends to advertise this feature.
Ah, then the problem is qemu's spec file. On F16, I see this from 'yum deplist qemu-system-x86':
dependency: seabios-bin provider: seabios-bin.noarch 0.6.2-2.fc16
So it is not requiring a minimal version, and when backporting qemu to F15 via virt-preview, no seabios-bin upgrade is being pulled in. I've created https://bugzilla.redhat.com/show_bug.cgi?id=741992 against qemu.
Well, there was no older seabios shipping with F16, so it made sense. As for virt-preview, seabios updates were also available there long before the qemu which required them. Enabling virt-preview and doing a yum update would have installed the new seabios as well. I just don't think that virt-preview can ever be trusted to pick and choose specific packages, you either want the F15 virt stack as it is, or the F16 (virt-preview) virt stack. Justin
participants (5)
-
Daniel P. Berrange
-
Dennis Jacobfeuerborn
-
Eric Blake
-
Jiri Denemark
-
Justin M. Forbes