Virtual-Machine
Linux KVM uefi vs bios & PCI-Passthrough
我正在嘗試設置 Linux kvm 機器。我遇到了一些奇怪的問題。一點背景。主機是 uefi h170 板,話雖如此,我知道 MSI Radeon R7 240 支持 uefi,因為在玩 kvm 之前我必須使用它安裝主機作業系統。
如果我使用 seabios,pci passthrough 工作正常。我實際上是通過滑鼠、鍵盤和 radeon 卡上的顯示器完成完整的 Windows 安裝。
但是,如果我用影片建構同一台機器
virt-manager
並通過影片,它就不起作用。如果我通過或 cli 使用 uefi
virt-manager
,影片直通不起作用。這是我的工作字元串(儘管我最終得到了兩個 nics!?)
qemu-system-x86_64 -enable-kvm -M q35 -m 3072 -cpu host \ -smp 2,sockets=1,cores=2,threads=1 \ -bios /usr/share/qemu/bios.bin -vga none \ -device virtio-scsi-pci,id=scsi \ -drive file=/srv/wip.img,format=raw,id=disk,if=none,cache=directsync,aio=native \ -device scsi-hd,drive=disk \ -cdrom /home/driz/win10.iso \ -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \ -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \ -device virtio-net-pci,mac=52:54:00:ea:c8:8d \ -usb -usbdevice host:040b:2000 -usbdevice host:046d:c01e -usbdevice host:0d8c:0014 \ -boot menu=on
這是一個不起作用的測試字元串
qemu-system-x86_64 -enable-kvm -M q35 -m 3072 -cpu host \ -smp 2,sockets=1,cores=2,threads=1 \ -mem-path /dev/hugepages \ -mem-prealloc \ -drive file=/srv/ovmf-x64/OVMF_CODE-pure-efi.fd,if=pflash,format=raw,unit=0,readonly=on \ -drive file=/srv/ovmf-x64/OVMF_VARS-pure-efi.fd,if=pflash,format=raw,unit=1 \ -device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \ -device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x0 \ -device virtio-scsi-pci,id=scsi0,bus=pci.2,addr=0x2 \ -drive file=/srv/wip2.img,format=raw,if=none,id=drive-scsi0-0-0-0 \ -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \ -cdrom /srv/win10.iso \ -device virtio-net-pci,mac=52:54:00:ea:c8:8d \ -device vfio-pci,host=01:00.0,multifunction=on \ -nographic \ -usb -usbdevice host:040b:2000 -usbdevice host:046d:c01e -usbdevice host:0d8c:0014 \ -device virtio-balloon-pci,id=balloon0,bus=pci.2,addr=0x4 \ -boot menu=on
我現在已經花了大約 4 天的時間來研究這個問題,並儘我所能進行研究,我的孩子們終於對延誤感到不安。任何幫助表示讚賞!
手動指定影片 rom 更正了 CLI 版本上的問題。在 virsh 中,您可以定義 rom(使用適當的版本),如下所示
<hostdev> ... <rom file='/etc/fake/boot.bin'/> ... </hostdev>
在cli上
添加
romfile=/path/to/your/rom/romfile.rom
到您的 pci 直通設備的末尾