[libvirt] [PATCH] xen: fix PyGrub device order using boot/@order

Philipp Hahn hahn at univention.de
Mon Oct 31 12:39:09 UTC 2011


When PyGrub is used as the bootloader in Xen, it gets passed the first
bootable disk. Xend supports a "bootable"-flag for this, which was
previously unused.
In commit c2969ec7aec5c40519aadf422ab5c47a21938bff the bootable=1 flag
was used to re-order the disks when converting from SEXPR to XML, such
that on re-definition Xend would mark the first disk as bootable.
This got broken with commit c1a98d88255197a8446d08c0b1589861660e9064,
which reorders all disks according to their target-name, making it
impossible to change the boot order without changing the device names.

When converting from Xen-sexpr to xml, Xens boolean bootable-flag is
converted to libvirts cardinal bootIndex, tracking the order of disks as
returned by Xend. This satisfies the requirement of bootIndex being
unique.

When converting back to xen-sexpr, the exact order of bootable disks is
lost, since Xend only stores a boolean flag. If multiple disks are
marked bootable, the behaviour is undefined.

Adapt all Xen-sexpr tests to now contain the extra '(bootbale 0)' flag.
It must be explicitly set, otherwise Xend remembers the old state and
only ever adds the bootable indicator.

Signed-off-by: Philipp Hahn <hahn at univention.de>
---
 src/xenxs/xen_sxpr.c                               |   18 +++++++++++-------
 tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml      |    1 +
 .../sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml  |    1 +
 tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr      |    2 +-
 tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-curmem.sexpr         |    2 +-
 .../xml2sexpr-disk-block-shareable.sexpr           |    2 +-
 tests/xml2sexprdata/xml2sexpr-disk-block.sexpr     |    2 +-
 .../xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr |    2 +-
 .../xml2sexpr-disk-drv-blktap-qcow.sexpr           |    2 +-
 .../xml2sexpr-disk-drv-blktap-raw.sexpr            |    2 +-
 .../xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr  |    2 +-
 .../xml2sexpr-disk-drv-blktap2-raw.sexpr           |    2 +-
 .../xml2sexprdata/xml2sexpr-disk-drv-blktap2.sexpr |    2 +-
 tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-disk-file.sexpr      |    2 +-
 tests/xml2sexprdata/xml2sexpr-escape.sexpr         |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr  |    2 +-
 .../xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-kernel.sexpr      |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-localtime.sexpr   |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-net-ioemu.sexpr   |    2 +-
 .../xml2sexprdata/xml2sexpr-fv-net-netfront.sexpr  |    2 +-
 .../xml2sexprdata/xml2sexpr-fv-parallel-tcp.sexpr  |    2 +-
 .../xml2sexpr-fv-serial-dev-2-ports.sexpr          |    2 +-
 .../xml2sexpr-fv-serial-dev-2nd-port.sexpr         |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-file.sexpr |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-null.sexpr |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-pipe.sexpr |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-pty.sexpr  |    2 +-
 .../xml2sexprdata/xml2sexpr-fv-serial-stdio.sexpr  |    2 +-
 .../xml2sexpr-fv-serial-tcp-telnet.sexpr           |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-tcp.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-udp.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-serial-unix.sexpr |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-sound.sexpr       |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-usbmouse.sexpr    |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-usbtablet.sexpr   |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-utc.sexpr         |    2 +-
 tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr          |    4 ++--
 tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr   |    4 ++--
 tests/xml2sexprdata/xml2sexpr-fv.sexpr             |    2 +-
 tests/xml2sexprdata/xml2sexpr-net-bridged.sexpr    |    2 +-
 tests/xml2sexprdata/xml2sexpr-net-e1000.sexpr      |    2 +-
 tests/xml2sexprdata/xml2sexpr-net-routed.sexpr     |    2 +-
 .../xml2sexprdata/xml2sexpr-no-source-cdrom.sexpr  |    4 ++--
 tests/xml2sexprdata/xml2sexpr-pci-devs.sexpr       |    2 +-
 .../xml2sexpr-pv-bootloader-cmdline.sexpr          |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv-bootloader.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv-localtime.sexpr   |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr       |    2 +-
 .../xml2sexprdata/xml2sexpr-pv-vfb-new-auto.sexpr  |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv-vfb-new.sexpr     |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv-vfb-orig.sexpr    |    2 +-
 tests/xml2sexprdata/xml2sexpr-pv.sexpr             |    2 +-
 55 files changed, 68 insertions(+), 62 deletions(-)

