一、为什么我使用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虚拟机,如果想看怎么创建虚拟机的详细教程。
注意这里要记下创建的虚拟机的名称,下文要用,如下图我的名称是: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
搞定!开启虚拟机后,内存改动就生效了。
发表评论