我正在寻找一种将 ISO 安装为 CD-ROM 的方法,根据 libvirt 文档(如下所述),这应该是可行的,此外,在下面提到的问题中也是如此。
我知道这个问题,然而它已有 4 年多历史了,却从未真正得出任何有效的结论。
我举的例子来自:http://libvirt.org/formatdomain.html#elementsDisks
</disk>
<disk type='network' device='cdrom'>
<driver name='qemu' type='raw'/>
<source protocol="http" name="url_path">
<host name="hostname" port="80"/>
</source>
<target dev='hde' bus='ide' tray='open'/>
<readonly/>
</disk>
我无法让它工作,我只是得到:
启动失败:无法从 CDROM 读取(代码 0003)
实际使用的 XML 片段:
<disk type='network' device='cdrom'>
<driver name='qemu' type='raw'/>
<source protocol="http" name="/debian-cd/current/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso">
<host name="mirror.bytemark.co.uk" port="80"/>
</source>
<target dev='hdb' bus='ide' tray='open'/>
<readonly/>
</disk>
libvirtd (libvirt) 3.9.0 QEMU 模拟器版本 2.10.0
有人可以提供任何帮助或建议吗?
我也尝试过将包括 fqdn 在内的完整路径放入 url_path 中,无论是否包含 http://
答案1
我发现问题在于,http 在 centos 7 中的 qemu-kvm-ev 软件包中被列入了黑名单
您只能使用 https
有效的 XML 示例为:
<disk type='network' device='cdrom'>
<driver name='qemu' type='raw'/>
<source protocol="https" name="/debian-cd/current/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso">
<host name="mirror.bytemark.co.uk" port="443"/>
</source>
<target dev='hdb' bus='ide' tray='open'/>
<readonly/>
</disk>
请注意,您不能使用 hdc,因为它似乎是为本地 ISO 或物理 cdrom 直通保留的。
答案2
我尝试在现有的 libvirt 4.1.0 系统中将其中一个运行到现有的 VM 上:
<disk type='network' device='cdrom'>
<driver name='qemu' type='raw'/>
<source protocol='https' path='/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso'>
<host name='mirrors.edge.kernel.org' port='443'/>
</source>
<target dev='sdc' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='2'/>
</disk>
XML 验证失败。
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content
我怀疑有人很久以前就写了这些例子,认为最终可能会添加这个功能,但实际上并没有。
这些例子下面的解释性文字指出:
该
protocol
属性指定访问所请求映像的协议。可能的值是“nbd”、“iscsi”、“rbd”、“sheepdog”、“gluster”或“vxhs”。
qemu 手册页也没有暗示可能存在这样的功能。
我认为您只是看到了文档错误。