diff --git a/src/xenxs/xen_sxpr.c b/src/xenxs/xen_sxpr.c
index d44b0dc..d571c72 100644
--- a/src/xenxs/xen_sxpr.c
+++ b/src/xenxs/xen_sxpr.c
@@ -335,6 +335,7 @@ xenParseSxprDisks(virDomainDefPtr def,
 {
     const struct sexpr *cur, *node;
     virDomainDiskDefPtr disk = NULL;
+    int bootIndex = 0;
 
     for (cur = root; cur->kind == SEXPR_CONS; cur = cur->u.s.cdr) {
         node = cur->u.s.car;
@@ -494,16 +495,13 @@ xenParseSxprDisks(virDomainDefPtr def,
                 strchr(mode, '!'))
                 disk->shared = 1;
 
+            if (STREQ_NULLABLE(bootable, "1"))
+                disk->bootIndex = ++bootIndex;
+
             if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
                 goto no_memory;
 
-            /* re-order disks if there is a bootable device */
-            if (STREQ_NULLABLE(bootable, "1")) {
-                def->disks[def->ndisks++] = def->disks[0];
-                def->disks[0] = disk;
-            } else {
-                def->disks[def->ndisks++] = disk;
-            }
+            def->disks[def->ndisks++] = disk;
             disk = NULL;
         }
     }
@@ -1736,6 +1734,12 @@ xenFormatSxprDisk(virDomainDiskDefPtr def,
         virBufferAddLit(buf, "(mode 'w!')");
     else
         virBufferAddLit(buf, "(mode 'w')");
+
+    if (def->bootIndex)
+        virBufferAddLit(buf, "(bootable 1)");
+    else
+        virBufferAddLit(buf, "(bootable 0)");
+
     if (def->transient) {
         XENXS_ERROR(VIR_ERR_CONFIG_UNSUPPORTED,
                     _("transient disks not supported yet"));
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
index 3f501e7..b07bb6e 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
@@ -22,6 +22,7 @@
       <driver name='phy'/>
       <source dev='/iscsi/winxp'/>
       <target dev='hda' bus='ide'/>
+      <boot order='1'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
index 766c78d..eb830a7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
@@ -18,6 +18,7 @@
       <driver name='phy'/>
       <source dev='/dev/vg_dom0test/test2vm'/>
       <target dev='xvda' bus='xen'/>
+      <boot order='1'/>
     </disk>
     <interface type='bridge'>
       <mac address='00:16:36:68:9f:5d'/>
diff --git a/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr b/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr
index 88c0f68..9517246 100644
--- a/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr
@@ -2,4 +2,4 @@
 (uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(on_poweroff 'destroy')\
 (on_reboot 'destroy')(on_crash 'destroy')(image (linux \
 (kernel '/usr/lib/xen/boot/pv-grub-x86_64.gz')(args '(hd0,0)/grub/menu.lst')))\
-(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestLV')(mode 'w'))))\
+(device (vbd (dev 'xvda')(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr b/tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
index 56ff525..de2e130 100644
--- a/tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:11:22:33:44:55')(bridge 'xenbr2')\
 (script 'vif-bridge')(ip '192.0.2.1'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-curmem.sexpr b/tests/xml2sexprdata/xml2sexpr-curmem.sexpr
index e7149b3..97ecf4a 100644
--- a/tests/xml2sexprdata/xml2sexpr-curmem.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-curmem.sexpr
@@ -1,6 +1,6 @@
 (vm (name 'rhel5')(memory 175)(maxmem 385)(vcpus 1)\
 (uuid '4f77abd2-3019-58e8-3bab-6fbf2118f880')(bootloader '/usr/bin/pygrub')\
 (on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')\
-(device (tap (dev 'xvda')(uname 'tap:aio:/xen/rhel5.img')(mode 'w')))\
+(device (tap (dev 'xvda')(uname 'tap:aio:/xen/rhel5.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1d:06:15')(bridge 'xenbr0')\
 (script 'vif-bridge'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-block-shareable.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-block-shareable.sexpr
index b8387e5..dbc9de6 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-block-shareable.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-block-shareable.sexpr
@@ -3,5 +3,5 @@
 (on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')\
 (image (linux (args 'ro root=/dev/VolGroup00/LogVol00')))\
 (device (tap (dev 'xvda')(uname 'tap:aio:/var/lib/xen/images/rhel5pv.img')\
-(mode 'w!')))(device (vif (mac '00:16:3e:23:9e:eb')(bridge 'xenbr0')\
+(mode 'w!')(bootable 0)))(device (vif (mac '00:16:3e:23:9e:eb')(bridge 'xenbr0')\
 (script 'vif-bridge'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-block.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-block.sexpr
index 960801a..ac21c91 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-block.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-block.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'phy:/dev/MainVG/GuestLV')(mode 'w'))))\
+(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr
index 960801a..ac21c91 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blkback.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'phy:/dev/MainVG/GuestLV')(mode 'w'))))\
+(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.sexpr
index 1e1b381..7392ce3 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-qcow.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (tap (dev 'xvda')\
-(uname 'tap:qcow:/root/some.img')(mode 'w'))))\
+(uname 'tap:qcow:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.sexpr
index 6b66e43..d4cd78c 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap-raw.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (tap (dev 'xvda')\
-(uname 'tap:aio:/root/some.img')(mode 'w'))))\
+(uname 'tap:aio:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr
index 6b66e43..d4cd78c 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (tap (dev 'xvda')\
-(uname 'tap:aio:/root/some.img')(mode 'w'))))\
+(uname 'tap:aio:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2-raw.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2-raw.sexpr
index 1e79bcf..7353f2b 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2-raw.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2-raw.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (tap2 (dev 'xvda')\
-(uname 'tap2:aio:/root/some.img')(mode 'w'))))\
+(uname 'tap2:aio:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2.sexpr
index 1e79bcf..7353f2b 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-blktap2.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (tap2 (dev 'xvda')\
-(uname 'tap2:aio:/root/some.img')(mode 'w'))))\
+(uname 'tap2:aio:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr
index dac0aa3..0e416db 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-drv-loop.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w'))))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-disk-file.sexpr b/tests/xml2sexprdata/xml2sexpr-disk-file.sexpr
index dac0aa3..0e416db 100644
--- a/tests/xml2sexprdata/xml2sexpr-disk-file.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-disk-file.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w'))))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-escape.sexpr b/tests/xml2sexprdata/xml2sexpr-escape.sexpr
index 7b29131..2ece51a 100644
--- a/tests/xml2sexprdata/xml2sexpr-escape.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-escape.sexpr
@@ -7,4 +7,4 @@
 core/test/5.91/x86_64/os&version="devel"  ')\
 (loader '/usr/lib/xen/boot/hvmloader')(vcpus 2)(boot c)(usb 1)(parallel none)\
 (serial pty)(device_model '/usr/lib/xen/bin/qemu-dm')))\
-(device (vbd (dev 'ioemu:xvda')(uname 'file:/root/\'\\some.img')(mode 'w'))))\
+(device (vbd (dev 'ioemu:xvda')(uname 'file:/root/\'\\some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr
index 400872d..996e618 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-force-hpet.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 1)(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr
index 9577892..b53e316 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-force-nohpet.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(hpet 0)(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-kernel.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-kernel.sexpr
index 4950832..7cd257d 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-kernel.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-kernel.sexpr
@@ -7,4 +7,4 @@
 core/test/5.91/x86_64/os  ')(loader '/usr/lib/xen/boot/hvmloader')(vcpus 2)\
 (boot c)(usb 1)(parallel none)(serial pty)\
 (device_model '/usr/lib/xen/bin/qemu-dm')))\
-(device (vbd (dev 'ioemu:xvda')(uname 'file:/root/some.img')(mode 'w'))))\
+(device (vbd (dev 'ioemu:xvda')(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-localtime.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-localtime.sexpr
index 4f91119..c79addb 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-localtime.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-localtime.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (localtime 1)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-net-ioemu.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-net-ioemu.sexpr
index 71df15b..d37aa62 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-net-ioemu.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-net-ioemu.sexpr
@@ -4,5 +4,5 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)\
 (usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)))(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')\
-(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(mode 'w')(bootable 0)))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
 (script 'vif-bridge')(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-net-netfront.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-net-netfront.sexpr
index 7fe2544..705a05d 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-net-netfront.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-net-netfront.sexpr
@@ -4,5 +4,5 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)\
 (usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)))(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')\
-(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(mode 'w')(bootable 0)))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
 (script 'vif-bridge')(type netfront))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-parallel-tcp.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-parallel-tcp.sexpr
