我有当前的 libvirt 1.2.20,我想传递给我的机器,使用 virt-manager 创建一些 qemu 标志。我编辑了文件并添加
</devices>
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
</domain>
但我试过用 virsh 编辑,但不起作用
virsh edit domain
并把
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
但给我这个错误
errore: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Element domain has extra content: qemu:commandline
Failed. Try again? [y,n,i,f,?]:
如何正确传递qemu命令行?谢谢
答案1
elbarna 自己的答案是获取 libvirt(及其域 XML)“本机”支持的配置选项的方法。对于 libvirt 不支持的 qemu 命令行参数(以及更多参数),您需要在“domain”根元素中包含 qemu 的 XML 命名空间声明:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
答案2
如果您virt-xml
的路径中有 1.4.1(2017 年发布,所以现在应该已经广泛使用)或更高版本(由community/virt-install
Arch 提供),您可以使用:
virt-xml $DOMAIN --edit --confirm --qemu-commandline '-my-args 1234'
virt-xml $DOMAIN --edit --confirm --qemu-commandline 'env=MY-ENV=1234'
自动添加与环境变量和/或参数相对应的 XML,包括命名空间。--confirm
允许您在提交之前预览更改。
这比尝试手动粘贴到 XML 命名空间要方便得多,并且对我来说很有效,尽管virsh edit
不再接受相同的手动更改。
参考:https://blog.wikichoon.com/2017/03/easy-qemu-commandline-passthrough-with.html