我有当前的 libvirt 1.2.20 我想传递给我的机器,用 virt-manager 创建一些 qemu 标志。我编辑了文件并添加
</devices>
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
</domain>
Run Code Online (Sandbox Code Playgroud)
但不起作用我也尝试从 virsh 编辑
virsh edit domain
Run Code Online (Sandbox Code Playgroud)
并放
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
Run Code Online (Sandbox Code Playgroud)
但是给我这个错误
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,?]:
Run Code Online (Sandbox Code Playgroud)
如何正确传递qemu命令行?谢谢
小智 15
elbarna 自己的答案是寻找由 libvirt(以及它的域 XML)“本地”支持的配置选项的方法。对于 libvirt 不支持的 qemu 命令行参数(以及更多),您需要在 'domain' 根元素中包含 qemu 的 XML 命名空间声明:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
Run Code Online (Sandbox Code Playgroud)
参考:https : //libvirt.org/drvqemu.html#qemucommand
小智 7
如果你有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'
Run Code Online (Sandbox Code Playgroud)
自动添加与 env vars 和/或 args 对应的 XML,包括命名空间。--confirm
允许您在提交之前预览更改。
这比尝试手动粘贴 XML 命名空间要方便得多,并且即使virsh edit
不再接受相同的手动更改也对我有用。
参考:https : //blog.wikichoon.com/2017/03/easy-qemu-commandline-passthrough-with.html
归档时间: |
|
查看次数: |
30930 次 |
最近记录: |