Windows Server系统处理
由于本人使用的是Windows Server2022,如果按照下文直接配置,最后结果会导致虚拟机无法启动并报错如下图。
解决方法有2个:
方法1、不用GPU-PV功能,使用以下命令即可删除下文虚拟机中绑定的显卡(请自行修改 vm_name
为虚拟机名字)
1 2 |
$vm = "vm_name" Remove-VMGpuPartitionAdapter -VMName $vm |
方法2、修改注册表解决报错问题
1 2 3 4 5 6 7 8 9 |
首先打开使用 Win+R 输入 regedit ,打开注册表编辑器 转到以下路径(如没有请自行建立): 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HyperV 然后在HyperV下新建两个 DWORD32 值为0项(创建完后默认为0) RequireSecureDeviceAssignment RequireSupportedDeviceAssignment |
chatgpt自动生成的reg脚本(可直接创建 *.reg脚本一键建立以上内容)
1 2 3 4 5 |
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HyperV] "RequireSecureDeviceAssignment"=dword:00000000 "RequireSupportedDeviceAssignment"=dword:00000000 |
修改完注册表后无需重启电脑,即可完美解决 Windows Server 中 GPU-PV 虚拟化功能运行报错的问题
GPU-PV 配置
- 要求:
- 理论上,win10 1809 以上都支持这个功能,但是最新的系统有最好的兼容性。
- host 和 vm 可以是不同的系统,但是可能有兼容性问题。
- 因此这里 host 是 win11,vm 也选择 win10 ltsc 2021,保证兼容性。
- 配置
- 管理员权限运行 powershell。
- 依次执行以下命令。(请自行修改
vm_name
为虚拟机名字)
1 2 3 4 5 6 |
$vm = "vm_name" Add-VMGpuPartitionAdapter -VMName $vm Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000 Set-VM -GuestControlledCacheTypes $true -VMName $vm Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm Set-VM -HighMemoryMappedIoSpace 8GB -VMName $vm |
上面的 LowMemoryMappedIoSpace 和 HighMemoryMappedIoSpace,原帖中是 1G 和 32G,这里测试 NVIDIA Tesla P4 配置 8G 也能正常跑起来。
- 拷贝驱动
- 找到 host 的驱动文件夹,拷贝到 vm。
- 目录在
C:\Windows\System32\DriverStore\FileRepository\
路径中,找到nv开头的文件夹。根据驱动不同文件夹名也会不同,因为我的显卡是Tesla P4,所以文件夹有三个。- 分别为:
nvdimm.inf_amd64_37710613e4f18276
nvgridsw.inf_amd64_1ba273002a8f483e
nvraid.inf_amd64_144351277838b429
- 分别为:
- 之后将驱动文件夹拷贝到
C:\Windows\System32\HostDriverStore\FileRepository
路径下,注意 Host 和 Vm 的路径不一致!!,文件夹不存在则创建。
最后直接在资源管理器中重新禁用启用该显卡即可。