Sto*_*aft 7 kvm windows qemu uefi gpu-passthrough
我正在尝试使用直通图形设置虚拟机。我能够为 UEFI shell 进行直通,但不能为官方 Windows 安装程序工作。我可以让 Windows 安装程序工作,但只能使用模拟图形
这将在 QEMU 窗口中启动 Windows 安装程序:
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-cdrom /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso \
-smp 4 \
-cpu core2duo \
-m 4096 \
-vga qxl
Run Code Online (Sandbox Code Playgroud)
这也会在 QEMU 窗口中引导 Windows 安装程序(仍然没有直通)
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-cdrom /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso \
-smp 4 \
-cpu core2duo \
-m 4096 \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43:00.1
Run Code Online (Sandbox Code Playgroud)
但是如果我指定 UEFI 固件的路径,我会在连接到我的直通显卡的显示器上和 QEMU 窗口中看到 Tiano slpash 屏幕和 UEFI shell。
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-cdrom /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso \
-smp 4 \
-cpu core2duo \
-m 4096 \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43: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
Run Code Online (Sandbox Code Playgroud)
为什么直通仅在没有 UEFI 文件的情况下才起作用?或者,为什么指定 UEFI 文件会阻止我启动 Windows?
编辑:尝试下载不同版本的 Windows(2018 年 4 月而不是 10 月),同样的问题。
编辑:尝试清除并重新安装 OVMF,但没有运气。
编辑:我可以通过在 shell 中键入“exit”进入启动管理器,但选择可用的 DVD 驱动器(和所有其他选项)会立即退回到启动管理器。
编辑:跑这个:
-name TESTVM,process=TESTVM \
-drive file=/media/big-tank-8TB/OSISOS/Windows/Win10_1803_English_x64.iso,index=1,media=cdrom \
-drive file=/media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso,index=2,media=cdrom \
-smp 4 \
-cpu core2duo \
-m 4096 \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43: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
Run Code Online (Sandbox Code Playgroud)
当我获得 uefi shell 时,我输入“exit”以进入引导管理器。在启动管理器中,选择可用的 DVD 驱动器立即退回到启动管理器。
然后我通过 Boot Maintenance Manager > Boot Options > Add boot option 添加了另一个 DVD 驱动器,然后在 Boot Manager 菜单中选择它。
.
这给了我一个非常简短的“按任意键从 CD 启动”。如果我足够快,这将引导到 Windows 安装程序,但仅在 QEMU 窗口中。连接到直通卡的屏幕是黑色的,带有一个简单的光标,而不是像 UEFI/Boot Manager 那样镜像。
编辑:我正在尝试通过 NVIDIA GTX1070。主板是华擎x399太极,CPU是Threadripper 1950X。操作系统是安装了 XFCE 的 Ubuntu 服务器。
编辑:如果我继续安装,我的 QEMU 窗口中仍然有 Windows,而直通卡上只有一个 TianoCore 闪屏。如果我转到设备管理器,Windows 会看到该卡,但由于某种原因它已停止。
编辑:我尝试使用这些说明来摆脱代码 43,但无济于事。为了尝试这个,我使用了 virt-install 而不是 qemu-system,并且这样做时没有 TianoCore 启动画面。但是当我进入 Windows 时仍然是代码 43。
编辑:使用 dmesg 检查内存预留错误,如此处所述。没有找到。编辑:同样来自上面的链接,使用 ROM 解析器并确认存在“类型 3(EFI)”
你已经在正确的轨道上。GPU Passthrough 并不完美,特别是如果它是 NVidia 卡(您没有提到 NVidia 或 AMD)。在 Qemu 窗口上完成设置。确保 Windows 机器已连接到 Internet,并让 Windows Update 为您安装图形驱动程序。当您回来时,您应该会看到第二台显示器,如果没有,请重新启动。然后我通常会移除 spice/vnc 控制台,只连接 GPU 监视器。使 GPU Passthrough 工作完全取决于反复试验。
其他尝试:
注意:代码 43 是 NVidia 的一个已知错误,与 NVidia 驱动程序检查它们是否在 VM 中运行有关。NVidia 销售专门用于在 VM 环境中运行的卡,并试图阻止在 VM 中安装消费级卡的驱动程序。您需要确保在您的 domain.xml 中使用以下内容
<kvm>
<hidden state='on'/>
</kvm>
Run Code Online (Sandbox Code Playgroud)
有关示例,请参阅https://passthroughpo.st/apply-error-43-workaround/和其他资源。
这是我的配置的屏幕截图:
这是我的 domain.xml 的“相关”部分,如果你愿意,我可以分享整个内容,但它有一堆不必要的东西。
<os>
<type arch='x86_64' machine='pc-i440fx-2.10'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/Windows10_VARS.fd</nvram>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
</features>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6785 次 |
最近记录: |