PVE9：用NVIDIA vGPU19.0虚拟化显卡拆分在虚拟机玩游戏记录6.14内核的PVE9配置NVIDIA vGPU19.0版本的显卡虚拟化拆分，并在虚拟机里玩游戏。NVIDIA vGPU是一项由 NVIDIA 开发的虚拟化技术。它允许单个物理的 NVIDIA GPU（显卡）被多个虚拟机（VM）同时、直接地共享使用。注意它不是一个免费的项目，需要购买软件许可vGPU License才能完整的使用vGPU。本文涉及的vGPU解锁和授权驱动功能是基于开源社区方案实现，仅限个人测试、学习及非商业用途，商用可能存在法律风险。技术支持如果你是萌新或者是对PVE基础较弱的用户，频道提供专属的技术护航服务服务目录服务内容价格表渠道入口资源包提供本文用到的PVE镜像+虚拟机还原包；自行看教程部署无任何技术支持；19.9元购买入口技术支持提供疑难解答、远程支持：如去虚拟化、安装虚拟机、安装驱动等；不足一小时按小时收取费用；50元/小时购买入口一条龙部署提供从0-1的远程部署服务；提供简单的使用培训；提供1天的售后和支持；99元购买入口所需资料[scode type="green"]定制版PVE镜像包-ISO版--推荐镜像使用说明：如果你用预装版的PVE镜像包安装不成功，或者无法在你的设备上正常初始化，又或者你想使用冗余raid1或者ZFS模式来安装PVE。那么你可以用这个PVE ISO镜像来安装。安装方式跟常规的PVE安装方法一样。将ISO镜像写入U盘插到设备进行安装，安装好后登录PVE后台打开PVE Shell窗口进行一键部署，本镜像需要PVE联网下载依赖包来部署环境镜像更新说明：1）基于PVE 9.2.2 内核Linux 7.0.2-6-pve版本完成构建；2）集成一键初始化脚本：一键为PVE9合并local分区|换源|开启IOMMU|屏蔽NVIDIA显卡|去订阅弹窗等；3）集成一键部署vGPU脚本：一键安装NVIDIA vGPU Host驱动（11|16|17|18|19|20）和vGPU unlock-rs服务；4）集成一键去虚拟化脚本：规避虚拟机检测，模拟真实硬件环境，让软件或者端游在虚拟机中运行;5）集成一键随机硬件脚本：为每台虚拟机生成独立的硬件信息（主板|CPU|内存|硬盘|BIOS|机器码）;6）集成一键随机显卡脚本：给每台虚拟机生成一张Quadro专业卡/Geforce消费卡,虚拟机需要NVIDIA vGPU支持;7）集成一键虚拟机多开脚本：批量克隆虚拟机|同步母机数据盘|批量删除虚拟机；8）提供Fastapi-dls GRID驱动授权服务的搭建和LXC还原包，激活vGPU 全功能（vApps/vPC/vWS）;9）提供针对游戏优化的 Win 11 24h2 x64 | Win10 22h2 x64 | Win7 旗舰版 x64 虚拟机的还原包;预装版PVE镜像包-无桌版镜像使用说明：1）预装版就是环境都帮你部署好了，不用你另外联网安装啥的。你只需要烧录硬盘启动即可；2）镜像无绑定限制，可重复使用。本镜像为无桌面版本，需要用第二台机器做主控机进行管理PVE；3）对于一些不能接入外网的用户或者多机器想减少重复部署工作的工作室，预装版是个不错的选择；镜像更新说明：1）基于PVE 9.2.2 内核Linux 7.0.2-6-pve版本进行封装；2）该镜像大小32GB，管理账号：root,密码：123456；3）管理口默认为主机的第一个口，默认IP：10.10.10.123，默认网关：10.10.10.10；4）提前预装了vGPU安装前所需的依赖包，如要使用N卡做vGPU拆分，执行脚本安装vGPU驱动即可;5）提供Fastapi-dls GRID驱动授权服务的搭建和LXC还原包，激活vGPU 全功能（vApps/vPC/vWS）;6）提供针对游戏优化的 Win 11 24h2 x64 | Win10 22h2 x64 | Win7 旗舰版 x64 虚拟机的还原包;7）提供PVE脚本（更改PVE管理IP|扩容系统盘剩余空间|安装vGPU驱动11/16/17/18/19/20|安装/卸载去虚拟化KVM包|定制硬件信息|模拟显卡信息|批量克隆/同步/删除虚拟机）登录SSH自动运行；预装版PVE镜像包-桌面版镜像使用说明：1）镜像安装了GNOME图形界面，对实在找不到第二台机器来做主控机的用户友好；2）PVE既是被控端也是主控端，不需要找第2台机器去管理PVE，直接在当前PVE的浏览器登录PVE后台即可；3）前提是你机器最少要2张显卡，可以核显（核显用于输出显示器）+独显（N卡用于vGPU）或者2个独显（A卡用于输出显示器，N卡用于vGPU）的搭配，因为N卡做了vGPU是没法输出显示器的，输出显示器就没法使用vGPU，记得在BIOS将显卡第一显示改核显或者要输出显示器的独显A卡；镜像更新说明：1）基于PVE 9.2.2 内核Linux 7.0.2-6-pve版本进行封装；2）该镜像大小28GB，管理账号：root,密码：123456；3）管理口默认为主机的第一个口，默认IP：10.10.10.123，默认网关：10.10.10.10；4）预装GNOME桌面，中文输入法，以及常用的远程软件向日葵，rustdesk，moonlight；5）提前预装了vGPU安装前所需的依赖包，如要使用N卡做vGPU拆分，执行脚本安装vGPU驱动即可;6）提供Fastapi-dls GRID驱动授权服务的搭建和LXC还原包，激活vGPU 全功能（vApps/vPC/vWS）;7）提供针对游戏优化的 Win 11 24h2 x64 | Win10 22h2 x64 | Win7 旗舰版 x64 虚拟机的还原包;8）提供PVE脚本（更改PVE管理IP|扩容系统盘剩余空间|安装vGPU驱动11/16/17/18/19/20|安装/卸载去虚拟化KVM包|定制硬件信息|模拟显卡信息|批量克隆/同步/删除虚拟机）登录SSH自动运行；[/scode][scode type="blue"]虚拟机还原包-Win10采用Windows10最后一个功能更新的版本22h2，适配vGPU19版本虚拟机信息：系统：Windows10 22H2 X64 不忘初心游戏版 UEFI启动计算机名：Win10-1账号：administrator密码：没有密码Rustdesk 默认密码：123456使用说明：1）虚拟机还原后，建议在PVE Shell中运行脚本更新一下虚拟机的硬件信息防止和其他人串号;2）已预装NVIDIA vGPU GRID 19.0 驱动，记得下载好授权文件给驱动授权，不授权驱动会被限制在15帧；3）桌面放置了【工具箱】文件夹：系统优化工具|系统激活工具|虚拟机检测工具|过游戏检测方法|NVIDIA驱动；虚拟机还原包-Win7介于还有人在使用Win7，特地将其搬到PVE9上并适配vGPU驱动，支持分配vGPU资源提供图形加速虚拟机信息：系统：Windows7 X64 旗舰版 BIOS启动计算机名：Win7-Game-01账号：administrator密码：没有密码Rustdesk 默认密码：123456使用说明：1）虚拟机还原后，建议在PVE Shell中运行脚本更新一下虚拟机的硬件信息防止和其他人串号;2）登录到虚拟机后，建议给虚拟机固定好静态IP地址，然后使用Rustdesk用IP进行远程使用；3）虚拟机已装NVIDIA quadro 441.66 驱动,请分配好vGPU显卡，在PVE Shell运行脚本模拟专业卡型号；4）桌面放置了【工具】文件夹：系统优化工具|系统激活工具|虚拟机检测工具|过游戏检测方法|NVIDIA驱动；[/scode]视频教学部署篇请前往B站观看整个系列的教学视频。图文教学部署篇硬件配置演示的显卡依旧是哥布林救出来的美女一手自用带体香的P106-100矿卡。配置型号系统PVE 9.0.3内核Linux pve9 6.14.8-2-pvepve-qemu-kvm10.0.2-4CPUIntel Core CC150 @ 3.5GHz 8核16线程显卡七彩虹 P106-100 6144 MBvGPU驱动580.65.05显卡支不支持vGPU虚拟化，可以点开下边列表进行查阅。[collapse status="false" title="VGPU_Unlock支持的显卡列表 点我展开"][scode type="blue"]以下 Maxwell\Pascal\Turing架构的显卡均支持vGPU，Ampere架构的30系及之后的消费卡暂不支持Maxwell 架构:（GTX 9xx、Quadro Mxxxx、Tesla Mxx）Pascal 架构:（GTX 10xx、Quadro Pxxxx、Tesla Pxx）Turing 架构:（GTX 16xx、RTX 20xx、Quadro RTXxx、Tesla Txx）设备ID支持的显卡列表可能模拟的显卡型号21c4TU116 GeForce GTX 1660 SUPERQuadro RTX 600021d1TU116BM GeForce GTX 1660 Ti MobileQuadro RTX 60002182TU116 GeForce GTX 1660 TiQuadro RTX 60002184TU116 GeForce GTX 1660Quadro RTX 60002187TU116 GeForce GTX 1650 SUPERQuadro RTX 60002188TU116 GeForce GTX 1650Quadro RTX 60002191TU116M GeForce GTX 1660 Ti MobileQuadro RTX 60002192TU116M GeForce GTX 1650 Ti MobileQuadro RTX 60002189TU116 CMP 30HXQuadro RTX 60001fbbTU117GLM Quadro T500 MobileQuadro RTX 60001fd9TU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 60001ff9TU117GLM Quadro T1000 MobileQuadro RTX 60001fddTU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 60001f96TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001fb8TU117GLM Quadro T2000 Mobile / Max-QQuadro RTX 60001fb9TU117GLM Quadro T1000 MobileQuadro RTX 60001f97TU117M GeForce MX450Quadro RTX 60001f98TU117M GeForce MX450Quadro RTX 60001f9cTU117M GeForce MX450Quadro RTX 60001f9dTU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001fb0TU117GLM Quadro T1000 MobileQuadro RTX 60001fb1TU117GL T600Quadro RTX 60001fb2TU117GLM Quadro T400 MobileQuadro RTX 60001fbaTU117GLM T600 MobileQuadro RTX 60001f42TU106 GeForce RTX 2060 SUPERQuadro RTX 60001f47TU106 GeForce RTX 2060 SUPERQuadro RTX 60001f50TU106BM GeForce RTX 2070 Mobile / Max-QQuadro RTX 60001f51TU106BM GeForce RTX 2060 MobileQuadro RTX 60001f54TU106BM GeForce RTX 2070 MobileQuadro RTX 60001f55TU106BM GeForce RTX 2060 MobileQuadro RTX 60001f82TU117 GeForce GTX 1650Quadro RTX 60001f91TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 60001f92TU117M GeForce GTX 1650 MobileQuadro RTX 60001f94TU117M GeForce GTX 1650 MobileQuadro RTX 60001f95TU117M GeForce GTX 1650 Ti MobileQuadro RTX 60001f76TU106GLM Quadro RTX 3000 Mobile RefreshQuadro RTX 60001f07TU106 GeForce RTX 2070 Rev. AQuadro RTX 60001f08TU106 GeForce RTX 2060 Rev. AQuadro RTX 60001f09TU106 GeForce GTX 1660 SUPERQuadro RTX 60001f0aTU106 GeForce GTX 1650Quadro RTX 60001f10TU106M GeForce RTX 2070 MobileQuadro RTX 60001f11TU106M GeForce RTX 2060 MobileQuadro RTX 60001f12TU106M GeForce RTX 2060 Max-QQuadro RTX 60001f14TU106M GeForce RTX 2070 Mobile / Max-Q RefreshQuadro RTX 60001f15TU106M GeForce RTX 2060 MobileQuadro RTX 60001f36TU106GLM Quadro RTX 3000 Mobile / Max-QQuadro RTX 60001f0bTU106 CMP 40HXQuadro RTX 60001eb5TU104GLM Quadro RTX 5000 Mobile / Max-QQuadro RTX 60001eb6TU104GLM Quadro RTX 4000 Mobile / Max-QQuadro RTX 60001eb8TU104GL Tesla T4Quadro RTX 60001ec2TU104 GeForce RTX 2070 SUPERQuadro RTX 60001ec7TU104 GeForce RTX 2070 SUPERQuadro RTX 60001ed0TU104BM GeForce RTX 2080 MobileQuadro RTX 60001ed1TU104BM GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 60001ed3TU104BM GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 60001f02TU106 GeForce RTX 2070Quadro RTX 60001f06TU106 GeForce RTX 2060 SUPERQuadro RTX 60001ef5TU104GLM Quadro RTX 5000 Mobile RefreshQuadro RTX 60001e81TU104 GeForce RTX 2080 SUPERQuadro RTX 60001e82TU104 GeForce RTX 2080Quadro RTX 60001e84TU104 GeForce RTX 2070 SUPERQuadro RTX 60001e87TU104 GeForce RTX 2080 Rev. AQuadro RTX 60001e89TU104 GeForce RTX 2060Quadro RTX 60001e90TU104M GeForce RTX 2080 MobileQuadro RTX 60001e91TU104M GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 60001e93TU104M GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 60001eb0TU104GL Quadro RTX 5000Quadro RTX 60001eb1TU104GL Quadro RTX 4000Quadro RTX 60001eb4TU104GL T4GQuadro RTX 60001e04TU102 GeForce RTX 2080 TiQuadro RTX 60001e07TU102 GeForce RTX 2080 Ti Rev. AQuadro RTX 60001e2dTU102 GeForce RTX 2080 Ti Engineering SampleQuadro RTX 60001e2eTU102 GeForce RTX 2080 Ti 12GB Engineering SampleQuadro RTX 60001e30TU102GL Quadro RTX 6000/8000Quadro RTX 60001e36TU102GL Quadro RTX 6000Quadro RTX 60001e37TU102GL GRID RTX T10-4/T10-8/T10-16Quadro RTX 60001e78TU102GL Quadro RTX 6000/8000Quadro RTX 60001e09TU102 CMP 50HXQuadro RTX 60001dbaGV100GL Quadro GV100Tesla V100 32GB PCIE1e02TU102 TITAN RTXQuadro RTX 60001cfaGP107GL Quadro P2000Tesla P401cfbGP107GL Quadro P1000Tesla P401d01GP108 GeForce GT 1030Tesla P401d10GP108M GeForce MX150Tesla P401d11GP108M GeForce MX230Tesla P401d12GP108M GeForce MX150Tesla P401d13GP108M GeForce MX250Tesla P401d16GP108M GeForce MX330Tesla P401d33GP108GLM Quadro P500 MobileTesla P401d34GP108GLM Quadro P520Tesla P401d52GP108BM GeForce MX250Tesla P401d56GP108BM GeForce MX330Tesla P401d81GV100 TITAN VTesla V100 32GB PCIE1cb6GP107GL Quadro P620Tesla P401cbaGP107GLM Quadro P2000 MobileTesla P401cbbGP107GLM Quadro P1000 MobileTesla P401cbcGP107GLM Quadro P600 MobileTesla P401cbdGP107GLM Quadro P620Tesla P401cccGP107BM GeForce GTX 1050 Ti MobileTesla P401ccdGP107BM GeForce GTX 1050 MobileTesla P401cb1GP107GL Quadro P1000Tesla P401cb2GP107GL Quadro P600Tesla P401cb3GP107GL Quadro P400Tesla P401c81GP107 GeForce GTX 1050Tesla P401c82GP107 GeForce GTX 1050 TiTesla P401c83GP107 GeForce GTX 1050 3GBTesla P401c8cGP107M GeForce GTX 1050 Ti MobileTesla P401c8dGP107M GeForce GTX 1050 MobileTesla P401c8fGP107M GeForce GTX 1050 Ti Max-QTesla P401c90GP107M GeForce MX150Tesla P401c91GP107M GeForce GTX 1050 3 GB Max-QTesla P401c92GP107M GeForce GTX 1050 MobileTesla P401c94GP107M GeForce MX350Tesla P401c96GP107M GeForce MX350Tesla P401c36GP106 P106MTesla P401c07GP106 P106-100Tesla P401c09GP106 P106-090Tesla P401c20GP106M GeForce GTX 1060 MobileTesla P401c21GP106M GeForce GTX 1050 Ti MobileTesla P401c22GP106M GeForce GTX 1050 MobileTesla P401c23GP106M GeForce GTX 1060 Mobile Rev. 2Tesla P401c30GP106GL Quadro P2000Tesla P401c31GP106GL Quadro P2200Tesla P401c35GP106M Quadro P2000 MobileTesla P401c60GP106BM GeForce GTX 1060 Mobile 6GBTesla P401c61GP106BM GeForce GTX 1050 Ti MobileTesla P401c62GP106BM GeForce GTX 1050 MobileTesla P401bb8GP104GLM Quadro P3000 MobileTesla P401bb9GP104GLM Quadro P4200 MobileTesla P401bbbGP104GLM Quadro P3200 MobileTesla P401bc7GP104 P104-101Tesla P401be0GP104BM GeForce GTX 1080 MobileTesla P401be1GP104BM GeForce GTX 1070 MobileTesla P401c02GP106 GeForce GTX 1060 3GBTesla P401c03GP106 GeForce GTX 1060 6GBTesla P401c04GP106 GeForce GTX 1060 5GBTesla P401c06GP106 GeForce GTX 1060 6GB Rev. 2Tesla P401b87GP104 P104-100Tesla P401ba0GP104M GeForce GTX 1080 MobileTesla P401ba1GP104M GeForce GTX 1070 MobileTesla P401ba2GP104M GeForce GTX 1070 MobileTesla P401badGP104 GeForce GTX 1070 Engineering SampleTesla P401bb0GP104GL Quadro P5000Tesla P401bb1GP104GL Quadro P4000Tesla P401bb5GP104GLM Quadro P5200 MobileTesla P401bb6GP104GLM Quadro P5000 MobileTesla P401bb7GP104GLM Quadro P4000 MobileTesla P401b06GP102 GeForce GTX 1080 TiTesla P401b07GP102 P102-100Tesla P401b30GP102GL Quadro P6000Tesla P401b38GP102GL Tesla P40Tesla P401b80GP104 GeForce GTX 1080Tesla P401b81GP104 GeForce GTX 1070Tesla P401b82GP104 GeForce GTX 1070 TiTesla P401b83GP104 GeForce GTX 1060 6GBTesla P401b84GP104 GeForce GTX 1060 3GBTesla P401b39GP102GL Tesla P10Tesla P401b00GP102 TITAN XTesla P401b01GP102 GeForce GTX 1080 Ti 10GBTesla P401b02GP102 TITAN XpTesla P40179cGM107 GeForce 940MXTesla M1017c2GM200 GeForce GTX TITAN XTesla M6017c8GM200 GeForce GTX 980 TiTesla M6017f0GM200GL Quadro M6000Tesla M6017f1GM200GL Quadro M6000 24GBTesla M6017fdGM200GL Tesla M40Tesla M601617GM204M GeForce GTX 980MTesla M601618GM204M GeForce GTX 970MTesla M601619GM204M GeForce GTX 965MTesla M60161aGM204M GeForce GTX 980 MobileTesla M601667GM204M GeForce GTX 965MTesla M60174dGM108M GeForce MX130Tesla M10174eGM108M GeForce MX110Tesla M101789GM107GL GRID M3-3020Tesla M101402GM206 GeForce GTX 950Tesla M601406GM206 GeForce GTX 960 OEMTesla M601407GM206 GeForce GTX 750 v2Tesla M601427GM206M GeForce GTX 965MTesla M601430GM206GL Quadro M2000Tesla M601431GM206GL Tesla M4Tesla M601436GM206GLM Quadro M2200 MobileTesla M6015f0GP100GL Quadro GP100Tesla P401404GM206 GeForce GTX 960 FAKETesla M6013d8GM204M GeForce GTX 970MTesla M6013d9GM204M GeForce GTX 965MTesla M6013daGM204M GeForce GTX 980 MobileTesla M6013e7GM204GL GeForce GTX 980 Engineering SampleTesla M6013f0GM204GL Quadro M5000Tesla M6013f1GM204GL Quadro M4000Tesla M6013f2GM204GL Tesla M60Tesla M6013f3GM204GL Tesla M6Tesla M6013f8GM204GLM Quadro M5000M / M5000 SETesla M6013f9GM204GLM Quadro M4000MTesla M6013faGM204GLM Quadro M3000MTesla M6013fbGM204GLM Quadro M5500Tesla M601401GM206 GeForce GTX 960Tesla M6013b3GM107GLM Quadro K2200MTesla M1013b4GM107GLM Quadro M620 MobileTesla M1013b6GM107GLM Quadro M1200 MobileTesla M1013b9GM107GL NVS 810Tesla M1013baGM107GL Quadro K2200Tesla M1013bbGM107GL Quadro K620Tesla M1013bcGM107GL Quadro K1200Tesla M1013bdGM107GL Tesla M10Tesla M1013c0GM204 GeForce GTX 980Tesla M6013c2GM204 GeForce GTX 970Tesla M6013d7GM204M GeForce GTX 980MTesla M601389GM107GL GRID M30Tesla M101390GM107M GeForce 845MTesla M101391GM107M GeForce GTX 850MTesla M101392GM107M GeForce GTX 860MTesla M101393GM107M GeForce 840MTesla M101398GM107M GeForce 845MTesla M101399GM107M GeForce 945MTesla M10139aGM107M GeForce GTX 950MTesla M10139bGM107M GeForce GTX 960MTesla M10139cGM107M GeForce 940MTesla M10139dGM107M GeForce GTX 750 TiTesla M1013b0GM107GLM Quadro M2000MTesla M1013b1GM107GLM Quadro M1000MTesla M1013b2GM107GLM Quadro M600MTesla M101347GM108M GeForce 940MTesla M101348GM108M GeForce 945M / 945ATesla M101349GM108M GeForce 930MTesla M10134bGM108M GeForce 940MXTesla M10134dGM108M GeForce 940MXTesla M10134eGM108M GeForce 930MXTesla M10134fGM108M GeForce 920MXTesla M10137aGM108GLM Quadro K620M / Quadro M500MTesla M10137bGM108GLM Quadro M520 MobileTesla M10137dGM108M GeForce 940ATesla M101380GM107 GeForce GTX 750 TiTesla M101381GM107 GeForce GTX 750Tesla M101382GM107 GeForce GTX 745Tesla M101340GM108M GeForce 830MTesla M101341GM108M GeForce 840MTesla M101344GM108M GeForce 845MTesla M101346GM108M GeForce 930MTesla M10[/scode][/collapse]一、安装Proxmox VE如果你用的是预装版PVE的IMG镜像，那么你直接将镜像烧录硬盘启动即可，以下只演示定制版PVE ISO镜像的图文安装过程。BIOS设置[scode type="green"]提前在BIOS开启以下设置开启VT-d --必须开启，英特尔叫vt-d，AMD叫iommu开启SRIOV --如有开启Above 4G --如有关闭安全启动 --在security菜单 secure boot 改disabled推荐使用UEFI引导启动[/scode]PVE烧录U盘提前把balenaEtcher烧录工具和定制版的PVE镜像下载好，用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘，然后插到主机进行PVE的安装。PVE图形安装将U盘或者移动硬盘接入主机引导启动到PVE安装界面，采用第一种图形化界面Install Proxmox VE (Graphical）进行安装。PVE图形界面手动分区安装示意图：如果遇到第一种图形界面安装不成功，出现白屏黑屏或者没法继续的时候，更推荐采用第二种终端化界面Install Proxmox VE (Terminal UI）进行安装。PVE终端化界面手动安装示意图：PVE初始化设置安装完成PVE后，在浏览器输入https://你的PVE管理IP:8006来访问你的PVE管理后台了登录进来后需要对PVE进行一些初始化设置，打开PVE Shell执行脚本①(PVE需要能访问外网，不然无法继续)脚本执行完会对PVE进行自动重启一次。二、部署NVIDIA vGPU安装vGPU驱动1）打开PVE Shell执行脚本②一键安装NVIDIA vGPU Host驱动（16|17|18|19）和vGPU Unlock-rs服务2）选择自己要安装的版本，PVE9推荐安装vGPU19，PVE8推荐安装vGPU17。3）重启完成后查看相关服务状态是否正常# 查看相关服务状态 systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service} # 重新启动相关服务 systemctl restart {nvidia-vgpud.service,nvidia-vgpu-mgr.service} # 停止相关服务 systemctl stop {nvidia-vgpud.service,nvidia-vgpu-mgr.service}正常运转没有错误说明服务正常以下为输出日志：root@pve9:~# systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service} ○ nvidia-vgpud.service - NVIDIA vGPU Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpud.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/nvidia-vgpud.service.d └─vgpu_unlock.conf Active: inactive (dead) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago Invocation: a74e7620de244604b92a71531071bccb Process: 984 ExecStart=/usr/bin/nvidia-vgpud (code=exited, status=0/SUCCESS) Main PID: 984 (code=exited, status=0/SUCCESS) Mem peak: 7.6M CPU: 634ms Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Encoder Capacity: 0x64 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: BAR1 Length: 0x100 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Frame Rate Limiter enabled: 0x1 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Number of Displays: 4 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Max pixels: 16384000 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Display: width 5120, height 2880 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Multi-vGPU Exclusive supported: 0x1 Aug 27 20:06:00 pve9 nvidia-vgpud[984]: License: GRID-Virtual-PC,2.0;Quadro-Virtual-DWS,5.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0 Aug 27 20:06:00 pve9 systemd[1]: nvidia-vgpud.service: Deactivated successfully. Aug 27 20:06:00 pve9 systemd[1]: Finished nvidia-vgpud.service - NVIDIA vGPU Daemon. ● nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; preset: enabled) Drop-In: /etc/systemd/system/nvidia-vgpu-mgr.service.d └─vgpu_unlock.conf Active: active (running) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago Invocation: f323e4299db44e0e9077dbaa55110d14 Process: 1200 ExecStart=/usr/bin/nvidia-vgpu-mgr (code=exited, status=0/SUCCESS) Main PID: 1208 (nvidia-vgpu-mgr) Tasks: 6 (limit: 38267) Memory: 37.9M (peak: 78.3M) CPU: 7.743s CGroup: /system.slice/nvidia-vgpu-mgr.service ├─1208 /usr/bin/nvidia-vgpu-mgr └─1574 vgpu 随后使用nvidia-smi以下为输出日志：root@pve9:~# nvidia-smi Wed Aug 27 23:54:38 2025 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 580.65.05 Driver Version: 580.65.05 CUDA Version: N/A | +-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA P106-100 On | 00000000:08:00.0 Off | N/A | | 23% 46C P8 7W / 120W | 1041MiB / 6144MiB | 1% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 1574 C+G vgpu 1012MiB | +-----------------------------------------------------------------------------------------+ root@pve9:~# nvidia-smi vgpu Wed Aug 27 23:54:44 2025 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 580.65.05 Driver Version: 580.65.05 | |---------------------------------+------------------------------+------------+ | GPU Name | Bus-Id | GPU-Util | | vGPU ID Name | VM ID VM Name | vGPU-Util | |=================================+==============================+============| | 0 NVIDIA P106-100 | 00000000:08:00.0 | 0% | | 3251634191 GRID T4-1Q | dd02... Windows10-22H2,d... | 0% | +---------------------------------+------------------------------+------------+以及mdevctl types查看以下为输出日志：root@pve9:~# mdevctl types 0000:08:00.0 nvidia-222 Available instances: 15 Device API: vfio-pci Name: GRID T4-1B Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=16 nvidia-223 Available instances: 0 Device API: vfio-pci Name: GRID T4-2B Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8 nvidia-224 Available instances: 0 Device API: vfio-pci Name: GRID T4-2B4 Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8 nvidia-225 Available instances: 15 Device API: vfio-pci Name: GRID T4-1A Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=16 nvidia-226 Available instances: 0 Device API: vfio-pci Name: GRID T4-2A Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=8 nvidia-227 Available instances: 0 Device API: vfio-pci Name: GRID T4-4A Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=4 nvidia-228 Available instances: 0 Device API: vfio-pci Name: GRID T4-8A Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=2 nvidia-229 Available instances: 0 Device API: vfio-pci Name: GRID T4-16A Description: num_heads=1, frl_config=60, framebuffer=16384M, max_resolution=1280x1024, max_instance=1 nvidia-230 Available instances: 15 Device API: vfio-pci Name: GRID T4-1Q Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=16Ampere架构显卡开启vGPU官方支持的Ampere架构及之后架构的显卡在PVE安装好vGPU HOST驱动后，还需要开启VF才能使用vGPU，开启VF前你需要在BIOS打开SR-IOV功能。（用的不是Ampere架构以上的显卡请跳过这部分@零帧起手）在PVE Shell 新建一个Systemd自启动服务，开机自启动VFcat > /etc/systemd/system/nvidia-sriov.service <<EOF [Unit] Description=Enable NVIDIA SR-IOV After=network.target nvidia-vgpud.service nvidia-vgpu-mgr.service Before=pve-guests.service [Service] Type=oneshot ExecStartPre=/bin/sleep 5 ExecStart=/usr/lib/nvidia/sriov-manage -e ALL [Install] WantedBy=multi-user.target EOF打开VF后，就可以选Mdev类型开启vGPU给虚拟机了。# 重新加载服务 systemctl daemon-reload # 设置nvidia-sriov.service，开机自启动 systemctl enable nvidia-sriov.service # 启动VF systemctl restart nvidia-sriov.service[scode type="yellow"]像RTX A5000/A6000这类带显示接口的显卡，还需要切换到无显示模式才能用vGPU,先切换好无显示模式再来安装驱动顺序不能乱。# 先下载displaymodeselector工具上传到PVE根目录 https://share.feijipan.com/s/zOZHGpgP # 授权可执行文件 chmod +x displaymodeselector # 切换无显示模式，跟着提示步骤进行关闭 ./displaymodeselector --gpumode # 重启PVE后生效 reboot[/scode]创建vGPU资源映射如果机器的PCI设备列表有很多，或者设备里存在多张显卡又或者在用Ampere架构及以上的显卡采用的是SR-IOV拆分，会多出很多个VF设备。直接从原始设备中添加vGPU的时候很难查找。这时就可以来创建PCI设备的资源映射，这样在添加vGPU设备时能更快的选择到我们vGPU设备。A5000采用SR-IOV拆分，会多出很多个VF设备，只需要全部勾选非SR-IOV拆分的显卡，则勾选显卡本身单独创建即可。多张卡就创建多个资源映射添加PCI设备时，在映射的设备列表就能找到我们需要的vGPU设备。三、搭建fastapi-dls授权服务NVIDIA vGPU并非免费产品，需要对vGPU驱动购买许可才能正常使用vGPU，这里我用的是技术社区fastapi-dls项目来取得90天的试用许可。提供2种方式部署fastapi-dls服务，一种是在PVE宿主机本地部署，另一种是使用LXC容器运行docker来部署fastapi-dls，选择其中1种方式进行部署就行。PVE本地部署在PVE shell执行脚本安装FASTAPI-DLS服务来部署服务（PVE需要联网下载依赖包）输入1执行一键部署FastAPI-DLS服务=============================================== FastAPI-DLS 管理脚本 一个部署在PVE宿主机的NVIDIA GRID 驱动授权服务； 支持给NVIDIA GRID vGPU 14-19驱动版本进行授权； =============================================== 1) 一键安装 FastAPI-DLS V2.0.3 2) 一键卸载 FastAPI-DLS 3) 查看服务状态 4) 查看服务日志 5) 重启服务 6) 退出 =============================================== 请选择操作 [1-6]: 这里会检测IP并使用你的PVE服务器IP作为授权地址，这里我们选择Y继续；（如果你PVE地址是内网IP，你又想将授权服务映射公网，则选N，手动填写公网IP地址）端口：默认443，自签证书：默认10年，授权天数周期：默认90天。[STEP] 开始部署 FastAPI-DLS... [INFO] 请配置以下参数（直接回车使用默认值） [INFO] 检测到服务器IP: 10.10.10.253 是否使用此IP? [Y/n]: y 请输入服务端口 [默认: 443]: 请输入证书有效期(天) [默认: 3650]: 请输入租约有效期(天) [默认: 90]: [INFO] 安装配置: 服务器IP: 10.10.10.253 服务端口: 443 证书有效期: 3650 天 租约有效期: 90 天 确认开始安装? [y/N]:安装好后就可以给虚拟机GRID驱动授权了========== FastAPI-DLS 部署完成 ========== 授权服务地址: https://10.10.10.253:443 配置文件位置: /etc/fastapi-dls/env ========================================== 管理命令: 启动: systemctl start fastapi-dls 停止: systemctl stop fastapi-dls 重启: systemctl restart fastapi-dls 状态: systemctl status fastapi-dls 日志: journalctl -u fastapi-dls -f 如果需要修改配置，请编辑 /etc/fastapi-dls/env 后重启服务 ========================================== 按回车键返回主菜单...LXC容器部署[scode type="blue"]LXC容器信息：NVIDIA vGPU 驱动授权服务器（90天授权期，客户端在每13天12点续订1次许可证，授权服务需要保持运行才能自动续期）FASTAPI-DLS 版本：2.0.2CT容器IP：10.10.10.99登录LXC账号：root登录LXC密码：123123[/scode]1）将下载下来的LXC容器还原包vzdump-lxc-999-2025_07_31-19_21_51.tar.zst上传到PVE的/var/lib/vz/dump/路径下。然后进行还原2）并将原来的IP改为自己局域网的IP，这里我用10.10.10.251。3）开机并登录LXC容器（账号：root密码：123123）并创建fastapi-dls授权服务。注意下边的IP10.10.10.251改为自己的IP。docker run --restart always --name fastapi-dls -d -e DLS_URL=10.10.10.251 -e DLS_PORT=443 -p 443:443 makedie/fastapi-dls:2.0.2 # 检查fastapi-dls容器是否正在运行 docker ps四、PVE去虚拟化做完以上vGPU部分，就可以给PVE安装做去虚拟化步骤了。因为市面上大部分端游都不允许在虚拟机进行游戏有反作弊检测，单机3A游戏除外。如你有在虚拟机玩端游的需求，则还需要对虚拟机做以下去虚拟化动作。单独去虚拟化在PVE管理工具菜单中可以对单台虚拟机进行去虚拟化，这样可以防止不需要去虚拟化的虚拟机受到关联造成影响或者性能损失。支持Intel/AMD处理器。脚本：定制硬件信息+取消虚拟机特征（Intel/AMD专用）机器使用的是Intel处理器就用Intel专用，AMD处理器就用AMD专用。脚本会去除虚拟机特征+模拟CPU型号+仿冒SMBIOS硬件信息全局去虚拟化全局去虚拟化需要安装去虚拟化QEMU-KVM包，可以更彻底的去除Qemu虚拟机的特征。安装后PVE下的所有虚拟机都会生效。安装完还需要配合脚本：定制硬件信息+取消虚拟机特征（Intel/AMD专用）一起使用。去虚拟化QEMU-KVM包是基于github上的pve-anti-detection的基础上修改重新编译打包而成的。步骤：PVE Shell → 安装去虚拟化QEMU-KVM包 → 安装五、创建虚拟机（Win11）创建虚拟机PVE的去虚拟化装好后，最后我们来安装一个虚拟机。把Win11镜像上传到PVE。然后在PVE上创建一个Win11虚拟机（24h2）实例创建好后PVE就会生成一个ID为100的Win11虚拟机打开PVE Shell 执行脚本④给虚拟机做去虚拟化和定制硬件信息安装虚拟机启动虚拟机，开始安装Win11配置虚拟机1）开启RDP远程桌面在系统设置开启RDP远程桌面2）允许RDP显卡加速RDP 支持无显卡运行，在远程桌面的时候默认是不调用显卡，可以开启它，让它支持显卡加速。首先打开虚拟机上的组策略gpedit.msc，依次找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境在右边选择将硬件图形适配器应用于所有远程桌面服务会话 右键编辑，选择已启用，确定保存。3）解除RDP 30帧限制RDP 默认的帧率限制在30帧，可以设置为60帧传输。在注册表打开该路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations在空白处右键->新建->DWORD（32位）值，命名为DWMFRAMEINTERVAL，双击刚添加的这一项，基数选择为十进制，数值数据填写15，确定保存重启生效。4）关闭防火墙关闭Windows防火墙,或者放行3389远程桌面端口5）关闭睡眠/屏幕在系统设置中，把屏幕超时改为从不配置vGPU1）添加vGPU设备PCI设备：选nvidia显卡（勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备230）音频设备：ich9-intel-hda/后端驱动器：无(不添加的话，串流玩游戏时是没有声音的)[scode type="blue"]其中 GRID T4-1Q (nvidia-230) 是 mdev 的名字，GRID T4--显卡名，1--1G 显存，Q 代表 vWS，nvidia-230 代表ID关于最后一位字母，如下:Q：为需要Quadro技术的性能和功能的创意和技术专业人员提供的虚拟工作站 - CUDA OpenGLC：计算密集型服务器工作负载，如人工智能、深度学习或高性能计算。- CUDA OnlyB：为业务专业人员和知识工作者提供的虚拟桌面 - 45FPS MAXA：为虚拟应用的用户，提供应用流或基于会话的解决方案 - Good for RDSH3D渲染，游戏，AI运算，请选择Q系列型号即可。[/scode]2）安装Guest驱动从vGPU 18.x开始，NVIDIA技术团队添加了 NLS ROOT CA 证书验证来保护vGPU授权数据，所以要想正常使用GRID显卡驱动还得想办法把驱动证书强校验给破解。以下是在网上找到的破解方法patched-nvidia-grid-drivers，通过FastAPI-DLS搭配patched-nvidia-grid-driver来跳过证书检查。将GRID驱动和nvxdapix.dll补丁复制到虚拟机# Windows GRID驱动程序 580.88_grid_win10_win11_server2022_dch_64bit_international.exe # vGPU19.0的nvxdapix.dll补丁用于修补WIN GRID驱动程序 https://github.com/rbqvq/patched-nvidia-grid-drivers/blob/master/patched/19.0/nvxdapix.dll双击打开GRID驱动程序，等待程序解压完成，并前往程序解压好的路径将下载下来的nvxdapix.dll补丁替换到Display.Driver文件夹下，然后开始安装GRID驱动程序安装GRID驱动选择精简安装，遇到Windows安全中心的弹窗选择始终安装此驱动程序软件即可。3）授权GRID驱动在浏览器访问fastapi-dls授权服务：https://10.10.10.251/-/client-token会自动下载好授权文件将文件放入C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\这个目录下3) 重启NVIDIA Display Container Ls服务，即可获得授权 授权失败怎么办？ ① 需要检查虚拟机的时间是否对得上授权服务器时间；② fastapi-dls授权服务是否为2.X版本，vGPU18.x后版本必须升级到2.X版本；4）通过远程桌面工具连接虚拟机跑个鲁大师测试一下显卡是否正常工作[scode type="yellow"]想解除60帧？编辑nano /etc/vgpu_unlock/profile_override.toml文件，加入以下信息关闭虚拟机重新开机生效。[profile.nvidia-230] cuda_enabled = 1 frl_enabled = 0 vgpu_type = "NVS"参数说明：[profile.nvidia-230]nvidia-230 为vgpu型号的参数。如选的不是230则改成自己选的那个型号。cuda_enabled = 1是否开启cudafrl_enabled = 0 是否限制帧数，0为不限制vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题[/scode]六、配置串流玩游戏最后就是把要玩的游戏安装到虚拟机玩游戏推荐使用串流协议，可以使用sunshine串流配合moonlight客户端进行游玩。当然你如果是想多开挂机游戏，可以用一些同步专家，RDP，VNC，ToDesk，Rustdesk，连连控等投屏软件就行。[scode type="blue"]注意：由于Web端虚拟机的VNC显示窗口是不会调用vGPU的，开启了这个VNC显示窗口相当于开启了一个虚拟显示器。这就导致一些游戏和远程软件不能正常调用到vGPU。所以我们在配置好虚拟机/配置好远程后，就可以把这个VNC窗口关闭掉。如何关闭VNC窗口？选中要关的虚拟机→硬件→显示改成"无"关闭后控制台的显示将会关闭无法显示，请使用远程工具连接虚拟机。[/scode]异地串流玩游戏（sunshine串流为例）既然都在局域网中云端玩游戏了，肯定少不了在异地玩游戏啦~如果你家宽有公网ipv4或者ipv6，就可以在异地玩云游戏了。需要先在Sunshine串流后台开启公网访问的设置如果你是ipv6，直接用虚拟机获取到的ipv6地址在Moonlight直接连接就行如果你是ipv4,则需要在你的路由器设备做好端口映射并放行47984-48010端口。以爱快为例：做好端口映射就可以使用你公网IPv4在Moonlight进行连接了。在用su7车机网络串流到虚拟机打黑神话流畅度还行 ::aru:proud:: 七、多开克隆虚拟机克隆多开我要开10个英雄联盟窗口，蓝队和红队完成一场5v5对战。开10个窗口就需要启动10个虚拟机，可以在一个虚拟机安装好游戏然后将这个虚拟机作为母机，使用脚本⑦链接克隆方式克隆10个虚拟机，这种克隆方式是将母机系统盘C盘和同步盘D盘的数据链接给子机使用，所以子机不会占用原始空间，可以有效的节约硬盘资源（注意：链接克隆后，母机如果没有啥必要，请不要开机也不要在里面正常使用请保持关机的状态。如果母机做了大量的修改和设置或者安装了些软件及驱动的，是有几率影响到子机的，导致子机蓝屏无法启动）。具体能不能跑的动10个窗口，得看物理机性能（CPU，内存，硬盘，网卡，显存）都需要合理分配。克隆出来的这10个虚拟机可以再使用脚本④随机硬件信息刷新一下虚拟机参数进行伪装。让每台虚拟机都是独立信息同步更新如果游戏后续需要更新了，可以去更新母盘的游戏数据，然后使用脚本⑧同步母盘数据盘下发给10个子虚拟机。注意：同步的话，只会去同步名称为ide1的硬盘，所以你的母盘虚拟机的游戏需要安装到这个硬盘下面才能正常下发给子虚拟机。同步会将子虚拟机的ide1硬盘给格式化，所以子虚拟机有重要数据不要放在ide1这个硬盘里，可以放桌面或者C盘这样数据不会丢失。FAQ问答[scode type="green"]一、NVIDIA vGPU部分Q1：我的显卡是Tesla P4，安装好了vGPU驱动，在Windows虚拟机看到显卡变成了T4或者RTXA6000A1: 部分NVIDIA vGPU HOST驱动是做了修补集成了vGPU unlock服务，所以你看到p4变成T4或者RTXA6000都是正常的并不会影响其性能。当然p4本身就是支持的vGPU卡，在vGPU17版本前直接用原生NVIDIA vGPU HOST驱动就行,如果你要用vGPU17版本及以上就得模拟一个受支持的显卡型号才能使用Q2：我的显卡有6GB显存，选用GRID T4-1Q（nvidia-230）模型，那显示可用数16个，我是不是能开16个？A2：错的！nvidia-230模型每开一个vgpu会占用1024M显存，6G显存理论就是1G+1G+1G+1G+1G+1G=6个。16是这个230模型最大可用数Q3：为啥我给虚拟机使用nvidia-230模型后，其他虚拟机想再使用其他模型就不让选择了可用数为0。只能用nvidia-230模型。A3：对的，默认vGPU是置于相等大小模式，一旦选了这个模型后，所有虚拟机都将采用该模型，你不能一台虚拟机使用nvidia-230模型，另一台虚拟机使用nvidia-231模型。但是从vGPU18版本后NVIDIA开始对老显卡非SRIOV的虚拟化也支持了混合模式即支持不同显存大小。打脸的是我们用的消费卡/非支持的专业卡依旧不能使用官方方法开启混合模式，卡不支持还是得用vGPU Unlock解锁修改。官方开启GPU混合大小模式1）使用nvidia-smi -q命令列出所有物理 GPU 的状态，并检查异构时间分片 vGPU 大小是否受支持。当Heterogeneous Time-Slice Sizes项如果是Supported状态，说明你的显卡支持开启混合模式.... Attached GPUs : 1 GPU 00000000:41:00.0 ... Heterogeneous Time-Slice Sizes : Supported ...2）使用以下命令开启混合大小模式。将id值改自己显卡获取到的数字（一般从0开始，机器只有一张N卡那默认就是0）# 开启混合大小模式 nvidia-smi vgpu -i id -shm 1 # 例如： nvidia-smi vgpu -i 0 -shm 1 # 输出以下信息说明开启成功 Enabled vGPU heterogeneous mode for GPU 00000000:41:00.0使用nvidia-smi -q命令检查 vGPU 异构模式是否已启用，以确认 GPU 现在处于混合大小模式。 ... vGPU Heterogeneous Mode : Enabled ...如要切换回GPU置于相等大小模式，使用-shm 0选项运行此命令即可。3）因为重启PVE GPU混合大小模式就会失效，所以建立个开机自启Systemd文件,开机自动开启。cat > /etc/systemd/system/nvidia-vgpu-shm.service <<EOF [Unit] Description=Enabled NVIDIA Heterogeneous Mode After=network.target nvidia-vgpud.service nvidia-vgpu-mgr.service Before=pve-guests.service [Service] Type=oneshot ExecStartPre=/bin/sleep 8 ExecStart=/usr/bin/nvidia-smi vgpu -i 0 -shm 1 [Install] WantedBy=multi-user.target EOF# 重载Systemd服务 systemctl daemon-reload # 设置nvidia-vgpu-shm.service开机自启 systemctl enable nvidia-vgpu-shm.service # 启动nvidia-vgpu-shm.service systemctl start nvidia-vgpu-shm.serviceQ4：我显卡不支持官方方法开启GPU混合大小模式，我要怎么给每台虚拟机分配不同大小的显存？A4：可以配合vGPU Unlock，通过修改framebuffer、framebuffer_reservation这2个值就能给每台虚拟机自定义显存大小。显存大小不建议低于1GB，低于1GB将无法启用NVENC视频编解码器，虽可改512M，384M，但你的显卡核心性能就在那，拆分的越多性能越弱，与其减小显存多开，不如多买几张卡。例如：我要使用nvidia-230模型给101虚拟机分配4G显存，102虚拟机分配2G显存，那么我就这样写即可nano命令编辑nano /etc/vgpu_unlock/profile_override.toml# 自定义nvidia-230模型 [profile.nvidia-230] # 启用cuda支持 cuda_enabled = 1 # 解除帧率限制 frl_enabled = 0 # 修复Q系列OpenGL异常问题 vgpu_type = "NVS" # 配置1GB显存的值 framebuffer = 939524096 framebuffer_reservation = 134217728 [vm.101] # 给101虚拟机设置4G显存 framebuffer = 3959422976 framebuffer_reservation = 335544320 [vm.102] # 给102虚拟机设置2G显存 framebuffer = 1946157056 framebuffer_reservation = 201326592Q5：我的显卡明明有6GB显存，用1GB显存的nvidia-230模型开了6台虚拟机，启动到第6台虚拟机发现无法启动是怎么回事？A5：总显存值剩余不足1GB，所以到第6台时就没法启动了，可以执行nvidia-smi查看剩余显存，通过改小第6台虚拟机显存大小再启动即可，或者把nvidia-230模型整体显存改小以下是些换算好的显存值，有需要可以替换到profile_override.toml文件，如需要更多值可以在这个网页查询：[button color="success" icon="glyphicon glyphicon-search" url="https://yangwenqing.com/files/pve/framebuffer.html" type=""]显存值计算[/button]# 设置384M显存 framebuffer = 318767104 framebuffer_reservation = 83886080 # 设置512M显存 framebuffer = 436207616 framebuffer_reservation = 100663296 # 设置896M显存 framebuffer = 822083584 framebuffer_reservation = 117440512 # 设置1GB显存 framebuffer = 939524096 framebuffer_reservation = 134217728 # 设置2GB显存 framebuffer = 1946157056 framebuffer_reservation = 201326592 # 设置3GB显存 framebuffer = 2952790016 framebuffer_reservation = 268435456 # 设置4GB显存 framebuffer = 3959422976 framebuffer_reservation = 335544320 # 设置5GB显存 framebuffer = 4966055936 framebuffer_reservation = 402653184 # 设置6GB显存 framebuffer = 5972688896 framebuffer_reservation = 469762048 # 设置8GB显存 framebuffer = 7985954816 framebuffer_reservation = 603979776 # 设置10GB显存 framebuffer = 9999220736 framebuffer_reservation = 738197504 # 设置12GB显存 framebuffer = 12012486656 framebuffer_reservation = 872415232 # 设置16GB显存 framebuffer = 16039018496 framebuffer_reservation = 1140850688 # 设置20GB显存 framebuffer = 20065550336 framebuffer_reservation = 1409286144 # 设置24GB显存 framebuffer = 24092082176 framebuffer_reservation = 1677721600 # 设置32GB显存 framebuffer = 32145145856 framebuffer_reservation = 2214592512 # 设置48GB显存 framebuffer = 48001712128 framebuffer_reservation = 3537895424Q6：为啥帧率限制在60帧，可以解除帧率限制？A6：可以的，vGPU调度器默认采用Best Effort（尽力而为）策略，A|Q系列会被限制在60帧，B系列会限制在45帧。如要解除帧率限制则改为Equal Share（均等份额）策略即可。只需要在PVE Shell中执行以下命令(这个是官方方法，如果你安装vGPU unlock直接修改配置文件frl_enabled = 0也是一样的效果)# 将 所有 vGPU 调度策略设置为均等份额调度器，并采用默认时间片长度 echo "options nvidia NVreg_RegistryDwords="RmPVMRL=0x01"" > /etc/modprobe.d/nvidia.conf # 更新initramfs update-initramfs -u -k all # 重启 reboot均等份额策略：物理 GPU 由其上所有运行的 vGPU 平均共享。当 vGPU 数量变化时，每个 vGPU 获得的份额会动态调整。如开1个VM则有100%性能，开2个VM则有50%性能，开3个VM则有33%性能，3个VM关掉一个又会变回50%性能。Q7：是否可以自定义帧率限制？A7：可以通过vGPU unlock配置覆盖方法，从而到达自定义帧率限制。该方法仅对虚拟机安装了GRID驱动生效，同时 frl_enabled = 0 时自定义帧率也不生效# 启用帧率限制器控制 frl_enabled = 1 # 自定义自己需要的帧率，如100帧 frl_config = 100如果你的虚拟机是仿冒了Quadro或者GeForce显卡的，安装这类非GRID的驱动如果要自定义帧率限制，则可以给虚拟机安装个微星小飞机RTSS显卡锁帧工具，就可以自定义锁定帧率了。比如30帧，100帧等等。[button color="success" icon="glyphicon glyphicon-save" url="https://share.feijipan.com/s/oiWkb9rT" type=""]RTSS显卡锁帧工具7.3.7-中文版[/button]Q8：可以固定分辨率大小？或者说是固定默认分辨率。A8：可以的，需要配合vGPU unlock覆盖配置文件，去修改profile_override.toml文件。如要固定最大/默认分辨率大小，写法如下:如分配最大为1个1920x1080分辨率的显示器# 显示器数量 num_displays = 1 # 显示器长宽 display_width = 1920 display_height = 1080 #显示器分辨率，max_pixels值=长宽的乘积 max_pixels = 2073600Q9：我已经用FASTAPI-DLS生成的授权文件给虚拟机NVIDIA GRID驱动成功授权了，这个有数量限制吗？A9：没有明确的授权数量上限，而是控制有效期为默认90天。客户端将在每13天的12点续订一次许可证，所以授权服务需要一直开着才能自动续期；如遇到授权失败，需要检查虚拟机的时间是否与授权服务器一致，必须一致才能取得授权；如安装18 19的vGPU驱动还需要将FASTAPI-DLS版本升级到2.X，同时替换Guest驱动补丁才能正常授权Q10：我不想用NVIDIA GRID驱动+授权驱动方式，我想用模拟Quadro专业卡或者GeForce消费卡安装这类型驱动。A10：可以的，可以使用“定制显卡型号信息”脚本，模拟好Quadro专业卡或者GeForce消费卡然后去安装对应的Quadro驱动或者GeForce驱动即可，这样驱动就不需要授权且更像一张物理显卡。注意这类方法只适用于Windows系统，Linux系统无法使用且无法使用CUDA计算，同时vGPU策略同样不适用于这类驱动需要注意：打Quadro/Geforce驱动不要高于550及以上的版本，这类版本对驱动授权加强了校验，即使模拟为专业卡/消费卡，一旦试用期到就会触发 license限制在15帧。如果你安装vGPU16 17 18 19的任意版本安装Quadro538或者Geforce537的驱动就可以了；如果你安装vGPU11的版本就安装441/453的Quadro驱动；如果你游戏需要550以上的驱动才能运行的又或者你需要使用CUDA计算，那你还是老老实实用GRID驱动+授权驱动方式；适用于vGPU 16 17 18 19的Win10 Win11的GeForce驱动[button color="success" icon="glyphicon glyphicon-save" url="https://www.nvidia.cn/drivers/details/212701/" type=""]537 GeForce驱动[/button]适用于vGPU 16 17 18 19的Win10 Win11的Quadro驱动[button color="success" icon="glyphicon glyphicon-save" url="https://www.nvidia.cn/drivers/details/224489/" type=""]538 Quadro驱动[/button]适用于vGPU11的Win10的Quadro驱动[button color="success" icon="glyphicon glyphicon-save" url="https://www.nvidia.cn/drivers/details/177160/" type=""]453 Quadro驱动[/button]适用于vGPU11的Win7 Win8的Quadro驱动[button color="success" icon="glyphicon glyphicon-save" url="https://www.nvidia.cn/drivers/details/155850/" type=""]441 Quadro驱动[/button]Q11：你的显卡驱动程序已过期，不符合运行《暗黑破坏神IV》的最低要求。请更新驱动程序并重试。当前版本：551.61，最低要求版本：552.74A11：游戏需要较新的驱动才能游戏，可以尝试直接在虚拟机安装552.74的驱动，如果安装了新的Guest驱动报43代码错误，则你还需要升级PVE宿主机的vGPU Host驱动。Q12：为啥我在PVE网页虚拟机控制台里打完显卡驱动后，就不能操作了呢？A12：请配置好远程桌面或者安装第三方远程工具，确认能通过远程连上虚拟机再来安装显卡驱动，如果你没配置就安装了显卡驱动，则需要先删除显卡设备，配置好远程再添加上显卡设备。因为你一旦安装好显卡驱动后系统就会呈现双显示器状态，这样就会导致PVE网页虚拟机控制台黑屏，或者是副屏状态，使得无法操作虚拟机。这里推荐把PVE控制台窗口显示给关闭，即在【虚拟机→硬件→显示】改成“无”，只保留vGPU一个显示器,通过远程操作虚拟机。如果你要在PVE控制台操作虚拟机，不想借助外部的远程工具，可以用ToDesk远程到虚拟机，把显示屏设置改为仅控制台窗口显示，这样PVE的Web显示就能操作了。（注意：PVE控制台的窗口是独立的虚拟显卡并不调用vGPU；UEFI安装的虚拟机修改PVE的Web窗口分辨率需要在虚拟机BIOS修改，SeaBIOS安装的虚拟机在系统显示设置进行修改分辨率）UEFI虚拟机修改PVE Web窗口分辨率操作步骤：虚拟机开机按esc键进入BIOS → Device Manager → OVMF Platform ConfigurationQ13：修改PVE的Perl模块让VNC显示窗口输出vGPU显卡画面A13：针对上面的Q12做了优化，将PVE的VNC显示窗口直接输出vGPU显卡画面，让PVE的Web VNC窗口也支持调用GPU资源,只需要在虚拟机添加vgpu显卡时勾选主GPU即可；(仅对vGPU 16 17 18和UEFI方式的虚拟机有效) 修改QemuServer.pm nano 命令修改 QemuServer.pm文件，可以使用 Ctrl+W，搜索关键字定位nano /usr/share/perl5/PVE/QemuServer.pm push @$devices, '-device', print_vga_device( $conf, $vga, $arch, $machine_version, $machine_type, undef, $qxlnum, $bridges);添加判断语句到 ; 号前if $vga->{type} ne 'gpu'修改后的效果 push @$devices, '-device', print_vga_device( $conf, $vga, $arch, $machine_version, $machine_type, undef, $qxlnum, $bridges) if $vga->{type} ne 'gpu'; 修改PCI.pm nano 命令修改 PCI.pm文件，可以使用Ctrl+W，搜索关键字定位nano /usr/share/perl5/PVE/QemuServer/PCI.pm添加以下代码 # If GPU is installed, read the frame from GPU if ($d->{'x-vga'}) { my $mdevtype = $d->{mdev} // ""; $mdevtype =~ s/^(.*?)-.*$/$1/; $devicestr .= ",x-igd-opregion=on" if $mdevtype eq "i915"; $devicestr .= ",display=on,ramfb=on,driver=vfio-pci-nohotplug"; $vga->{type} = 'gpu'; }修改后的效果 if ($j == 0) { $devicestr .= ',rombar=0' if defined($d->{rombar}) && !$d->{rombar}; $devicestr .= "$xvga"; $devicestr .= ",multifunction=on" if $multifunction; $devicestr .= ",romfile=/usr/share/kvm/$d->{romfile}" if $d->{romfile}; $devicestr .= ",bootindex=$bootorder->{$id}" if $bootorder->{$id}; for my $option (qw(vendor-id device-id sub-vendor-id sub-device-id)) { $devicestr .= ",x-pci-$option=$d->{$option}" if $d->{$option}; } # If GPU is installed, read the frame from GPU if ($d->{'x-vga'}) { my $mdevtype = $d->{mdev} // ""; $mdevtype =~ s/^(.*?)-.*$/$1/; $devicestr .= ",x-igd-opregion=on" if $mdevtype eq "i915"; $devicestr .= ",display=on,ramfb=on,driver=vfio-pci-nohotplug"; $vga->{type} = 'gpu'; } } 重启PVE服务 systemctl restart {pvedaemon,pveproxy} 设置虚拟机 将虚拟机的显卡 PCI 设备将主 GPU (x-vga) 勾选, 重启虚拟机即可如果虚拟机安装了显卡, 默认显示设备会被禁用, VNC 将从显卡读取画面，也就实现了在VNC调用GPU的效果。如果你需要SeaBIOS引导启动的虚拟机也支持，可以使用这个新方法[post cid="3253" /]Q14：我用的是CMP系列的30HX/40HX/50HX的挖矿卡，为啥一切都正常，虚拟机就是无法启动。A14：CMP系列的挖矿卡寄存器BAR1只有64MB，要启用vGPU实例默认需要256MB，需要将vGPU配置信息重写。将换算好的64M的bar1值，写入profile_override.toml文件1）使用命令lspci -v -s 硬件ID查看自己显卡bar1大小，如30hx：2）nano命令编辑nano /etc/vgpu_unlock/profile_override.toml# 配置nvidia-230重写文件 [profile.nvidia-230] # 将bar1_length参数调整为64MB bar1_length = 0x40Q15：我是官方支持的vGPU显卡，我可能不需要解锁，想关闭vGPU-unlock服务。A15：如需要禁用vGPU-unlock的解锁服务，执行以下命令，重启pve即可echo "unlock = false" > /etc/vgpu_unlock/config.toml[/scode][scode type="blue"]二、虚拟机部分Q1：虚拟机分配的内存给多少pve就占用多少，且在pve控制台不能操作关机和不显示IP是怎么回事？A1：VMware平台有VMwareTools，KVM平台有qemu-guest-agent。PVE下给虚拟机安装qemu-guest-agent可解决虚拟机无法关机和内存不同步IP不显示等问题。在PVE先给虚拟机开启qemu-guest-agent再安装qemu-guest-agentWindows虚拟机为例访问网站 Virtio驱动下载页 下载 Virtio 驱动，例如 virtio-win-0.1.262.iso，上传到虚拟机。加载镜像文件后安装virtio-win-guest-tools.exe，然后重启系统。概要这里能显示IP，说明虚拟机的qemu-qa服务正常了。可以正常开关机虚拟机。PVE这里的内存使用率，如果你是直通了PCI设备，PVE会强制要求直通时内存必须固定，给多少内存占用多少。具体实际使用请在虚拟机内部查看。Q2：我的虚拟机运行的多了，虚拟机变卡了怎么办？A2：既要马儿跑，又要马儿不吃草的道理，机器做了虚拟化，CPU，硬盘，网卡等硬件都得依靠处理器去协调，所以结合自己硬件合理分配资源；1）CPU：玩竞技类/模拟类/策略类游戏请选用单核性能强的处理器；3A大型游戏请给多一点线程和内存；2）硬盘：硬盘IO读写越快虚拟机越流畅，不要把所有虚拟机都跑在一个硬盘那样IO读写会爆炸，推荐2-3个虚拟机一个硬盘，强烈推荐用nvme硬盘,10块机械硬盘组的raid0都不如一块nvme来的实际；3) 网卡：3-5个虚拟机千兆物理网卡足矣，其他的建议升级万兆网卡；4) GPU：当把帧率限制解除后，GPU分配给1台虚拟机时那么这台虚拟机能获得GPU100%性能，分配2台则50%性能，3台则33.3%性能；要想稳定多开推荐将帧率锁在60帧。Q3：我想在机器上开10个《英雄联盟》需要怎样的配置？A3：《英雄联盟》的硬件配置要求相对较低，以下是官方推荐的 60 FPS配置：操作系统：Windows 10/11（64位）处理器：Intel Core i5-3300 / AMD Ryzen 3 1200内存：8GB显卡：NVIDIA GeForce GTX 960 / AMD Radeon R9 280 / Intel UHD 630存储空间：40GB 可用空间分辨率：1920x1080那么创建一台Win虚拟机配置如下：操作系统：Windows10 x64vCPU：分配4个线程vRAM：分配8GB内存vROM：分配100GB存储，系统+游戏够用了vGPU：分配1GB显存，这游戏不怎么吃GPU那么10开硬件选配如下：处理器：E5-2690 v3/E5-2690 v4 (20核心40线程)内存：96G显卡：GeForce GTX 1080 Ti 11G / Tesla P100 16G硬盘：4张256G或者2张512GB Nvme高速盘；每张放2-3个虚拟机网卡：万兆网卡 英特尔X520/X540Q4：虚拟机能不能像LXC容器一样在外面配置IP，我不想登录到虚拟机里面手动修改。A4：支持的，可以在虚拟机安装一个cloudinit初始化软件，这样我们就可以在外面实现重置用户名，用户密码，IP地址等信息[button color="success" icon="glyphicon glyphicon-save" url="https://github.com/cloudbase/cloudbase-init" type=""]cloudinit软件[/button]1）将下载好的CloudbaseInitSetup_1_1_6_x64.msi文件进行安装（Win虚拟机为例）2）安装好后将路径下的C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf的文件内容全部删掉替换为以下的：该配置文件只做修改IP动作，其他的重置用户名，用户密码等不生效；[DEFAULT] config_drive_raw_hhd=true config_drive_cdrom=true config_drive_vfat=true bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\ mtu_use_dhcp_config=true ntp_use_dhcp_config=true plugins=cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin verbose=true debug=true log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ log_file=cloudbase-init.log local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ check_latest_version=false3）关机虚拟机，给虚拟机添加一个Cloudinit设备4）最后就是把虚拟机开机，然后把IP和DNS配置上去，点击重生成镜像，等待180秒。IP就能自动触发修改了。Q5：虚拟机是使用Seabios还是UEFI，哪个启动更好？A5：如果需要直通硬件请选用UEFI启动，大部分硬件只支持UEFI直通；Win10 Win11推荐UEFI，兼容性好且高效，在去虚拟化方面也更像是一台物理机带有物理机特征；除非你需要运行一些陈年老旧的软件/驱动或者系统才使用SeaBIOS引导启动Q6：链接克隆的虚拟机使用一段时间后出现蓝屏A6：引起这类问题大概率是母机做了更新动作（如设置，安装软件，驱动等等）一般母机做了链接克隆后，如果没有啥必要请不要开机也不要在里面正常使用请保持关机的状态。如果母机的系统盘做了大量的修改和设置或者安装了些软件及驱动到系统盘，是有几率影响到子机的，导致子机蓝屏无法启动对于这类问题也很好解决，只需要做好2个母机，一个母机负责链接克隆系统盘，克隆后永远不要开机母机，如果要改动系统设置直接去改动子机系统就行；另一个母机负责链接克隆同步盘（游戏盘），这个母机你想开机就开机，如游戏需要更新，则在母机更新好，执行同步脚本下发到子机就行。具体操作见下面：1）先做好一个名字为MJ-OS的母机，把游戏环境都安装好，然后选中母机右键克隆一个名为MJ-Game母机2出来。步骤：选中母机1 → 克隆 → 等待克隆完成2）MJ-Game母机2克隆好后，我们可以删除母机1的ide1的游戏盘腾出点硬盘空间，因为母机1只需要用到系统盘。步骤：关机虚拟机 → 选中ide1硬盘 → 分离 → 选中刚刚分离的未分配硬盘 → 移除3）之后就可以使用链接克隆脚本用母机1克隆子机出来，比如我要克隆4台子机出来102-105:步骤：打开PVE Shell → 选择克隆脚本4）再然后使用同步母机数据盘脚本用母机2同步游戏盘出来给子机即可。后续游戏更新再次用母机2进行下发到子机就行。步骤：打开PVE Shell → 选择同步脚本5）注意：如果母机是UEFI引导的虚拟机，克隆出来的子虚拟机最好单独处理一下efi引导盘（删掉efi引导盘重新添加个新的efi引导盘），不然子机可能会黑屏开不了机。如下图：删掉efi引导盘重新添加个新的efi引导盘添加efi引导盘时记得把预注册密钥给取消勾选，勾选的话就会开启安全启动，一些没签名的驱动或者软件可能不能正常工作。[/scode][scode type="yellow"]三、去虚拟化部分Q1：去除虚拟化后能玩哪类游戏？有封号风险吗？A1：理论可以过市面上90%的游戏，一些带有高级反作弊检测的端游如腾讯ACE，战眼BattlEye，蓝熊EAC的自行测试了，这类游戏既检查虚拟机特征和检查没有物理机特征所以即使做了去虚拟化也可能依旧进不了游戏；封号因素很多，系统环境，科技辅助，IP关联等等都有可能触发运营商封号机制，自行承担风险。Q2：NCSOFT的永恒之塔2检测PVE虚拟鼠标驱动，导致进不了游戏咋办？A2：方法很简单，只需要把鼠标驱动换成vmware的鼠标驱动即可，安装时提示不安全弹窗记得点允许安装即可。重启虚拟机后就能正常进游戏了[button color="success" icon="glyphicon glyphicon-save" url="https://share.feijipan.com/s/HgWBYhXU" type=""]Vmware鼠标驱动[/button]同时游戏策划特别对Todesk|向日葵|UU远程|连连控|Rustdesk|Moonlight|同步专家|RDP远程桌面|这类远程虚拟键鼠做了禁用，导致游戏无法正常点击。可见对游戏工作室是用心良苦啊；目前可以通过给虚拟机直通个键盘和鼠标就能用上方的远程工具配合物理键鼠正常操作游戏了这样是不是有点费键盘鼠标？一个虚拟机得配一套键盘鼠标。而且我PVE在机房，主控电脑不在机房键盘鼠标根本不够长 ::aru:speechless:: 确实如此！这种场景也好解决。在主控电脑安装个USB设备共享工具（服务端）就好了，主控电脑额外配一套键鼠用于共享给虚拟机使用。[button color="success" icon="glyphicon glyphicon-save" url="https://www.52pojie.cn/thread-1439589-1-1.html" type=""] USB over Network v6.0.4.3 中文版(USB设备共享工具)[/button]虚拟机也安装个USB设备共享工具（客户端），然后接入主控机服务器IP就能看到共享的鼠标键盘了。点击连接就能正常使用Q3：外网IP已经做了一机一IP，内网IP有没办法做隔离？想让虚拟机内网之间隔离不能互相通信，防止游戏因局域网关联扫号。A3：可以的，最直接办法就是将虚拟机的子网掩码设置为255.255.255.255。这样网络中就只有一个主机（即自己），无法与其他虚拟机直接通信。同时这样就无法直接使用局域网这类远程工具了，如果必须要使用局域网远程的话还需要将虚拟机IP在路由器做端口映射，通过网关IP+端口进行连接；最简单还是用走外网的远程软件比如Todesk，向日葵，UU远程等等还有一种办法就是在PVE上建立个NAT网络，让虚拟机都跑在nat网络下并做端口隔离。有兴趣可以看看这个[post cid="2290" /][/scode]学习|致谢NVIDIA Virtual GPU Software v19.0vgpu-unlock-rsFastAPI-DLSpatched-nvidia-grid-driverNVIDIA Local Trusted Storepve-anti-detection