Win11Hyper-V虚拟机设置vGPU显卡直通 彻底释放GPU性能
一、为什么我使用Hyper-V虚拟机
我的宿主机是Win11,想装一个Win10或Win11虚拟机。但是我用VMware安装Win10或Win11后,随机地蓝屏,非常烦人,估计是和宿主机的某些设置有关,或者宿主机电脑硬件比较新(我电脑装Win10就会蓝屏,Win11就不会),某些特性不支持。
所以我就安装Hyper-V虚拟机,Windows自带的,还免费,而且它与Windows宿主机配合,性能是最好的,毕竟是巨硬自家的。
如何开启Hyper-V并安装Win11虚拟机不是本文重点。我大概说一下步骤:
在Win11宿主机开始菜单,搜索“windows 功能”,打开Windows 功能窗口,把里面的“Hyper-V”和“Virtual Machine Platform”两项都打开。如下如:

然后点确定,并重启电脑。重启后,就可以从宿主机开始菜单搜索“Hyper-V”,打开管理器,如下如:

点击 新建,一步步跟着说明往下走就行,创建完Win11虚拟机。

我已经创建并安装好了Win11虚拟机,如果想看怎么创建虚拟机的详细教程。
注意这里要记下创建的虚拟机的名称,下文要用,如下图我的名称是:

二、设置vGPU显卡直通
设置显卡直通的好处是,直接共享宿主机的物理显卡,这样虚拟机Win11几乎是原生的显卡性能,在虚拟机里打游戏,完全没问题。
1)在powershell里设置vGPU分区并映射地址。右键单击开始菜单 --》点击 管理员终端

2)在终端输入如下几条命令:
三、复制宿主机显卡驱动到Win11虚拟机
这里的难点是找到宿主机用的显卡驱动,是哪个文件夹。方法如下:
1)右键宿主机的 开始菜单 --》设备管理器

2)如下图,打开驱动详情:

3)往下滑动滚动条,出现很多一样的开头时,这个开头就是驱动文件夹,我的是 nv_dis…867035 :

4)在资源管理器,进入这个目录:

5)把上图箭头所指的文件夹复制到宿主机桌面。
6)在虚拟机Win11的资源管理器中打开文件夹:

7)把刚刚放在宿主机桌面的文件夹
8)如法炮制,复制一个dll文件到虚拟机。他们的路径是:
复制完以后,重启虚拟机。
四、检查虚拟机中驱动是否启用成功
1)在虚拟机Win11中,右键开始菜单 --》设备管理:

2)如果成功,会出现宿主机的显卡,如下图箭头指向:

3)在开始菜单搜索 dxdiag 显卡诊断程序,如果显示正常,表示vGPU启用成功了,在虚拟机里打游戏去吧!
方法:在虚拟机开始菜单里搜索“dxdiag”

4)运行dxdiag,查看

至此,Hyper-V安装Win11虚拟机,并在虚拟机开启vGPU显卡直通,全部成功。
五、问题修复
开了显卡直通后,虚拟机无法设置内存大小了。怎么办?
1)虚拟机先关机,从宿主机终端移除vGPU设置,如下图,在宿主机打开管理员终端(不知道怎么打开,看上文吧)。输入如下命令:
2)设置虚拟机内存,如图(我的图中是无法改的状态,不用管,只要按第1步移除vGPU设置,就能改),改完内存,点应用了、点确定:

3)重新设置vGPU,还是在管理员终端中输入命令:
搞定!开启虚拟机后,内存改动就生效了。
我的宿主机是Win11,想装一个Win10或Win11虚拟机。但是我用VMware安装Win10或Win11后,随机地蓝屏,非常烦人,估计是和宿主机的某些设置有关,或者宿主机电脑硬件比较新(我电脑装Win10就会蓝屏,Win11就不会),某些特性不支持。
所以我就安装Hyper-V虚拟机,Windows自带的,还免费,而且它与Windows宿主机配合,性能是最好的,毕竟是巨硬自家的。
如何开启Hyper-V并安装Win11虚拟机不是本文重点。我大概说一下步骤:
在Win11宿主机开始菜单,搜索“windows 功能”,打开Windows 功能窗口,把里面的“Hyper-V”和“Virtual Machine Platform”两项都打开。如下如:

然后点确定,并重启电脑。重启后,就可以从宿主机开始菜单搜索“Hyper-V”,打开管理器,如下如:

点击 新建,一步步跟着说明往下走就行,创建完Win11虚拟机。

我已经创建并安装好了Win11虚拟机,如果想看怎么创建虚拟机的详细教程。
注意这里要记下创建的虚拟机的名称,下文要用,如下图我的名称是:
Win11

二、设置vGPU显卡直通
设置显卡直通的好处是,直接共享宿主机的物理显卡,这样虚拟机Win11几乎是原生的显卡性能,在虚拟机里打游戏,完全没问题。
1)在powershell里设置vGPU分区并映射地址。右键单击开始菜单 --》点击 管理员终端

2)在终端输入如下几条命令:
$vmName = "Win11" Set-VM -GuestControlledCacheTypes $true -VMName $vmName Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vmName Set-VM -HighMemoryMappedIoSpace 32Gb -VMName $vmName Add-VMGpuPartitionAdapter -VMName $vmName
三、复制宿主机显卡驱动到Win11虚拟机
这里的难点是找到宿主机用的显卡驱动,是哪个文件夹。方法如下:
1)右键宿主机的 开始菜单 --》设备管理器

2)如下图,打开驱动详情:

3)往下滑动滚动条,出现很多一样的开头时,这个开头就是驱动文件夹,我的是 nv_dis…867035 :

4)在资源管理器,进入这个目录:
C:\Windows\System32\DriverStore\FileRepository\
,找到驱动文件夹,如下图:
5)把上图箭头所指的文件夹复制到宿主机桌面。
6)在虚拟机Win11的资源管理器中打开文件夹:
C:\Windows\System32\HostDriverStore\FileRepository\
。如果,没有目录 HostDriverStore 和 FileRepository,手动创建他们。如下图:
7)把刚刚放在宿主机桌面的文件夹
nv_dispi.inf_amd64_adf5a840df867035
,拷贝到虚拟机Win11桌面。然后再复制/或剪切到上图中的虚拟机目录中。8)如法炮制,复制一个dll文件到虚拟机。他们的路径是:
宿主机文件路径:C:\Windows\System32\nvapi64.dll 虚拟机拷贝路径:C:\Windows\System32\nvapi64.dll 从宿主机复制 C:\Windows\System32\nvapi64.dll 这个文件,到虚拟机的 C:\Windows\System32\nvapi64.dll 注意他们的路径要与上面说的完全一样,不要复制错,复制成别的文件可是会开启vGPU失败的。
复制完以后,重启虚拟机。
四、检查虚拟机中驱动是否启用成功
1)在虚拟机Win11中,右键开始菜单 --》设备管理:

2)如果成功,会出现宿主机的显卡,如下图箭头指向:

3)在开始菜单搜索 dxdiag 显卡诊断程序,如果显示正常,表示vGPU启用成功了,在虚拟机里打游戏去吧!
方法:在虚拟机开始菜单里搜索“dxdiag”

4)运行dxdiag,查看
显示
标签页,如果显示 没有发现问题
。表示成功。
至此,Hyper-V安装Win11虚拟机,并在虚拟机开启vGPU显卡直通,全部成功。
五、问题修复
开了显卡直通后,虚拟机无法设置内存大小了。怎么办?
1)虚拟机先关机,从宿主机终端移除vGPU设置,如下图,在宿主机打开管理员终端(不知道怎么打开,看上文吧)。输入如下命令:
$vmName = "Win11" Remove-VMGpuPartitionAdapter -VMName $vmName
2)设置虚拟机内存,如图(我的图中是无法改的状态,不用管,只要按第1步移除vGPU设置,就能改),改完内存,点应用了、点确定:

3)重新设置vGPU,还是在管理员终端中输入命令:
$vmName = "Win11" Set-VM -GuestControlledCacheTypes $true -VMName $vmName Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vmName Set-VM -HighMemoryMappedIoSpace 32Gb -VMName $vmName Add-VMGpuPartitionAdapter -VMName $vmName
搞定!开启虚拟机后,内存改动就生效了。