index 38504b1..7ee0440 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-parallel-tcp.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-parallel-tcp.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel tcp:localhost:9999)\
 (serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2-ports.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2-ports.sexpr
index f3bfbd7..f7e8758 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2-ports.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2-ports.sexpr
@@ -5,5 +5,5 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial (/dev/ttyS0 /dev/ttyS1))(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)))(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')\
-(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(mode 'w')(bootable 0)))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
 (script 'vif-bridge')(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2nd-port.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2nd-port.sexpr
index 9ecbbe0..aef9112 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2nd-port.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-dev-2nd-port.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial (none /dev/ttyS1))(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-file.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-file.sexpr
index be40218..8c36dae 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-file.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-file.sexpr
@@ -5,5 +5,5 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial file:/tmp/serial.log)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)))(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')\
-(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(mode 'w')(bootable 0)))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
 (script 'vif-bridge')(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-null.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-null.sexpr
index 40243a7..26371d0 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-null.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-null.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial null)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-pipe.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-pipe.sexpr
index 4e2dc78..74f3c23 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-pipe.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-pipe.sexpr
@@ -5,5 +5,5 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial pipe:/tmp/serial.pipe)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)))(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')\
-(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
+(mode 'w')(bootable 0)))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')\
 (script 'vif-bridge')(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-pty.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-pty.sexpr
