在libvirt 官方文档里,挂载光驱的XML定义如下:
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide' tray='open'/>
<readonly/>
</disk>
按照这个定义,采用qemu-kvm定义和启动虚拟机以后,发现这个光驱在虚拟机里盘符出现,但是无法读取光盘内容。
后来跑到本地系统 /dev 下找光驱,发现:
/dev/cdrom6 -> sr0
原来本地光驱不叫cdrom,而是cdrom6,更重要的是cdrom只是一个链接,真正的source是sr0。
为什么叫sr0呢,又查了一些资料,原来如下:
sr代表 scsi + rom
sd代表 scsi + disk
sg 代表 scsi + generic
st代表 scsi + tape
于是把XML定义改成如下:
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sr0'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
终于顺利的读出了光盘内容。
注:如果本地有几个光驱,那就相应的加上 是sr1, sr2 ...