HomeLabPVE:PVE虚拟机WIN10系统显卡直通

NO.1
Bios设置

显卡直通的前提条件是cpu支持虚拟化

印象中是inter芯片i5以上,本文的芯片是i5

主板是微星-迫击炮

  • 需要开启虚拟化

  • 需要开启VT-d

先看Bios界面,开机在启动页面按Delete或者Esc(每个主板都不同)

  • 点击简体中文,切换语言

  • 点击简易模式/高级模式,切换到高级模式

img

点击OC

选择CPU特征

img

把红框中的两个设置为开启(允许)

  • Inter虚拟化技术-允许

  • Inter VT-D技术-允许

img

NO.2
设置PVE虚拟化

先确保你的PVE有网,因为需要apt-get update

参考文章

<<HomeLab[PVE](X86_64):PVE宿主机无网,虚拟机有网>>

修改配置文件

nano /etc/default/grub

在文件中找到

GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

改为

GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init”

注意本文为inter芯片,如果是amd,仅供参考

img

更新grub

update-grub

在/etc/modules中添加内容

执行命令

echo vfio >> /etc/modules

echo vfio_iommu_type1 >> /etc/modules

echo vfio_pci >> /etc/modules

echo vfio_virqfd >> /etc/modules

echo kvmgt >> /etc/modules

很多文章只需要前4个,第5个随意

查看确认/etc/modules内容

cat /etc/modules

显示红框内容说明配置正确

img

继续更新

update-initramfs -u

或者

update-initramfs -u -k all

更新完成后重启

reboot

重启后验证是否有效

dmesg | grep remapping

出现下面内容即为配置成功

显示为:DMAR-IR: Enabled IRQ remapping in x2apic mode

或显示为:AMD-Vi: Interrupt remapping enabled

本文为Inter,显示有第一句,说明配置成功

img

或者检测

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

看到IOMMU enabled说明虚拟化成功

img

完成以上检测,才能开启下面的设置(不确认开启虚拟化成功,就不用继续虚拟化了)

NO.3
显卡配置

屏蔽驱动

nano /etc/modprobe.d/pve-blacklist.conf

添加以下内容

blacklist nvidiafb
blacklist nouveau
blacklist nvidia
blacklist radeon
blacklist amdgpu
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist snd_hda_codec
blacklist snd_hda_core

如果是NVIDA显卡,还需要执行(本文为NVIDA显卡)

echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf

查看刚刚的内容

cat /etc/modprobe.d/kvm.conf

确认添加成功

img

查看需要直通的显卡

lspci -knn | grep -i -A 2 vga

看到一个显卡设备,记得红框的ID

img

查看所有PCIe设备

lspci -nn

红框的第一个是显卡,第二个是声卡

记下它们[]中的id,后面会用到

img

显卡和声卡单独直通

记得把id换为你自己的

echo "options vfio-pci ids=10de:2504,10de:228e" > /etc/modprobe.d/vfio.conf

更新引导配置(更新后重启)

update-initramfs -u -k all

验证是否驱动直通成功

lspci -knn | grep -i -A 2 vga

看到以下字样说明成功:Kernel driver in use: vfio-pci

img

NO.4
配置虚拟机WIN10

虚拟机前提条件

BIOS是UEFI

机型选择q35

img

在执行下面操作前,请先打开虚拟机

并且安装开自启动的远程控制软件,如向日葵,rustdesk等

因为一旦设置添加显卡,就无法通过web查看屏幕了,如果显示有问题,也无法通过物理线输出到屏幕,只能通过远程控制来更新驱动等操作

选择添加PCI设备

选择NVIDA显卡

img

把所有的选项都勾选上

img

把显示从默认改为无

img

NO.5
安装驱动

有的文章说驱动提前放在U盘中,读取然后安装

有的说右键设备管理器,选择显示适配器,联网更新驱动

但是对于本文都没用

设置直通显卡后,远程屏幕变小了,无法正常打开页面,无法上下左右滑动

img

本文的第一个方案

首先是尝试鲁大师驱动更新,但是从浏览器下载鲁大师安装启动后

就停留在鲁大师的首页,无法左右上下滑动和拖动,无法操作界面,失败

如图,动弹不得

img

本文的第二个方案

从浏览器直接下载七彩虹或者NVIDA的显卡驱动

然后进行安装,安装到一半远程失去连接(安装成功会中途影响远程连接好几次,直接失联)

img

最后的结果

在第三次把win10刚安装好的纯净版还原后

正在下载NVIDA驱动的时候,win10远程的分辨率自己好了,底部也有NVIDA图标,不清楚它是自己联网更新驱动了还是有什么默认操作

总之就是直通显卡,纯净系统打开,它自己就是好的

后来不放心我又再次安装了NVIDA最新的驱动,没什么问题

至此显卡直通win10完成,在虚拟机鲁大师跑分测试,37万分左右

能检测到显卡,跑分也和网上的基本一致

img

NO.6
Tips

本次显卡直通花了3个小时才成功

参考了网上的文章几十篇,重启了N次

本文配置

  • PVE7.4-3(版本很重要,7.1和7.2都只能仅供参考)

  • Inter i5(AMD的配置有很多不一样)

  • NVIDA独立显卡(RTX 3060)(本文非核显直通)

虚拟机在正确的配置下,也会无法启动WIN10,并且内存爆满

本文是在还原win10安装成功后的第一次备份,才测试成功

END.

公众号发送关键词加群,加入交流群

觉得本文还行,不妨顺手点赞收藏,下期见。

推荐阅读

<<HomeLab[PVE](X86_64):PVE宿主机无网,虚拟机有网>>

☕ 朋友,都看到这了,确定不关注一下么? 👇