pxe booting not supported

Bug #193531 reported by Mathias Gug
This bug affects 1 person
Affects Status Importance Assigned to Milestone
etherboot (Ubuntu)
Fix Committed
kvm (Ubuntu)
libvirt (Ubuntu)

Bug Description

Setting the boot device to network in the xml file that defines a new domain leads to a qemu error when loading the definition from virsh:

virsh # create vm/domains/hardy-server.xml
libvir: QEMU error : QEMU quit during console startup
No valid PXE rom found for network device
error: Failed to create domain from vm/domains/hardy-server.xml

Part of vm/domains/hardy-server.xml:
                <boot dev='network' />
                <boot dev='hd' />
                <boot dev='cdrom' />

pxe boot has been added to qemu 0.9.0.

kvm-61 changelog mentions something about e1000 pxe boot rom.

Revision history for this message
Soren Hansen (soren) wrote : Re: [Bug 193531] [NEW] pxe booting not supported

On Wed, Feb 20, 2008 at 12:46:14AM -0000, Mathias Gug wrote:
> Setting the boot device to network in the xml file that defines a new
> domain leads to a qemu error when loading the definition from virsh:

We don't ship the PXE ROM's from KVM as the tarball does not contain the
source for them, so it's a kvm problem, rather than a lbivirt one.

 affects ubuntu/kvm
 status confirmed

 affects ubuntu/libvirt
 status invalid

To actually make it work, you need to extract the ROM from the etherboot
packages. A README.PXE-boot should be added to the kvm package some time
soon explaining what to do.

Soren Hansen
Virtualisation specialist
Ubuntu Server Team

Changed in libvirt:
status: New → Invalid
Revision history for this message
Jan Lübbe (jluebbe) wrote :

I'm now using the etherboot package at build time to provide these images for the debian package. You can pick the changeset from http://git.sicherheitsschwankung.de/?p=jan/kvm.git;a=commitdiff;h=596b3ed49d36ffd075b0c46d0272f3f07f681bcb;hp=dfc4960f7bcc3a9779f40fe0a4b7e027cfa085f1

Something like 'kvm -boot n -net nic,model=e1000 -net user -tftp ~/tmp/netboot -bootp /pxelinux.0' works now.

Revision history for this message
Dag Stenstad (dag-stenstad) wrote :

To enable booting from PXE, you must obtain a working PXE bios for the emulated card.

I used the "e1000" driver (-net nic,model=e1000).

The image was downloaded from www.rom-o-matic.net. I had luck with "e1000:e1000-82545gm-copper -- [0x8086,0x1026]".

I moved the BIOS image to /usr/share/kvm/pxe-e1000.bin and chose "boot -n" to boot from the network. It worked great.

Revision history for this message
Henning Sprang (henning) wrote :

With the current rom-o-matic I didn't see the above selection of ROM is possible.
What I did is, I built upstream sources and then: cp -a ./qemu/pc-bios/pxe-rtl8139.bin /usr/share/kvm/ in the source tree. That seems to boot with the default kvm NIC.
(at least it asks for ip and stuff, I'm stil about to set up the tftp properly, but5 I expect no surprises here)

I think, here a border of usefulness of software vs. the total avoidance of blobs i reached, and such things should be included.

Revision history for this message
Dustin Kirkland  (kirkland) wrote :

I'm marking this as "Fix Released".

Soren has solved this bug with a new package: kvm-pxe. Please see that package and reopen this bug if it's still a problem.


Changed in kvm:
importance: Undecided → Wishlist
status: Confirmed → Invalid
Changed in etherboot:
importance: Undecided → Wishlist
status: New → Fix Released
Changed in kvm:
importance: Wishlist → Undecided
Revision history for this message
Poramet (oak-poramet) wrote :

I got an error like this when i tried to start virtual machine via virt-manager that boot from network (pxe)

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/engine.py", line 480, in run_domain
  File "/usr/share/virt-manager/virtManager/domain.py", line 379, in startup
  File "/usr/lib/python2.5/site-packages/libvirt.py", line 240, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: virDomainCreate() failed QEMU quit during console startup
qemu: unknowm parameter '-drive' in '-drive'

I already installed packet pxe-kvm. I don't know how to solve that . Please help me.

description: updated
description: updated
Revision history for this message
Dusty Wilson (dusty-hey) wrote :

Forgive me for adding to an old bug. The way I "solved" it for myself is to use the ROM-o-matic gpxe boot ISO at this URL:

If the above link is an old version by the time you read this, just go to http://rom-o-matic.net/ and choose the right version. Then in the list of "NIC/ROM type", choose "gpxe:all-drivers".

That ISO provides wide support for the full list of supported NICs (it seems). It has worked well for me on many computers, even really old ones. It works great for KVM. Just boot off it and it'll PXE-boot for you.

Not a fix, just a workaround.

shiju0 (shiju0)
Changed in etherboot (Ubuntu):
status: Fix Released → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.