很早以前就想在家里的PVE虚拟平台上安装Windows操作系统,并且直通显卡,直接连接显示器使用。
因为不想浪费时间,以及不是那么刚需的原因,最终也就不了了之了。但是最近在这个需求变得强烈起来,因为我上班了,总是背着我的ITX小主机上下班也不是很方便,所以重新审视如何利用家里的PVE解决在家用电脑的需求。
机器配置:
目前运行虚拟机:
- MikroTik Router OS:作为主路由拨号上网、流控
- OpwenWrt:作为旁路由实现增强功能
- DSM:黑群晖NAS
- CentOS:作为学习用机,部署自己写的项目
- Windows10:即将安装,作为备用机
正题:PVE安装Window10并且直通核显
本篇教程只适用于Intel平台核显的直通,其他情况可以酌情参考。
PVE环境配置
首先确认主板是否支持VT-d技术,可以直接进BIOS查看有无此设置项,或者到Intel官网查找芯片组的产品规范书进行确认。如果支持,需要先打开VT-d功能,如果不支持,下面的内容就不用看了。
1. 开启iommu
打开grub文件:
找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
修改完成之后更新grub:
2. 加载相应的内核模块
打开modules文件:
在文件末尾添加以下模块:
3. 将显卡加入PVE的黑名单
打开blacklist.conf文件:
在文件末尾添加以下内容:
保存文件并更新内核:
4. 将显卡加入直通组
查看显卡的id:
VGA开头的就是我的核显,其中00:02是代表组名,00:02.0是代表00:02组的第一个设备。
通过组名查找id:
8086:0412是厂商ID:设备ID,如果显卡带有声卡,这里会显示两个设备,一个显卡,一个声卡。我这显卡没有声卡,所以只有一个设备。
记住显卡的id,添加到直通组:
在文件末尾添加以下内容:
如果有多个设备,ids后面每个设备之间用,
隔开。
还需要添加options防止VM死机,打开kvm.conf:
在文件末尾添加如下内容:
5. 重启PVE
这一步很重要,单独写出来。
6. 开始直通
首先创建一个虚拟机,名称自定义;
使用光盘镜像的方式安装系统,类别选择Microsoft Windows,版本选择10/2016/2019;
机器类型选择q35;
硬盘视情况而定,如果有空白硬盘可以选择直通给windows使用,这样效率最高,我这边没有空闲的硬盘了,所以只能虚拟一块50GB磁盘先用着,轻度使用应该是足够的;如果你是SSD可以勾选SSD仿真,这样可以提高效率;
CPU核心数视情况而定,一定要启用NUMA,CPU类别选择host;
内存视情况而定,内存和最小内存一定要一致;
网络这里选择VirtIO半虚拟化,效率比较高;
确认无误后点击确定,接下来在虚拟机的硬件中添加PCI设备,添加我们要直通的显卡;
勾选主GPU和PCI-Express;
最后启动虚拟机,按照正常安装Windows的流程操作一遍,驱动需要下载windows着用的kvm驱动,地址:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/;下载ISO文件通过虚拟光驱的方式使用,不懂可以问度娘呀。
所有驱动,包括显卡的驱动都装好之后,此时连接显示器应该是没有输出的,而且在设备管理器中,会提示该设备有问题,已被停止,所以接下来要解决这个问题。
将虚拟机关机,在硬件中删除刚刚直通的PCI设备,打开虚拟机的配置文件:
在第一行添加如下内容:
将显示改为无:
连接好显示器,重新打开虚拟机,不出意外你将看到熟悉的Windows10界面。
7. 直通USB用于连接键盘鼠标
这一步比较简单,接上键盘鼠标之后,选择添加USB设备,使用USB3视情况勾选:
8. 直通声卡
声卡问题暂时没有解决,什么时候解决了来更新。
目前通过直通USB设备使用USB外置声卡来曲线救国。
2020-09-21 更新:
之所以直通不了,是因为我在BIOS把声卡给禁用了!重新开启之后就好了。
总结
真的挺折腾的,所以之前那么多次想弄,最后也都放弃了,不得不说是明智之举。
网上这方面的教程太少了,和我的情况一样的更是几乎没有,我也是查了很多资料,相互印证才在我的环境上成功的,所以写出来,能给大家多一个参考也是极好的 。
发表评论 取消回复