[gPXE] Boot ordering problem with qemu-kvm / seabios / gPXE

Romain Vrignaud romain at yakaz.com
Thu Sep 29 12:14:05 EDT 2011


Hello,
Thank you for your reply.
I tried to put 2 different drivers on the 2 NIC and the PXE boot is properly
initiated on the good device.
The trouble is that I really need to use virtio driver on the 2 NIC. I can't
specify my PCI order neither want to forge a special gPXE rom with an
embedded script because
my "PXE NIC number" can change dynamically.
Is there any way to make gPXE aware of which NIC should attempt PXE boot not
always the first PCI NIC ?

Thanks in advance

2011/9/29 Andrew Bobulsky <rulerof at gmail.com>

> Hello Romain,
>
> It's very likely that your VM is behaving correctly, and loading the option
> ROM from the second NIC.  What's happening here is that the BIOS of your VM
> is passing control over to gPXE, loaded from the [correct] NIC ROM, but gPXE
> isn't aware of which NIC it was loaded from.  As a result, it enumerates the
> available devices, and then tries to boot from them in the order that
> they're discovered.
>
> Chances are good that your easiest fix in this scenario would be to change
> the PCI device order such that your desired NIC is enumerated first, if KVM
> will let you do that. Otherwise, a small embedded script that specifically
> boots "net1" (instead of "net0," as it is now) and the filename or root path
> given to that NIC by DHCP will do the job for you.
>
> Best Regards,
> Andrew Bobulsky
>
>
> On Sep 29, 2011, at 5:34 AM, Romain Vrignaud <romain at yakaz.com> wrote:
>
> Hello everybody.
>
> I'm actualy experiencing some problem for ordering my VM boot with qemu-kvm
> / Seabios and gPXE.
> I use libvirt's per-device boot option which launch my VM with this options
> :
>
> You can find libvirt's xml there :   <http://pastebin.com/bqizkLiZ>
> http://pastebin.com/bqizkLiZ
> --
> /usr/bin/kvm -S -M pc-0.14 -enable-kvm -m 2048 -smp
> 1,maxcpus=3,sockets=3,cores=1,threads=1 -name vm-name
> -uuid 32b5bf0d-fe46-2edb-b0d9-c134ba8a7636
> -nodefconfig
> -nodefaults
> -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/vm-name.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control
> -rtc base=utc -drive
> file=/var/lib/libvirt/images/ploop2.img,if=none,id=drive-virtio-disk0,format=raw
> -device
> virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0
> -drive
> file=/var/lib/libvirt/images/vm-name.img,if=none,id=drive-virtio-disk1,format=raw
> -device
> virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk1,id=virtio-disk1
> -netdev tap,fd=23,id=hostnet0
> -device
> rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:28:ca:e5,bus=pci.0,addr=0x3,bootindex=2
> -netdev tap,fd=24,id=hostnet1
> -device
> rtl8139,netdev=hostnet1,id=net1,mac=52:54:00:28:ca:e6,bus=pci.0,addr=0x4,bootindex=1
> -chardev pty,id=charserial0 -device
> isa-serial,chardev=charserial0,id=serial0
> -usb -vnc 127.0.0.1:1
> -k en-us -vga cirrus
> -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7
>
> --
>
> We see the right bootindex option as I want to boot on gPXE from my second
> NIC (mac=52:54:00:28:ca:e6).
> The problem is that during my VM boot process, seabios initialise gPXE for
> my 2 NIC.
> But then gPXE try to boot (DHCP request) on the first NIC rather than on
> the second one.
>
> It always try to boot first on the first PCI device (00:03.0 instead of
> 00:04.0).
>
> I don't really know if the problem comes from gPXE or Seabios but I have
> exactly the same problem when I try with Ubuntu's etherboot rom.
>
>
> I got this problem with Ubuntu latest qemu-kvm
> (0.14.1+noroms-0ubuntu3.11.04.1) / seabios (0.6.2-0ubuntu1) and etherboot
> (5.4.4-7ubuntu2) and Fedora qemu-kvm (qemu-kvm-0.15.0-4.fc15.x86_64) /
> Seabios (seabios-bin-0.6.2-2.fc15.noarch)  and gPXE
> (gpxe-roms-qemu-1.0.1-4.fc15.noarch).
>
> I also recompiled latest Seabios (pre-0.6.3-20110929) trunk and gPXE
> (1.0.1+) from Git : the behaviour is exactly the same. I tried with
> different NIC driver (virtio and rtl8139) with also same behavior.
>
> Do you have any idea where my problem can come from ?
>
> Thanks in advance for any advice.
>
> Regards,
>
> Romain Vrignaud
>
> _______________________________________________
> gPXE mailing list
> gPXE at etherboot.org
> http://etherboot.org/mailman/listinfo/gpxe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://etherboot.org/pipermail/gpxe/attachments/20110929/f053fdb3/attachment.html>


More information about the gPXE mailing list