index 7ae9315..29219f6 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-pty.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-pty.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial pty)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-stdio.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-stdio.sexpr
index 8369bb4..f2c9cff 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-stdio.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-stdio.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial stdio)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp-telnet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp-telnet.sexpr
index 40120cf..53e393c 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp-telnet.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp-telnet.sexpr
@@ -5,6 +5,6 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial telnet:localhost:9999,server,nowait)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp.sexpr
index 7938a7b..09c0f19 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-tcp.sexpr
@@ -5,6 +5,6 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial tcp:localhost:9999,server,nowait)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-udp.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-udp.sexpr
index 3c19f25..702e809 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-udp.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-udp.sexpr
@@ -5,6 +5,6 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial udp:localhost:9998 at localhost:9999)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-serial-unix.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-serial-unix.sexpr
index 67ceeaa..a3f8939 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-serial-unix.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-serial-unix.sexpr
@@ -5,6 +5,6 @@
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)\
 (serial unix:/tmp/serial.sock,server,nowait)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-sound.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-sound.sexpr
index 4c37c35..7c00674 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-sound.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-sound.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (soundhw 'sb16,es1370')(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-usbmouse.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-usbmouse.sexpr
index c0ad2bc..057d6d6 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-usbmouse.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-usbmouse.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(usbdevice mouse)(parallel none)\
 (serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-usbtablet.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-usbtablet.sexpr
index ff1c695..5f9465b 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-usbtablet.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-usbtablet.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(usbdevice tablet)(parallel none)\
 (serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-utc.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-utc.sexpr
index 81fb92d..ec672f4 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-utc.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-utc.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr
index b27e990..c0f7ed1 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr
@@ -4,7 +4,7 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)\
 (usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)(vncunused 0)(vncdisplay 17)(keymap 'ja')))\
