Ewan Mellor wrote:
> On Wed, Aug 23, 2006 at 11:08:42PM +0800, Yu, Ke wrote:
>> Hi Christian,
>> In cset 10921 "Use xenstore to configure ioemu block devices", a
>> empty cdrom entry is added in /etc/xen/xmexample.hvm:
>> disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]
>> this actually breaks the HVM reboot in ia32e, since the UNAME of
>> cdrom entry is None and control panel reboot logic can not handle
>> When I try the following config, the reboot works.
>> disk = [ 'file:/var/images/min-el3-i386.img,hda,w',
>> 'file:/var/image/cdrom.iso,hdc:cdrom,r' ]
>> Per my understanding, when user want to use cdrom, they should
>> specify a physical ISO file or device, a empty cdrom entry is not
>> valid. So I suggest the follwing simple patch, how do you think?
>> diff -r b688d4a68a3e tools/examples/xmexample.hvm
>> --- a/tools/examples/xmexample.hvm Tue Aug 22 14:59:16 2006
>> +0100 +++ b/tools/examples/xmexample.hvm Wed Aug 23 22:48:46
>> 2006 +0800 @@ -70,7 +70,8 @@ vif = [ 'type=ioemu, bridge=xenbr0' ]
>> # and MODE is r for read-only, w for read-write.
>> #disk = [ 'phy:hda1,hda1,r' ]
>> -disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]
>> +#disk = [ 'file:/var/images/min-el3-i386.img,hda,w',
>> 'file:/var/images/cdrom.iso,hdc:cdrom,r' ] +disk = [
>> 'file:/var/images/min-el3-i386.img,hda,w' ]
> An empty CD-ROM drive seems like a reasonable thing to me. Can we
> not just fix the reboot logic in Xend instead?
> At the least, could I see the xend.log for this?
The xend.log is attached. Fixing reboot logic in Xend is also fine to me.
root cause: uname of cdrom is ":" when domain first created. After reboot,
uname become None since blkif.py did not generate uname for empty cdrom entry,
which cause exception. the following patch can fix this issue:
diff -r b688d4a68a3e tools/python/xen/xend/server/blkif.py
--- a/tools/python/xen/xend/server/blkif.py Tue Aug 22 14:59:16 2006 +0100
+++ b/tools/python/xen/xend/server/blkif.py Thu Aug 24 10:12:15 2006 +0800
@@ -107,7 +107,7 @@ class BlkifController(DevController):
dev += ":" + dev_type
- if typ and params:
+ if typ and params or ":cdrom" in dev: # allow empty cdrom
result.append(['uname', typ + ":" + params])
Xen-devel mailing list