[Users] Unable to boot from CD-ROM (was: REST API: Change boot device / attach CD-ROM)

Frank Wall fwall at inotronic.de
Thu Feb 7 15:03:24 UTC 2013


On Thu, Feb 07, 2013 at 03:15:57PM +0100, Frank Wall wrote:
> Any idea how to debug this further and get a bugfix/working solution?

Using virsh and the "dumpxml" command on the oVirt node I was able
to find the reason for the cd-rom boot problems: the qemu/libvirt 
configuration differs. Have a look at this diff...

--- virsh_normalboot       2013-02-07 15:47:02.584415306 +0100
+++ virsh_runonce  2013-02-07 15:48:49.141540166 +0100
@@ -18,7 +18,6 @@
   </sysinfo>
   <os>
     <type arch='x86_64' machine='pc-0.14'>hvm</type>
-    <boot dev='hd'/>
     <smbios mode='sysinfo'/>
   </os>
   <features>
@@ -43,6 +42,7 @@                                                                                                            
       </source>                                                                                                                     
       <target dev='hda' bus='ide'/>                                                                                                 
       <serial>049339aa-1dd6-4cd7-8c43-cc9bac91a963</serial>                                                                                   
+      <boot order='2'/>                                                                                                                       
       <alias name='ide0-0-0'/>                                                                                                                
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>                                                                           
     </disk>                                                                                                                                        
@@ -54,6 +54,7 @@                                                                                                                                     
       <target dev='hdc' bus='ide'/>                                                                                                                  
       <readonly/>                                                                                                                                    
       <serial></serial>                                                                                                                              
+      <boot order='1'/>                                                                                                                              
       <alias name='ide0-1-0'/>                                                                                                                       
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>                                                                             
     </disk>                                                                                                                                          
@@ -74,6 +75,7 @@
       <source bridge='VMLAN'/>
       <target dev='vnet0'/>
       <model type='e1000'/>
+      <boot order='3'/>
       <alias name='net0'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
     </interface>

First, I configured my VM through the REST API: "virsh_normalboot". 
The second attempt was the "Run Once" feature from the Admin Panel: "virsh_runonce".
As you can see this results in different qemu/libvirt configurations, although
I did configure the exactly same thing (boot order + attach cd-rom).

The strange thing is, that the ovirt engine REST API does NOT show any difference
in configuration for both scenarios. Look at the next diff...
(normalboot => configured through REST API; runonce => "Run Once" from Admin Portal)

--- engine_normalboot      2013-02-07 15:06:38.366216092 +0100
+++ engine_runonce 2013-02-07 15:08:10.218213737 +0100
@@ -48,7 +48,7 @@
     <host href="/api/hosts/3d534ee2-0c08-11e2-8edf-005056a76ea2" id="3d534ee2-0c08-11e2-8edf-005056a76ea2"/>
     <cluster href="/api/clusters/5c5ab34a-0be3-11e2-a0b8-005056a76ea2" id="5c5ab34a-0be3-11e2-a0b8-005056a76ea2"/>
     <template href="/api/templates/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
-    <start_time>2013-02-07T13:56:55.906Z</start_time>
+    <start_time>2013-02-07T14:07:40.563Z</start_time>
     <creation_time>2012-12-22T22:50:52.174+01:00</creation_time>
     <origin>ovirt</origin>
     <stateless>false</stateless>

Both files, "engine_normalboot" and "engine_runonce", are the results of these queries:
curl --insecure -X GET -H "Accept: application/xml" -u admin at internal:password https://ovirt-engine:8443/api/vms/0a388607-c971-4bfd-a0aa-3a20e967aa1e >> file
curl --insecure -X GET -H "Accept: application/xml" -u admin at internal:password https://ovirt-engine:8443/api/vms/0a388607-c971-4bfd-a0aa-3a20e967aa1e/cdroms >> file

It seems oVirt Engine does not set the "boot dev" and "boot order" attributes 
correctly through libvirt in some cases. Is this a known bug?


Thanks
- Frank



More information about the Users mailing list