-(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')))\
-(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')))\
+(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
+(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr b/tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr
index 908ae94..3a81dbc 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr
@@ -4,7 +4,7 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)\
 (usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')\
 (vnc 1)(vncunused 1)(keymap 'ja')))(device (vbd (dev 'hda:disk')\
-(uname 'file:/root/foo.img')(mode 'w')))(device (vbd (dev 'hdc:cdrom')\
-(uname 'file:/root/boot.iso')(mode 'r')))\
+(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))(device (vbd (dev 'hdc:cdrom')\
+(uname 'file:/root/boot.iso')(mode 'r')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-fv.sexpr b/tests/xml2sexprdata/xml2sexpr-fv.sexpr
index 81fb92d..ec672f4 100644
--- a/tests/xml2sexprdata/xml2sexpr-fv.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-fv.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)\
 (cdrom '/root/boot.iso')(acpi 1)(usb 1)(parallel none)(serial none)\
 (device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)))\
-(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')))\
+(device (vbd (dev 'ioemu:hda')(uname 'file:/root/foo.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')\
 (model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-net-bridged.sexpr b/tests/xml2sexprdata/xml2sexpr-net-bridged.sexpr
index 0c0c62e..d0b849f 100644
--- a/tests/xml2sexprdata/xml2sexpr-net-bridged.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-net-bridged.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:11:22:33:44:55')(bridge 'xenbr2')\
 (script 'vif-bridge'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-net-e1000.sexpr b/tests/xml2sexprdata/xml2sexpr-net-e1000.sexpr
index d95ed82..148efa0 100644
--- a/tests/xml2sexprdata/xml2sexpr-net-e1000.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-net-e1000.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:11:22:33:44:55')(bridge 'xenbr2')\
 (script 'vif-bridge')(model 'e1000'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-net-routed.sexpr b/tests/xml2sexprdata/xml2sexpr-net-routed.sexpr
index 3430e31..1692b15 100644
--- a/tests/xml2sexprdata/xml2sexpr-net-routed.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-net-routed.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:11:22:33:44:55')(script 'vif-routed')\
 (ip '172.14.5.6'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-no-source-cdrom.sexpr b/tests/xml2sexprdata/xml2sexpr-no-source-cdrom.sexpr
index eeebee3..b58c656 100644
--- a/tests/xml2sexprdata/xml2sexpr-no-source-cdrom.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-no-source-cdrom.sexpr
@@ -4,6 +4,6 @@
 (image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)\
 (apic 1)(pae 1)(usb 1)(parallel none)(serial none)\
 (device_model '/usr/lib/xen/bin/qemu-dm')(vnc 1)(vncunused 0)(vncdisplay 6)))\
