Libvirt:qemuコマンドライン引数を渡す方法は?

Libvirt:qemuコマンドライン引数を渡す方法は?

私は現在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'>

引用:https://libvirt.org/drvqemu.html#qemuコマンド

答え2

パスにvirt-xml1.4.1(2017年にリリースされたため、今まで広く利用可能である必要があります)以上(Archから提供)がある場合は、次のものを使用できます。community/virt-install

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

答え3

この回避策を使用して解決策を見つけました。

QEMUパラメータをドメインXMLに変換

xmlに変換してインポートした後

virsh create file.xml

関連情報