Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Boot guest OS with PXE

Hi guys,

I was trying to PXE boot a guest for quite some time now and I think I’ve found a solution that is kind of hackish but pretty simple. I’m not quite sure it’s good to go in trunk but felt like I’d share it since I’ve been messing a while on this.

If anybody have a better solution, I would really like to hear/see/try it …

Here is how I did it:

First, patch the libvirt/driver.py file: --- /usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py.orig 2013-05-10 16:25:17.787862177 +0000 +++ /usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py 2013-05-10 16:26:39.442022870 +0000 @@ -87,6 +87,9 @@ LOG = logging.getLogger(__name__)

libvirt_opts = [ + cfg.StrOpt('default_guest_boot_dev', + default='hd', + help='Sets the default guest boot device'), cfg.StrOpt('rescue_image_id', default=None, help='Rescue ami image'), @@ -1792,7 +1795,7 @@ instance['name'], "ramdisk") else: - guest.os_boot_dev = "hd" + guest.os_boot_dev = FLAGS.default_guest_boot_dev

     if FLAGS.libvirt_type != "lxc" and FLAGS.libvirt_type != "uml":
          guest.acpi = True

And add to nova.conf: default_guest_boot_dev=network

And finally add to /etc/dnsmasq.conf dhcp-boot=boot\x86\pxelinux.com,host_name,host_ip dhcp-no-override

And restart dnsmasq.conf

In my actual setup, the guest will PXE boot, show the menu 60 seconds and then boot from hard disk after the 60 seconds timeout.

Thank you very much,

Dave

Boot guest OS with PXE

Hi guys,

I was trying to PXE boot a guest for quite some time now and I think I’ve found a solution that is kind of hackish but pretty simple. I’m not quite sure it’s good to go in trunk but felt like I’d share it since I’ve been messing a while on this.

If anybody have a better solution, I would really like to hear/see/try it …

Here is how I did it:

First, patch the libvirt/driver.py file: file:

 --- /usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py.orig 2013-05-10 16:25:17.787862177 +0000
 +++ /usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py 2013-05-10 16:26:39.442022870 +0000
 @@ -87,6 +87,9 @@
 LOG = logging.getLogger(__name__)

logging.getLogger(__name__) libvirt_opts = [ + cfg.StrOpt('default_guest_boot_dev', + default='hd', + help='Sets the default guest boot device'), cfg.StrOpt('rescue_image_id', default=None, help='Rescue ami image'), @@ -1792,7 +1795,7 @@ instance['name'], "ramdisk") else: - guest.os_boot_dev = "hd" + guest.os_boot_dev = FLAGS.default_guest_boot_dev

FLAGS.default_guest_boot_dev

         if FLAGS.libvirt_type != "lxc" and FLAGS.libvirt_type != "uml":
           guest.acpi = True

And add to nova.conf: default_guest_boot_dev=network

nova.conf:

 default_guest_boot_dev=network

And finally add to /etc/dnsmasq.conf /etc/dnsmasq.conf

 dhcp-boot=boot\x86\pxelinux.com,host_name,host_ip
 dhcp-no-override

dhcp-no-override

And restart dnsmasq.conf

In my actual setup, the guest will PXE boot, show the menu 60 seconds and then boot from hard disk after the 60 seconds timeout.

Thank you very much,

Dave