일부 작업 명령을 통합하기 위해 qemu-system 매개변수와 virt-install 매개변수 간을 변환하는 방법은 무엇입니까?

일부 작업 명령을 통합하기 위해 qemu-system 매개변수와 virt-install 매개변수 간을 변환하는 방법은 무엇입니까?

KVM을 사용하여 VFIO를 설정하고 있습니다. VM을 부팅할 때 VFIO의 GPU가 UEFI 셸 화면을 표시하기 때문에 VFIO 자체가 제대로 작동합니다. 또한 그래픽용 VNC를 사용하여 작동하는 Windows VM을 만들 수도 있었습니다. 내 문제는 qemu-system을 사용하여 통과 기능이 있는 VM을 생성하고 virt-install을 사용하여 완전히 부팅된 VM을 생성한다는 것입니다.

내가 하고 싶은 것은 virt-install을 사용하는 것이지만 qemu-create를 통해 전달한 것과 동일한 PCI 장치를 사용하는 것이므로 qemu-system 매개변수를 virt-install 옵션(또는 virsh edit xml)으로 변환하는 방법을 알아내야 합니다.

-device vfio-pci,host=42:00.0,multifunction=on \
-device vfio-pci,host=42:00.1 \

virt-install 매개변수를 입력합니다. 그러나 내 지시는가상 설치용PCI ID를 사용하지 말고 도메인, 버스 및 슬롯을 사용하십시오. lspci에 표시되지 않으며 확인 방법을 모르겠습니다. 따라서 해당 정보를 가져와 virt-install 명령에서 사용하거나 virt-install에서 PCI ID를 사용하는 방법을 찾아야 합니다.

내 두 명령은 다음과 같습니다.

qemu 시스템:

sudo qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=q35,accel=kvm \
-cpu EPYC,kvm=off \
-smp 4,sockets=1,cores=2,threads=2 \
-m 16G \
-balloon none \
-rtc clock=host,base=localtime \
-vga none \
-nographic \
-serial none \
-parallel none \
-device vfio-pci,host=42:00.0,multifunction=on \
-device vfio-pci,host=42:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/usr/share/OVMF/OVMF_VARS.fd \
-boot order=dc \
#-drive id=disk0,if=virtio,cache=none,format=raw,file=/dev/nvme-tank/ntfs-zvol-part1 \
-drive file=/media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso,index=1,media=cdrom \
-drive file=/media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso,index=2,media=cdrom 

가상 설치

virt-install \
--name myWINVM1 \
--ram 4096 \
--disk path=/dev/nvme-tank/ntfs-zvol-part1 \
--cpu core2duo \
--vcpus 4 \
--os-type windows \
--os-variant win10 \
--network bridge=virbr0 \
--graphics vnc \
--console pty,target_type=serial \
--disk /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso,device=cdrom,bus=ide \
--disk /media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso,device=cdrom,bus=ide 

qemu 시스템을 올바르게 부팅하는 방법을 알아내는 것도 효과가 있지만 나중에 볼 수 있는 편리한 XML 파일을 생성하기 때문에 virt-install을 선호합니다.

답변1

나는 당신이 virt-install의 --hostdev 옵션을 찾고 있다고 생각합니다. PCI 버스 위치와 기타 플래그를 사용할 수 있습니다. 전체 목록은 다음과 같이 나타납니다.

virt-install --hostdev=?

위의 필수 옵션은 다음과 같습니다.

virt-install \
--name myWINVM1 \
--ram 4096 \
--hostdev 42:00.0,address.type=pci,address.multifunction=on \
--hostdev 42:00.1,address.type=pci \
...

관련 정보