← Back to team overview

openstack team mailing list archive

Guest PXE Boot

 

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

Follow ups