最近将我所有的服务迁移到了 Hetzner AX42。这款独立服务器配备 64GB ECC DDR5 内存、两块 512GB PM9A1 NVMe,以及 AMD Ryzen PRO 8700GE 处理器。8700GE 搭载了 Radeon 780M 集成显卡,其性能十分强劲。如果不能充分利用,将会非常可惜。

由于宿主机基于 Proxmox VE,我计划配置一台支持核显直通的 Windows 虚拟机,用于手游挂机和轻度转码工作。

PVE 的安装和配置可参考 Hetzner 官方文档,这里不再赘述。

安装完成后,我们可以检查主板 BIOS 设置,并确保 IOMMU 已开启。我的 AX42 默认已启用该功能。

接下来的步骤可参考 该 GitHub 仓库请确保在 Creating the Windows VM 步骤中选择 OVMF 而非 SeaBIOS
以下是我的 /etc/pve/qemu-server/<VM_ID>.conf 关键配置:

args: -cpu 'host,-hypervisor,kvm=off'
bios: ovmf
cpu: host
hostpci0: 0000:0d:00.0,pcie=1,romfile=vbios_1002_15bf.bin,x-vga=1  # 显卡
hostpci1: 0000:0d:00.6,pcie=1,romfile=AMDGopDriver_8700GE.rom     # 音频设备
vga: none

需要注意的是由于AMD Reset BUG的存在,除了按照上述仓库内安装RadeonResetBugFix service之外,我们还需要进一步禁用Windows的自动更新服务,以及关闭自动休眠功能,防止虚拟机自动重启/休眠但不触发服务的情况。

#使用组策略禁用自动更新,保存至.bat文件,使用管理员权限运行

@echo off
REM -- 禁止自动更新
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /t REG_DWORD /d 1 /f

REM -- 禁止在windows设置中检查更新
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v SetDisableUXWUAccess /t REG_DWORD /d 1 /f

REM -- Windows更新中不包含驱动程序更新(防止Windows带了错误的驱动,特别是显卡驱动)
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v ExcludeWUDriversInQualityUpdate /t REG_DWORD /d 1 /f
#还原

@echo off
REM -- 恢复自动更新
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v NoAutoUpdate /f

REM -- 恢复Windows设置中的更新检查功能
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v SetDisableUXWUAccess /f

REM -- 恢复Windows更新中的驱动程序更新
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v ExcludeWUDriversInQualityUpdate /f

配置完成后,即可愉快使用啦!

Last modification:March 11, 2025
If you think my article is useful to you, please feel free to appreciate