-(device (vbd (dev 'hda:disk')(uname 'phy:/dev/sda8')(mode 'w')))\
-(device (vbd (dev 'hdc:cdrom')(mode 'r')))\
+(device (vbd (dev 'hda:disk')(uname 'phy:/dev/sda8')(mode 'w')(bootable 0)))\
+(device (vbd (dev 'hdc:cdrom')(mode 'r')(bootable 0)))\
 (device (vif (mac '00:16:3e:0a:7b:39')(model 'e1000')(type ioemu))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pci-devs.sexpr b/tests/xml2sexprdata/xml2sexpr-pci-devs.sexpr
index fdc48cf..fa724f2 100644
--- a/tests/xml2sexprdata/xml2sexpr-pci-devs.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pci-devs.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')))\
+(uname 'phy:/dev/MainVG/GuestLV')(mode 'w')(bootable 0)))\
 (device (pci (dev (domain 0x0001)(bus 0x0c)(slot 0x1b)(func 0x2))\
 (dev (domain 0x0000)(bus 0x01)(slot 0x13)(func 0x0)))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-bootloader-cmdline.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-bootloader-cmdline.sexpr
index 236017e..e4e8f52 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-bootloader-cmdline.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-bootloader-cmdline.sexpr
@@ -2,4 +2,4 @@
 (uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(bootloader '/usr/bin/pygrub')\
 (bootloader_args '-q')(on_poweroff 'destroy')(on_reboot 'destroy')\
 (on_crash 'destroy')(image (linux (args 'xenfb.video=8,1280,1024')))\
-(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w'))))\
+(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-bootloader.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-bootloader.sexpr
index c11938e..5f67f79 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-bootloader.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-bootloader.sexpr
@@ -2,4 +2,4 @@
 (uuid '596a5d21-71f4-8fb2-e068-e2386a5c413e')(bootloader '/usr/bin/pypxeboot')\
 (bootloader_args 'mac=AA:00:86:e2:35:72')(on_poweroff 'destroy')\
 (on_reboot 'destroy')(on_crash 'destroy')(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w'))))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-localtime.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-localtime.sexpr
index 589bbdf..deb4389 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-localtime.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-localtime.sexpr
@@ -1,6 +1,6 @@
 (vm (name 'rhel5')(memory 175)(maxmem 385)(vcpus 1)\
 (uuid '4f77abd2-3019-58e8-3bab-6fbf2118f880')(bootloader '/usr/bin/pygrub')\
 (on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')(localtime 1)\
-(device (tap (dev 'xvda')(uname 'tap:aio:/xen/rhel5.img')(mode 'w')))\
+(device (tap (dev 'xvda')(uname 'tap:aio:/xen/rhel5.img')(mode 'w')(bootable 0)))\
 (device (vif (mac '00:16:3e:1d:06:15')(bridge 'xenbr0')\
 (script 'vif-bridge'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr
index df854ca..f250d11 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w'))))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-vfb-new-auto.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-vfb-new-auto.sexpr
index 5eb0133..5125954 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-vfb-new-auto.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-vfb-new-auto.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))(device (vkbd))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))(device (vkbd))\
 (device (vfb (type vnc)(vncunused 1)(vnclisten '127.0.0.1')\
 (vncpasswd '123456')(keymap 'ja'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-vfb-new.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-vfb-new.sexpr
index c74098f..0b5f464 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-vfb-new.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-vfb-new.sexpr
@@ -5,6 +5,6 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w')))(device (vkbd))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0)))(device (vkbd))\
 (device (vfb (type vnc)(vncunused 0)(vncdisplay 6)(vnclisten '127.0.0.1')\
 (vncpasswd '123456')(keymap 'ja'))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv-vfb-orig.sexpr b/tests/xml2sexprdata/xml2sexpr-pv-vfb-orig.sexpr
index 1e22b83..3924035 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv-vfb-orig.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv-vfb-orig.sexpr
@@ -6,4 +6,4 @@
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')(vnc 1)(vncunused 0)(vncdisplay 6)\
 (vnclisten '127.0.0.1')(vncpasswd '123456')(keymap 'ja')))\
-(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w'))))\
+(device (vbd (dev 'xvda')(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
diff --git a/tests/xml2sexprdata/xml2sexpr-pv.sexpr b/tests/xml2sexprdata/xml2sexpr-pv.sexpr
index dac0aa3..0e416db 100644
--- a/tests/xml2sexprdata/xml2sexpr-pv.sexpr
+++ b/tests/xml2sexprdata/xml2sexpr-pv.sexpr
@@ -5,4 +5,4 @@
 (ramdisk '/var/lib/xen/initrd.img.0u-Vhq')\
 (args ' method=http://download.fedora.devel.redhat.com/pub/fedora/linux/\
 core/test/5.91/x86_64/os  ')))(device (vbd (dev 'xvda')\
-(uname 'file:/root/some.img')(mode 'w'))))\
+(uname 'file:/root/some.img')(mode 'w')(bootable 0))))\
-- 
1.7.1




More information about the libvir-list mailing list