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로 변환해서 import한 후

virsh create file.xml

관련 정보