Qemu

libvirt:如何通過 qemu 命令行參數現在 libvirt 模式是 404

  • June 8, 2020

這是我發現將參數傳遞給 qemu 的唯一方法:

<domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

不幸的是,url http://libvirt.org/schemas/domain/qemu/1.0現在只是返回一個 404 頁面,並且 libvirt 會自動修剪這部分。我似乎找不到任何關於替代方案的資訊,因為甚至 libvirt 網站都建議添加這個損壞的模式!

是否有另一種方法可以在沒有 qemu 參數的情況下啟用 evdev pass-though?

編輯:

我使用下面標記的解決方案解決了這個問題,但需要注意的重要一點是,xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0' 除非<qemu:[whatever]>域中某處存在有效標籤,否則 virsh 將始終修剪掉。

即使命名空間的 URL 是 404,在域配置中使用它也確實有效,並且記錄在libvirt首頁上:

qemu此外,以下 XML 添加允許對啟動域時給出的命令行進行微調(自 0.8.3 起)。為了使用 XML 添加,有必要發出一個 XML 命名空間請求(特殊xmlns:name屬性),它會拉入http://libvirt.org/schemas/domain/qemu/1.0;通常,命名空間的名稱為qemu. 有了命名空間,就可以<qemu:commandline>在 domain 下添加一個元素,並根據需要重複以下子元素:

qemu:arg

在啟動域時向程序添加一個額外的命令行參數qemu,由屬性值的值給出。

qemu:env

在啟動域時向程序添加一個額外的環境變數qemu,給出屬性名稱和可選值中記錄的名稱-值對。

這也在以下各個地方進行了測試libvirt

我通過將定義的開頭更改為

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
 <qemu:commandline>
   <qemu:arg value='-unknown'/>
   <qemu:arg value='parameter'/>
 </qemu:commandline>

virsh -c qemu:///system edit <domain>. 在隨後的編輯中,這些更改仍然存在(不過,新元素已移動到文件的末尾)。

啟動域也失敗並qemu抱怨未知參數:

↪ virsh -c qemu:///system start <domain>
error: Failed to start domain <domain>
error: Interner Fehler: qemu unexpectedly closed the monitor: qemu-system-x86_64: -unknown: invalid option

請注意,XML 命名空間不必是解析為某種東西的 URL…… 可用的。

引用自:https://unix.stackexchange.com/questions/591252