PVE9:用NVIDIA vGPU19.0虚拟化显卡拆分在虚拟机玩游戏

记录6.14内核的PVE9配置NVIDIA vGPU19.0版本的显卡虚拟化拆分,并在虚拟机里玩游戏。NVIDIA vGPU是一项由 NVIDIA 开发的虚拟化技术。它允许单个物理的 NVIDIA GPU(显卡)被多个虚拟机(VM)同时、直接地共享使用。注意它不是一个免费的项目,需要购买软件许可vGPU License才能完整的使用vGPU。本文涉及的vGPU功能基于开源社区方案实现,仅限个人测试、学习及非商业用途,禁止用于商业生产环境。

免部署直接用篇

如果你是萌新或者是多设备工作室用户,可以用我封装好的PVE镜像。免部署开机即用。即节约时间又避免部署过程中产生的坑坑坑坑坑坑坑坑坑坑坑坑。当然由于每个人的显卡不同,该镜像还需要自己结合文章,把显卡需要的参数配置了才能使用。

预封装PVE镜像包-无桌面版

镜像使用说明:

1)镜像为预封装好的PVE镜像包,直接烧录硬盘启动即可;
2)镜像为无桌面版本,需要用第二台机器做主控机进行管理PVE
3)无绑定限制,镜像可永久使用,多机器工作室用户首选;

镜像更新说明:

1)基于PVE 9.0.10 内核Linux 6.14.11-2-pve版本进行封装;
2)该镜像大小32GB,管理账号:root,密码:123456;
3)管理口默认为主机的第一个口,默认IP:10.10.10.123,默认网关:10.10.10.10;
4)预装 NVIDIA vGPU Unlock服务,解除消费卡vGPU限制;
5)预装 NVIDIA vGPU19.0 HOST驱动,在PVE Shell 执行nvidia-smi可以查看;
6)提供fastapi-dls 授权驱动服务的LXC还原包,90天周期,长期用自动续期;
7)提供WIN10 22h2 X64 虚拟机的还原包,还原后请添加vGPU显卡设备并配置好驱动授权;
8)预装PVE反虚拟化模拟物理机器防检测的PVE-QEMU-KVM包的安装,基于Github上的lixiaoliu666的10.0.2-4版本;
9)提供了一些自己写的一键脚本(更改PVE管理IP|扩容系统盘剩余空间|安装去虚拟化QemuKVM包|定制SMBIOS信息|卸载反虚拟化QemuKVM包|批量克隆虚拟机|同步母机数据盘|批量删除虚拟机)登录SSH自动运行;


预封装PVE镜像包-桌面版

镜像使用说明:

1)镜像安装了GNOME图形界面,对实在找不到第二台机器来做主控机的用户友好;
2)PVE既是被控端也是主控端,不需要找第2台机器去管理PVE,直接在PVE管理即可;
3)前提是你机器最少要2个显卡,可以核显+独显或者2个独显的搭配,因为N显卡做了vGPU是没法输出显示器的,输出显示器就没法使用vGPU,记得在BIOS将显卡第一显示改核显或者第二张独显;

镜像更新说明:

1)基于PVE 9.0.10 内核Linux 6.14.11-2-pve版本进行封装;
2)该镜像大小28GB,管理账号:root,密码:123456;图形界面账号:pve,密码:123456;
3)管理口默认为主机的第一个口,默认IP:10.10.10.123,默认网关:10.10.10.10;
4)预装PVE图形界面、Fcitx5中文输入法。给没有2台电脑的用户也可以直接在PVE管理PVE;
5)预装远程工具:Remmina、Todesk,Rustdesk,向日葵,Moonlight串流;
6)预装 NVIDIA vGPU Unlock服务,解除消费卡vGPU限制;
7)预装 NVIDIA vGPU19.0 HOST驱动,在PVE Shell 执行nvidia-smi可以查看;
8)提供fastapi-dls 授权驱动服务的LXC还原包,90天周期,长期用自动续期;
9)提供WIN10 22h2 X64 虚拟机的还原包,还原后请添加vGPU显卡设备并配置好驱动授权;
10)预装PVE反虚拟化模拟物理机器防检测的PVE-QEMU-KVM包的安装,基于Github上的lixiaoliu666的10.0.2-4版本;
11)提供了一些自己写的一键脚本(更改PVE管理IP|扩容系统盘剩余空间|安装去虚拟化QemuKVM包|定制SMBIOS信息|卸载反虚拟化QemuKVM包|批量克隆虚拟机|同步母机数据盘|批量删除虚拟机)登录SSH自动运行;


预封装PVE镜像教学视频:

1.PVE9下使用NVIDIA vGPU玩游戏表现

2.烧录PVE9预封装镜像到硬盘

3.PVE9下vGPU19.0使用教学

4.PVE9下去虚拟化和游戏克隆多开

图文教学部署篇

硬件配置

演示的显卡依旧是哥布林救出来的【女生一手自用P106-100】显卡

配置型号
系统PVE 9.0.3
内核Linux pve9 6.14.8-2-pve
pve-qemu-kvm10.0.2-4
CPUIntel Core CC150 @ 3.5GHz 8核16线程
显卡七彩虹 P106-100 6144 MB
vGPU驱动580.65.05

女生一手自用P106-100

显卡支不支持vGPU虚拟化,可以点开下边列表进行查阅。

VGPU_Unlock支持的显卡列表 点我展开



以下 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显卡型号VGPU模拟型号
21c4TU116 GeForce GTX 1660 SUPERQuadro RTX 6000
21d1TU116BM GeForce GTX 1660 Ti MobileQuadro RTX 6000
21c2TU116Quadro RTX 6000
2182TU116 GeForce GTX 1660 TiQuadro RTX 6000
2183TU116Quadro RTX 6000
2184TU116 GeForce GTX 1660Quadro RTX 6000
2187TU116 GeForce GTX 1650 SUPERQuadro RTX 6000
2188TU116 GeForce GTX 1650Quadro RTX 6000
2191TU116M GeForce GTX 1660 Ti MobileQuadro RTX 6000
2192TU116M GeForce GTX 1650 Ti MobileQuadro RTX 6000
21aeTU116GLQuadro RTX 6000
21bfTU116GLQuadro RTX 6000
2189TU116 CMP 30HXQuadro RTX 6000
1fbfTU117GLQuadro RTX 6000
1fbbTU117GLM Quadro T500 MobileQuadro RTX 6000
1fd9TU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1ff9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fddTU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1f96TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f99TU117MQuadro RTX 6000
1faeTU117GLQuadro RTX 6000
1fb8TU117GLM Quadro T2000 Mobile / Max-QQuadro RTX 6000
1fb9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1f97TU117M GeForce MX450Quadro RTX 6000
1f98TU117M GeForce MX450Quadro RTX 6000
1f9cTU117M GeForce MX450Quadro RTX 6000
1f9dTU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1fb0TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fb1TU117GL T600Quadro RTX 6000
1fb2TU117GLM Quadro T400 MobileQuadro RTX 6000
1fbaTU117GLM T600 MobileQuadro RTX 6000
1f42TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f47TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f50TU106BM GeForce RTX 2070 Mobile / Max-QQuadro RTX 6000
1f51TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f54TU106BM GeForce RTX 2070 MobileQuadro RTX 6000
1f55TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f81TU117Quadro RTX 6000
1f82TU117 GeForce GTX 1650Quadro RTX 6000
1f91TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f92TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f94TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f95TU117M GeForce GTX 1650 Ti MobileQuadro RTX 6000
1f76TU106GLM Quadro RTX 3000 Mobile RefreshQuadro RTX 6000
1f07TU106 GeForce RTX 2070 Rev. AQuadro RTX 6000
1f08TU106 GeForce RTX 2060 Rev. AQuadro RTX 6000
1f09TU106 GeForce GTX 1660 SUPERQuadro RTX 6000
1f0aTU106 GeForce GTX 1650Quadro RTX 6000
1f10TU106M GeForce RTX 2070 MobileQuadro RTX 6000
1f11TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f12TU106M GeForce RTX 2060 Max-QQuadro RTX 6000
1f14TU106M GeForce RTX 2070 Mobile / Max-Q RefreshQuadro RTX 6000
1f15TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f2eTU106MQuadro RTX 6000
1f36TU106GLM Quadro RTX 3000 Mobile / Max-QQuadro RTX 6000
1f0bTU106 CMP 40HXQuadro RTX 6000
1eb5TU104GLM Quadro RTX 5000 Mobile / Max-QQuadro RTX 6000
1eb6TU104GLM Quadro RTX 4000 Mobile / Max-QQuadro RTX 6000
1eb8TU104GL Tesla T4Quadro RTX 6000
1eb9TU104GLQuadro RTX 6000
1ebeTU104GLQuadro RTX 6000
1ec2TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ec7TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ed0TU104BM GeForce RTX 2080 MobileQuadro RTX 6000
1ed1TU104BM GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1ed3TU104BM GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1f02TU106 GeForce RTX 2070Quadro RTX 6000
1f04TU106Quadro RTX 6000
1f06TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1ef5TU104GLM Quadro RTX 5000 Mobile RefreshQuadro RTX 6000
1e81TU104 GeForce RTX 2080 SUPERQuadro RTX 6000
1e82TU104 GeForce RTX 2080Quadro RTX 6000
1e84TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1e87TU104 GeForce RTX 2080 Rev. AQuadro RTX 6000
1e89TU104 GeForce RTX 2060Quadro RTX 6000
1e90TU104M GeForce RTX 2080 MobileQuadro RTX 6000
1e91TU104M GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1e93TU104M GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1eabTU104MQuadro RTX 6000
1eaeTU104MQuadro RTX 6000
1eb0TU104GL Quadro RTX 5000Quadro RTX 6000
1eb1TU104GL Quadro RTX 4000Quadro RTX 6000
1eb4TU104GL T4GQuadro RTX 6000
1e04TU102 GeForce RTX 2080 TiQuadro RTX 6000
1e07TU102 GeForce RTX 2080 Ti Rev. AQuadro RTX 6000
1e2dTU102 GeForce RTX 2080 Ti Engineering SampleQuadro RTX 6000
1e2eTU102 GeForce RTX 2080 Ti 12GB Engineering SampleQuadro RTX 6000
1e30TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e36TU102GL Quadro RTX 6000Quadro RTX 6000
1e37TU102GL GRID RTX T10-4/T10-8/T10-16Quadro RTX 6000
1e38TU102GLQuadro RTX 6000
1e3cTU102GLQuadro RTX 6000
1e3dTU102GLQuadro RTX 6000
1e3eTU102GLQuadro RTX 6000
1e78TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e09TU102 CMP 50HXQuadro RTX 6000
1dbaGV100GL Quadro GV100Tesla V100 32GB PCIE
1e02TU102 TITAN RTXQuadro RTX 6000
1cfaGP107GL Quadro P2000Tesla P40
1cfbGP107GL Quadro P1000Tesla P40
1d01GP108 GeForce GT 1030Tesla P40
1d10GP108M GeForce MX150Tesla P40
1d11GP108M GeForce MX230Tesla P40
1d12GP108M GeForce MX150Tesla P40
1d13GP108M GeForce MX250Tesla P40
1d16GP108M GeForce MX330Tesla P40
1d33GP108GLM Quadro P500 MobileTesla P40
1d34GP108GLM Quadro P520Tesla P40
1d52GP108BM GeForce MX250Tesla P40
1d56GP108BM GeForce MX330Tesla P40
1d81GV100 TITAN VTesla V100 32GB PCIE
1cb6GP107GL Quadro P620Tesla P40
1cbaGP107GLM Quadro P2000 MobileTesla P40
1cbbGP107GLM Quadro P1000 MobileTesla P40
1cbcGP107GLM Quadro P600 MobileTesla P40
1cbdGP107GLM Quadro P620Tesla P40
1cccGP107BM GeForce GTX 1050 Ti MobileTesla P40
1ccdGP107BM GeForce GTX 1050 MobileTesla P40
1ca8GP107GLTesla P40
1caaGP107GLTesla P40
1cb1GP107GL Quadro P1000Tesla P40
1cb2GP107GL Quadro P600Tesla P40
1cb3GP107GL Quadro P400Tesla P40
1c70GP106GLTesla P40
1c81GP107 GeForce GTX 1050Tesla P40
1c82GP107 GeForce GTX 1050 TiTesla P40
1c83GP107 GeForce GTX 1050 3GBTesla P40
1c8cGP107M GeForce GTX 1050 Ti MobileTesla P40
1c8dGP107M GeForce GTX 1050 MobileTesla P40
1c8eGP107MTesla P40
1c8fGP107M GeForce GTX 1050 Ti Max-QTesla P40
1c90GP107M GeForce MX150Tesla P40
1c91GP107M GeForce GTX 1050 3 GB Max-QTesla P40
1c92GP107M GeForce GTX 1050 MobileTesla P40
1c94GP107M GeForce MX350Tesla P40
1c96GP107M GeForce MX350Tesla P40
1ca7GP107GLTesla P40
1c36GP106 P106MTesla P40
1c07GP106 P106-100Tesla P40
1c09GP106 P106-090Tesla P40
1c20GP106M GeForce GTX 1060 MobileTesla P40
1c21GP106M GeForce GTX 1050 Ti MobileTesla P40
1c22GP106M GeForce GTX 1050 MobileTesla P40
1c23GP106M GeForce GTX 1060 Mobile Rev. 2Tesla P40
1c2dGP106MTesla P40
1c30GP106GL Quadro P2000Tesla P40
1c31GP106GL Quadro P2200Tesla P40
1c35GP106M Quadro P2000 MobileTesla P40
1c60GP106BM GeForce GTX 1060 Mobile 6GBTesla P40
1c61GP106BM GeForce GTX 1050 Ti MobileTesla P40
1c62GP106BM GeForce GTX 1050 MobileTesla P40
1bb8GP104GLM Quadro P3000 MobileTesla P40
1bb9GP104GLM Quadro P4200 MobileTesla P40
1bbbGP104GLM Quadro P3200 MobileTesla P40
1bc7GP104 P104-101Tesla P40
1be0GP104BM GeForce GTX 1080 MobileTesla P40
1be1GP104BM GeForce GTX 1070 MobileTesla P40
1c00GP106Tesla P40
1c01GP106Tesla P40
1c02GP106 GeForce GTX 1060 3GBTesla P40
1c03GP106 GeForce GTX 1060 6GBTesla P40
1c04GP106 GeForce GTX 1060 5GBTesla P40
1c06GP106 GeForce GTX 1060 6GB Rev. 2Tesla P40
1b87GP104 P104-100Tesla P40
1ba0GP104M GeForce GTX 1080 MobileTesla P40
1ba1GP104M GeForce GTX 1070 MobileTesla P40
1ba2GP104M GeForce GTX 1070 MobileTesla P40
1ba9GP104MTesla P40
1baaGP104MTesla P40
1badGP104 GeForce GTX 1070 Engineering SampleTesla P40
1bb0GP104GL Quadro P5000Tesla P40
1bb1GP104GL Quadro P4000Tesla P40
1bb3GP104GL Tesla P4Tesla P40
1bb4GP104GL Tesla P6Tesla P40
1bb5GP104GLM Quadro P5200 MobileTesla P40
1bb6GP104GLM Quadro P5000 MobileTesla P40
1bb7GP104GLM Quadro P4000 MobileTesla P40
1b06GP102 GeForce GTX 1080 TiTesla P40
1b07GP102 P102-100Tesla P40
1b30GP102GL Quadro P6000Tesla P40
1b38GP102GL Tesla P40Tesla P40
1b70GP102GLTesla P40
1b78GP102GLTesla P40
1b80GP104 GeForce GTX 1080Tesla P40
1b81GP104 GeForce GTX 1070Tesla P40
1b82GP104 GeForce GTX 1070 TiTesla P40
1b83GP104 GeForce GTX 1060 6GBTesla P40
1b84GP104 GeForce GTX 1060 3GBTesla P40
1b39GP102GL Tesla P10Tesla P40
1b00GP102 TITAN XTesla P40
1b01GP102 GeForce GTX 1080 Ti 10GBTesla P40
1b02GP102 TITAN XpTesla P40
1b04GP102Tesla P40
179cGM107 GeForce 940MXTesla M10
17c2GM200 GeForce GTX TITAN XTesla M60
17c8GM200 GeForce GTX 980 TiTesla M60
17f0GM200GL Quadro M6000Tesla M60
17f1GM200GL Quadro M6000 24GBTesla M60
17fdGM200GL Tesla M40Tesla M60
1617GM204M GeForce GTX 980MTesla M60
1618GM204M GeForce GTX 970MTesla M60
1619GM204M GeForce GTX 965MTesla M60
161aGM204M GeForce GTX 980 MobileTesla M60
1667GM204M GeForce GTX 965MTesla M60
1725GP100Tesla P40
172eGP100Tesla P40
172fGP100Tesla P40
174dGM108M GeForce MX130Tesla M10
174eGM108M GeForce MX110Tesla M10
1789GM107GL GRID M3-3020Tesla M10
1402GM206 GeForce GTX 950Tesla M60
1406GM206 GeForce GTX 960 OEMTesla M60
1407GM206 GeForce GTX 750 v2Tesla M60
1427GM206M GeForce GTX 965MTesla M60
1430GM206GL Quadro M2000Tesla M60
1431GM206GL Tesla M4Tesla M60
1436GM206GLM Quadro M2200 MobileTesla M60
15f0GP100GL Quadro GP100Tesla P40
15f1GP100GLTesla P40
1404GM206 GeForce GTX 960 FAKETesla M60
13d8GM204M GeForce GTX 970MTesla M60
13d9GM204M GeForce GTX 965MTesla M60
13daGM204M GeForce GTX 980 MobileTesla M60
13e7GM204GL GeForce GTX 980 Engineering SampleTesla M60
13f0GM204GL Quadro M5000Tesla M60
13f1GM204GL Quadro M4000Tesla M60
13f2GM204GL Tesla M60Tesla M60
13f3GM204GL Tesla M6Tesla M60
13f8GM204GLM Quadro M5000M / M5000 SETesla M60
13f9GM204GLM Quadro M4000MTesla M60
13faGM204GLM Quadro M3000MTesla M60
13fbGM204GLM Quadro M5500Tesla M60
1401GM206 GeForce GTX 960Tesla M60
13b3GM107GLM Quadro K2200MTesla M10
13b4GM107GLM Quadro M620 MobileTesla M10
13b6GM107GLM Quadro M1200 MobileTesla M10
13b9GM107GL NVS 810Tesla M10
13baGM107GL Quadro K2200Tesla M10
13bbGM107GL Quadro K620Tesla M10
13bcGM107GL Quadro K1200Tesla M10
13bdGM107GL Tesla M10Tesla M10
13c0GM204 GeForce GTX 980Tesla M60
13c1GM204Tesla M60
13c2GM204 GeForce GTX 970Tesla M60
13c3GM204Tesla M60
13d7GM204M GeForce GTX 980MTesla M60
1389GM107GL GRID M30Tesla M10
1390GM107M GeForce 845MTesla M10
1391GM107M GeForce GTX 850MTesla M10
1392GM107M GeForce GTX 860MTesla M10
1393GM107M GeForce 840MTesla M10
1398GM107M GeForce 845MTesla M10
1399GM107M GeForce 945MTesla M10
139aGM107M GeForce GTX 950MTesla M10
139bGM107M GeForce GTX 960MTesla M10
139cGM107M GeForce 940MTesla M10
139dGM107M GeForce GTX 750 TiTesla M10
13b0GM107GLM Quadro M2000MTesla M10
13b1GM107GLM Quadro M1000MTesla M10
13b2GM107GLM Quadro M600MTesla M10
1347GM108M GeForce 940MTesla M10
1348GM108M GeForce 945M / 945ATesla M10
1349GM108M GeForce 930MTesla M10
134bGM108M GeForce 940MXTesla M10
134dGM108M GeForce 940MXTesla M10
134eGM108M GeForce 930MXTesla M10
134fGM108M GeForce 920MXTesla M10
137aGM108GLM Quadro K620M / Quadro M500MTesla M10
137bGM108GLM Quadro M520 MobileTesla M10
137dGM108M GeForce 940ATesla M10
1380GM107 GeForce GTX 750 TiTesla M10
1381GM107 GeForce GTX 750Tesla M10
1382GM107 GeForce GTX 745Tesla M10
1340GM108M GeForce 830MTesla M10
1341GM108M GeForce 840MTesla M10
1344GM108M GeForce 845MTesla M10
1346GM108M GeForce 930MTesla M10


资源下载

百度网盘:https://pan.baidu.com/s/1rqgxvmFku6rG2Ppjq4g-cg?pwd=knrj

资源说明
1.PVE镜像proxmox-ve_9.0-1.iso
2.写盘工具balenaEtcher-Portable-1.7.9.exe
3.vGPU驱动NVIDIA vGPU 19.0
4.FASTAPI-DLSFASTAPI-DLS授权服务LXC还原包
5.系统镜像虚拟机的系统镜像

BIOS设置


提前在BIOS开启以下设置

  • 开启VT-d --必须开启,英特尔叫vt-d,AMD叫iommu
  • 开启SRIOV --如有
  • 开启Above 4G --如有
  • 关闭安全启动 --在security菜单 secure boot 改disabled

PVE的安装和基本设置

PVE烧录U盘

提前把balenaEtcher烧录工具PVE安装镜像下载好,这里我用的是proxmox-ve_9.0-1.iso版本,用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘,然后插到主机进行PVE的安装。
示例图演示的是烧录PVE8镜像,PVE9也是一样的

安装PVE系统

将U盘或者移动硬盘接入主机引导启动到PVE安装界面,采用第一种图形化界面进行安装。PVE系统我这边给了28G,20G作为PVE系统盘用于存些ISO镜像啥的,不需要太大。按自己需要设置。另外8G作为SWAP虚拟内存用。
PVE图形界面手动分区安装示意图:
示例图演示的是PVE8的安装过程,PVE9也是一样的

PVE基本设置

使用浏览器登录到PVE后台,需要对PVE进行硬盘挂载和一些基本设置,在PVE Shell 中执行。(以下设置将会大量使用nano文本编辑命令,至于怎么使用nano命令点我去学习
1)删除local-lvm将空间合并到local
前面只给PVE系统盘分配了20G空间,再分出个local-lvm分区那local系统分区就没多少空间了,所以我们需要进行合并,删除local-lvm

# 使用命令删除local-lvm
lvremove /dev/pve/data
# 输入y,确认,输出以下信息即成功
Do you really want to remove active logical volume pve/data? [y/n]: y
Logical volume "data" successfully removed.
# 再将local-lvm的空间转移到pve-root
lvextend -rl +100%FREE /dev/pve/root
# 输出以下信息即合并local分区成功
Size of logical volume pve/root changed from <9.75 GiB (2495 extents) to <19.50 GiB (4991 extents).
Logical volume pve/root successfully resized.
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/pve-root is now 5110784 (4k) blocks long.

删除了lvm-thin之后,还需要在Web删除local-lvm才算完成。
示例图演示的是PVE8的操作,PVE9也是一样的
2)把剩余的空间挂载为PVE数据存储池
最后就是把剩余的硬盘空间用作PVE数据存储池,需要做下硬盘分区。(这里要根据自己实际硬盘ID操作,我这里的是sda,用M.2硬盘的可能是nvme0n1不要盲目照抄)@零帧起手
示例图演示的是PVE8的操作,PVE9也是一样的
硬盘分区好后,可以到PVE控制台看到硬盘分区情况
示例图演示的是PVE8的操作,PVE9也是一样的
接着就是将该分区挂载为PVE数据存储池,把虚拟机安装到该存储池下就行。
示例图演示的是PVE8的操作,PVE9也是一样的
3)PVE换源
更换国内源主要是为了解决网络访问问题、提升下载速度、确保系统更新的可靠性,同时避免付费订阅的要求。
更换系统源
中科大源

# 替换 Debian 官方源和安全源为中科大源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources

更换企业源
中科大源

# 关闭官方订阅企业源
sed -i '/Types:/a Enabled: false' /etc/apt/sources.list.d/pve-enterprise.sources
# 新增无订阅企业源为中科大源
cat > /etc/apt/sources.list.d/pve-no-subscription.sources <<EOF
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

更换Ceph源
中科大源

# 匹配当前Ceph版本和系统版本并更换为社区无订阅的中科大源
if [ -f /etc/apt/sources.list.d/ceph.sources ]; then
  CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`
  source /etc/os-release
  cat > /etc/apt/sources.list.d/ceph.sources <<EOF
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME
Suites: $VERSION_CODENAME
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
fi

4)执行更新

# 更新软件包
apt update

5)LXC容器更源
国内清华源

# 备份APLInfo.pm
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
# 替换为清华源:
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
# 重启服务后生效
systemctl restart pvedaemon.service

6)PVE常用优化脚本

# 一键给PVE增加温度和CPU频率显示;硬盘信息;取消弹窗订阅;
(curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh || curl -Lf -o /tmp/temp.sh https://mirror.g hproxy.com/https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod

7)开启硬件直通
从Proxmox VE 8.0 开始,系统在检测到CPU和芯片组支持 IOMMU 的情况下,会自动启用内核参数,用户通常无需手动在 GRUB 中添加 intel_iommu=on 参数。只需要在主板BIOS开启IO虚拟化功能就能正常直通了。英特尔为vt-d,AMD平台是iommu。

8)加载内核模块
加载内核模块,使用nano命令加入以下信息
nano /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

9)屏蔽设备
添加设备黑名单,编辑pve-blacklist.conf
nano /etc/modprobe.d/pve-blacklist.conf

# 屏蔽NVIDIA显卡
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
# 允许不安全的设备中断
options vfio_iommu_type1 allow_unsafe_interrupts=1

10)执行更新initramfs

# 更新initramfs
update-initramfs -u -k all

配置 NVIDIA vGPU_Unlock 服务

vGPU_Unlock是解锁 NVIDIA 消费级显卡虚拟化功能的vGPU补丁,消费卡必须安装,原生支持的专业卡,数据中心卡可选安装(推荐也安装,可以解锁NVIDIA限制)。

# 创建vgpu_unlock文件夹
mkdir /etc/vgpu_unlock
# 创建profile_override.toml文件
touch /etc/vgpu_unlock/profile_override.toml
# 创建nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d启动服务
mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}
# 写入路径信息
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf
# 重新加载服务
systemctl daemon-reload

执行完成后,cat下查看服务配置是否与下边一致
cat /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}/*

[Service]
Environment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so
[Service]
Environment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so

下载预编译好的libvgpu_unlock_rs.so文件

mkdir -p /opt/vgpu_unlock-rs/target/release
cd /opt/vgpu_unlock-rs/target/release
wget -O libvgpu_unlock_rs.so https://yangwenqing.com/files/pve/vgpu/vgpu_unlock/rust/libvgpu_unlock_rs_vgpu19.so

安装 NVIDIA vGPU_HOST 驱动

在宿主机PVE下安装vGPU的HOST驱动。驱动已做修补,自行将host驱动NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run上传到/tmp目录

# 安装用到的依赖包和header头文件
apt install build-essential dkms mdevctl pve-headers-$(uname -r)
# 前往上传驱动的/tmp目录
cd /tmp
# 赋予执行权限
chmod +x NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run
# 安装驱动(默认一路回车直至安装完成即可)
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --dkms -m=kernel
# 安装好后执行重启
reboot


其他补充提示:
如要升级|降级vGPU驱动,则需要先卸载,再安装

# 卸载显卡驱动
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --uninstall
# 移除显卡相关程序
apt remove --purge nvidia-*
# 再开始安装驱动(默认一路回车直至安装完成即可)
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --dkms -m=kernel

重启完成后查看相关服务状态是否正常

# 查看相关服务状态
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=16

Ampere架构显卡开启vGPU

Ampere架构的显卡在PVE安装好vGPU HOST驱动后,还需要开启VF才能使用vGPU,开启VF前你需要在BIOS打开SR-IOV功能。(用的不是Ampere架构以上的显卡请跳过这部分@零帧起手
在PVE Shell 新建一个Systemd自启动服务,开机自启动VF

cat > /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


像RTX A5000/A6000这类带显示接口的显卡,还需要切换到无显示模式才能用vGPU,先切换好无显示模式再来安装驱动顺序不能乱。

# 下载displaymodeselector工具到PVE根目录
wget https://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/Tools/NVIDIA_Display_Mode_Selector_Tool/displaymodeselector
# 授权可执行文件
chmod  +x displaymodeselector
# 切换无显示模式,跟着提示步骤进行关闭
./displaymodeselector --gpumode
# 重启PVE后生效
reboot

演示图为Windows下操作,Linux也是一样的

创建vGPU资源映射

如果机器的PCI设备列表有很多,或者设备里存在多张显卡又或者在用Ampere架构及以上的显卡采用的是SR-IOV拆分,会多出很多个VF设备。直接从原始设备中添加vGPU的时候很难查找。

这时就可以来创建PCI设备的资源映射,这样在添加vGPU设备时能更快的选择到我们vGPU设备。
A5000采用SR-IOV拆分,会多出很多个VF设备,只需要全部勾选

添加PCI设备时,在映射的设备列表就能找到我们需要的vGPU设备。

搭建fastapi-dls授权服务

NVIDIA vGPU并非免费产品,需要对vGPU驱动购买许可才能正常使用vGPU,这里我用的是技术社区fastapi-dls项目来取得90天的试用许可。我这里提供一个PVE的LXC容器,使用docker服务部署的fastapi-dls授权。


LXC容器信息:
NVIDIA vGPU 驱动授权服务器(90天授权期,客户端在每13天12点续订1次许可证,授权服务需要保持运行才能自动续期)
FASTAPI-DLS 版本:2.0.2
CT容器IP:10.10.10.99
登录LXC账号:root
登录LXC密码:123123

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安装去虚拟化模拟物理机QEMU-KVM包安装了。因为市面上大部分端游都不允许在虚拟机进行游戏有反作弊检测,单机3A游戏除外。如你有在虚拟机玩端游的需求,则还需要对虚拟机做以下去虚拟化动作。PVE去虚拟化模拟真实物理机器项目用的是github上的lixiaoliu666的pve-anti-detection

安装去虚拟化QEMU-KVM

正因为有些游戏除了会检测“虚拟机特征”外还会去检测“没有物理机特征”来判断你的设备是否符合他们的要求,才能让你进游戏。该项目作者新加入了物理机特征比如风扇,温度,电池,电压等等的物理机特征。让虚拟机更像是一台物理机。

查询当前PVE在用的KVM包版本

# 查询pve当前kvm包版本
dpkg -l|grep kvm
# 目前我机器安装的kvm包版本是10.0.2-4
ii  pve-qemu-kvm                         10.0.2-4                             amd64        Full virtualization on x86 hardware

发布页下载自己PVE对应的qemukvm包,如10.0.2-4

# 下载10.0.2-4版本qemu-kvm,这个兼容性最好,和原版pve-qemu一样什么都支持
wget -O /root/pve-qemu-kvm_10.0.2-4_amd64.deb "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/pve-qemu-kvm_10.0.2-4_amd64.deb"
# 下载10.0.2-4版本qemu-kvm(2选1,用上面那个就不要用这个),屏蔽掉了VirtIO一堆设备支持,抗检测能力强,但是要失去SCSI硬盘、virtio网卡、virtioBlock硬盘、virtio-GPU的支持
wget -O /root/pve-qemu-kvm_10.0.2-4_amd64Strong.deb "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/pve-qemu-kvm_10.0.2-4_amd64Strong.deb"
# 下载edk2固件包
wget -O /root/pve-edk2-firmware-ovmf_4.2025.02-4_all.deb "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/pve-edk2-firmware-ovmf_4.2025.02-4_all.deb"

安装去虚拟化QEMU-KVM包

# 安装qemu-kvm包
dpkg -i pve-qemu-kvm_10.0.2-4_amd64.deb # 或者dpkg -i pve-qemu-kvm_10.0.2-4_amd64Strong.deb
# 安装edk2固件包
dpkg -i pve-edk2-firmware-ovmf_4.2025.02-4_all.deb

下载3个ACPI补丁

wget -O /root/hpet.aml "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/hpet.aml"
wget -O /root/ssdt-ec.aml "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/ssdt-ec.aml"
wget -O /root/ssdt.aml "https://github.com/lixiaoliu666/pve-anti-detection/releases/download/v20250906-172038/ssdt.aml"

最后在虚拟机配置文件加入以下参数即可,相关的smbios参数(处理器,主板,内存)可以按自己需要调整
nano /etc/pve/qemu-server/虚拟机ID.conf

args: -acpitable file=/root/ssdt.aml -acpitable file=/root/ssdt-ec.aml -acpitable file=/root/hpet.aml -cpu host,model_id="Intel(R) Core(TM) i3-12100F",hypervisor=off,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true -smbios type=0,vendor="American Megatrends International LLC.",version=H9.2G,date='12/12/2022',release=3.7 -smbios type=1,manufacturer="SOYO",product="Z790 AERO",version="VER:H9.2G(2024/12/23)",serial="216E0B2F",uuid="506072A8-7D96-4F11-8828-1B761D046E77",sku="WORKSTATION-EDITION",family="Standard Series" -smbios type=2,manufacturer="SOYO",product="Z790 AERO",version="VER:H9.2G(2024/12/23)",serial="4CEA0F51",asset="1163219046",location="Home Office" -smbios type=3,manufacturer="SOYO",version="H9.2G",serial="3BAC76C9",asset="1300820029",sku="WORKSTATION-EDITION" -smbios type=17,serial=390C4458,asset="2365000812" -smbios type=4,manufacturer="Intel(R) Corporation",version="Intel(R) Core(TM) i3-12100F",max-speed=4900,current-speed=2900,serial=U2E028500841,asset="AST019781071",part="BX8071514568",processor-family=0x0C,processor-id="0x42849CF62CA1A751" -smbios type=9 -smbios type=8 -smbios type=8

以及修改PVE网卡默认前缀:D8:FC:93
步骤:数据中心 → 选项 → MAC地址前缀
修改MAC地址前缀
我的完整虚拟机配置如下:

args: -acpitable file=/root/ssdt.aml -acpitable file=/root/ssdt-ec.aml -acpitable file=/root/hpet.aml -cpu host,model_id="Intel(R) Core(TM) i9-12900KF",hypervisor=off,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true -smbios type=0,vendor="Phoenix Technologies LTD",version=H9.1G,date='09/29/2024',release=3.7 -smbios type=1,manufacturer="ZOTAC",product="Z790 Taichi",version="VER:H9.1G(2024/11/11)",serial="542D56F5",uuid="4F20197A-4F78-4EDA-845A-3DFE213D09B9",sku="HOME-EDITION",family="Enterprise Series" -smbios type=2,manufacturer="ZOTAC",product="Z790 Taichi",version="VER:H9.1G(2024/11/11)",serial="1027181A",asset="1780527965",location="Main Building" -smbios type=3,manufacturer="ZOTAC",version="H9.1G",serial="65577B77",asset="2674225916",sku="HOME-EDITION" -smbios type=17,serial=5790535E,asset="2262416244" -smbios type=4,manufacturer="Intel(R) Corporation",version="Intel(R) Core(TM) i9-12900KF",max-speed=4900,current-speed=2900,serial=U2E174780238,asset="AST029277879",part="BX80677300995",processor-family=0x0C,processor-id="0x5F772EED110AC667" -smbios type=9 -smbios type=8 -smbios type=8
audio0: device=ich9-intel-hda,driver=none
balloon: 0
bios: ovmf
boot: order=ide0
cores: 4
cpu: host,flags=+hv-evmcs
efidisk0: local:101/vm-101-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: mapping=P106-100,mdev=nvidia-230,pcie=1
ide0: local:101/vm-101-disk-1.qcow2,cache=unsafe,discard=on,model=Corsair%20Force%20MP510,serial=VHT663B28256354K791L,size=100G,ssd=1
ide1: local:101/vm-101-disk-2.qcow2,cache=unsafe,discard=on,model=Patriot%20Viper,serial=ZKU010D36672005R400N,size=256G,ssd=1
machine: pc-q35-10.0,viommu=intel
memory: 8192
meta: creation-qemu=9.2.0,ctime=1757032367
name: Win10
net0: e1000=D8:FC:93:30:E1:78,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: win10
scsihw: virtio-scsi-single
smbios1: uuid=ed587ece-2787-4555-a42d-4a70b13e2711
sockets: 1
tags: 22h2;dhcp;uefi;vgpu19.0
vmgenid: 268ce647-1dbf-4d3c-b78c-d5380385b209


作者原话:
虚拟机使用ovmf+q35(推荐q35)或者ovmf+i440fx,配置中注意硬盘一定选择sata硬盘(至少128g,50g 80g等大小太不像物理机硬盘大小,别对硬盘大小太抠抠扣扣搜搜了,scsi及virtio硬盘光驱网卡设备等避开使用),ide或者sata光驱,显示先选择标准(弄好后再直通独显核显vgpu等),cpu选择host(1插槽多核心这点一定注意),网卡选择e1000显卡(注意网卡mac地址问题,免得检测虚拟机),避开各种virtio设备(scsi硬盘scsi光驱等),并修改虚拟机的args参数和我一样。内存请使用8192 16384 4096这三个数值(更加像物理机内存大小),对应8g 16g 4g,其他大小请勿设置(太假太像虚拟机)。
只有一个原则:硬盘大小,内存大小,网卡都得像真实物理机配置!

PVE底层做完去除虚拟化后,大部分端游其实已经可以正常玩了。对于腾讯ACE和Steam上的Battleye这类检测机制就玩不了底层过不去自行找办法了。未来趋势肯定是在云端跑游戏的,物理机时代终将载入历史。以虚拟机为作弊理由踢出游戏的封闭思想完全不合理~ 。顺带附上一些工具测试,自行提取。

常用系统工具下载

# 虚拟机检测工具—解压密码123
https://yun.yangwenqing.com/Proxmox/Qemu%E5%8E%BB%E8%99%9A%E6%8B%9F%E5%8C%96/%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%A3%80%E6%B5%8B%E5%B7%A5%E5%85%B7-%E8%A7%A3%E5%8E%8B%E5%AF%86%E7%A0%81123.zip
# 图吧工具箱
https://www.tbtool.cn/
# 游戏常用运行库 合集 | Game Runtime Libraries Package
https://www.52pojie.cn/thread-1916914-1-1.html
# Windows激活工具
http://www.yishimei.cn/network/319.html

创建虚拟机(Win11)

PVE的去虚拟化装好后,最后我们来安装一个虚拟机。把Win11镜像virtio-win-0.1.271.iso驱动上传到PVE。然后在PVE上创建一个Win11虚拟机(24h2)实例


注意:
1)vGPU19.0版本需要系统版本在22h2及以上才能正常使用,低于22h2的系统版本是没法安装驱动的。

2)SCSI类型的硬盘需要安装驱动,这类性能最好,当然如果你怕被反作弊程序检测到是虚拟机的话,可以使用ide或者sata类型的硬盘,这类硬盘免驱不需要安装virtio驱动

3)创建好虚拟机后,记得在虚拟机配置文件中加入去虚拟化的agrs参数nano /etc/pve/qemu-server/虚拟机ID.conf

args: -acpitable file=/root/ssdt.aml -acpitable file=/root/ssdt-ec.aml -acpitable file=/root/hpet.aml -cpu host,model_id="Intel(R) Core(TM) i3-12100F",hypervisor=off,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true -smbios type=0,vendor="American Megatrends International LLC.",version=H9.2G,date='12/12/2022',release=3.7 -smbios type=1,manufacturer="SOYO",product="Z790 AERO",version="VER:H9.2G(2024/12/23)",serial="216E0B2F",uuid="506072A8-7D96-4F11-8828-1B761D046E77",sku="WORKSTATION-EDITION",family="Standard Series" -smbios type=2,manufacturer="SOYO",product="Z790 AERO",version="VER:H9.2G(2024/12/23)",serial="4CEA0F51",asset="1163219046",location="Home Office" -smbios type=3,manufacturer="SOYO",version="H9.2G",serial="3BAC76C9",asset="1300820029",sku="WORKSTATION-EDITION" -smbios type=17,serial=390C4458,asset="2365000812" -smbios type=4,manufacturer="Intel(R) Corporation",version="Intel(R) Core(TM) i3-12100F",max-speed=4900,current-speed=2900,serial=U2E028500841,asset="AST019781071",part="BX8071514568",processor-family=0x0C,processor-id="0x42849CF62CA1A751" -smbios type=9 -smbios type=8 -smbios type=8

安装虚拟机(Win11)

启动虚拟机,开始安装Win11

配置虚拟机(Win11)

1)安装virtio驱动
安装好Win11后,把Virtio驱动给打上,进到CD光驱盘运行virtio-win-guest-tools直接下一步直至安装完成

2)启用QEMU Guest Agent
安装好后,PVE的虚拟机概要处上可以看到ip信息,如果看不到ip信息,请在关闭虚拟机,在虚拟机的选项中,启用QEMU Guest Agent

3)开启RDP远程桌面
在系统设置开启RDP远程桌面

4)允许RDP显卡加速
RDP 支持无显卡运行,在远程桌面的时候默认是不调用显卡,可以开启它,让它支持显卡加速。
首先打开虚拟机上的组策略gpedit.msc,依次找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境在右边选择将硬件图形适配器应用于所有远程桌面服务会话 右键编辑,选择已启用,确定保存。

5)解除RDP 30帧限制
RDP 默认的帧率限制在30帧,可以设置为60帧传输。
在注册表打开该路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

在空白处右键->新建->DWORD(32位)值,命名为DWMFRAMEINTERVAL,双击刚添加的这一项,基数选择为十进制,数值数据填写15,确定保存重启生效。

6)关闭防火墙
关闭Windows防火墙,或者放行3389远程桌面端口

7)关闭睡眠/屏幕
在系统设置中,把屏幕超时改为从不

配置vGPU(Guest驱动)

1)添加vGPU设备
PCI设备:选nvidia显卡(勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备230)

音频设备:ich9-intel-hda/后端驱动器:无(不添加的话,串流玩游戏时是没有声音的)


其中 GRID T4-1Q (nvidia-230) 是 mdev 的名字,GRID T4--显卡名,1--1G 显存,Q 代表 vWS,nvidia-230 代表ID
关于最后一位字母,如下:
Q:为需要Quadro技术的性能和功能的创意和技术专业人员提供的虚拟工作站 - CUDA OpenGL
C:计算密集型服务器工作负载,如人工智能、深度学习或高性能计算。- CUDA Only
B:为业务专业人员和知识工作者提供的虚拟桌面 - 45FPS MAX
A:为虚拟应用的用户,提供应用流或基于会话的解决方案 - Good for RDSH
3D渲染,游戏,AI运算,请选择Q系列型号即可

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)通过远程桌面工具连接虚拟机跑个鲁大师测试一下显卡是否正常工作
Q系列模型帧率限制在60帧


想解除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是否开启cuda
frl_enabled = 0 是否限制帧数,0为不限制
vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题
解除帧率后的效果

配置串流玩游戏

最后就是把要玩的游戏安装到虚拟机

玩游戏推荐使用串流协议,可以使用sunshine串流配合moonlight客户端进行游玩。当然你如果是想多开挂机游戏,可以用一些同步专家,VNC,ToDesk,连连控等投屏软件就行。


注意:由于Web端虚拟机的VNC显示窗口是不会调用vGPU的,开启了这个VNC显示窗口相当于开启了一个虚拟显示器。这就导致一些游戏和远程软件不能正常调用到vGPU。所以我们在配置好虚拟机/配置好远程后,就可以把这个VNC窗口关闭掉。

如何关闭VNC窗口?选中要关的虚拟机→硬件→显示改成"无"关闭后控制台的显示将会关闭无法显示,请使用远程工具连接虚拟机。

异地串流玩游戏(sunshine串流为例)

既然都在局域网中云端玩游戏了,肯定少不了在异地玩游戏啦~如果你家宽有公网ipv4或者ipv6,就可以在异地玩云游戏了。
需要先在Sunshine串流后台开启公网访问的设置

如果你是ipv6,直接用虚拟机获取到的ipv6地址在Moonlight直接连接就行

如果你是ipv4,则需要在你的路由器设备做好端口映射并放行47984-48010端口。以爱快为例:

做好端口映射就可以使用你公网IPv4在Moonlight进行连接了。在用su7车机网络串流到虚拟机打黑神话流畅度还行

FAQ问答

一、NVIDIA vGPU部分

Q1: 我的显卡是Tesla P4,安装好了vGPU驱动,在Windows虚拟机看到显卡变成了T4或者RTXA6000

A1: NVIDIA vGPU HOST驱动是做了修补的,所以你看到p4变成P40或者RTXA6000都是正常的并不会影响其性能。当然p4本身就是支持的vGPU卡,在17版本前直接用原生NVIDIA vGPU HOST驱动就行

Q2:我的显卡有6GB显存,选用GRID T4-1Q(nvidia-230)模型,那显示可用数16个,我是不是能开16个?

A2:错的!nvidia-230模型每开一个vgpu会占用1024M显存,6G显存理论就是1G+1G+1G+1G+1G+1G=6个。16是这个230模型最大可用数
Q2

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值改自己显卡获取到的数字

# 开启混合大小模式
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选项运行此命令即可。

Q4:我显卡不支持官方方法开启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 = 201326592

Q5:我的显卡明明有6GB显存,用1GB显存的nvidia-230模型开了6台虚拟机,启动到第6台虚拟机发现无法启动是怎么回事?

A5:总显存值剩余不足1GB,所以到第6台时就没法启动了,可以执行nvidia-smi查看剩余显存,通过改小第6台虚拟机显存大小再启动即可,或者把nvidia-230模型整体显存改小

以下是些换算好的显存值,有需要可以替换到profile_override.toml文件

# 设置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 = 3537895424

Q6:我已经用FASTAPI-DLS生成的授权文件给虚拟机NVIDIA GRID驱动成功授权了,这个有数量限制吗?

A6:目前暂未遇到数量上限,FASTAPI-DLS 授权服务器只要一直开着,GRID驱动就能长期正常使用。如遇到授权失败,需要检查虚拟机的时间是否与授权服务器一致,必须一致才能取得授权。

Q7:你的显卡驱动程序已过期,不符合运行《暗黑破坏神IV》的最低要求。请更新驱动程序并重试。当前版本:551.61,最低要求版本:552.74

A7:游戏需要较新的驱动才能游戏,可以尝试直接在虚拟机安装552.74的驱动,如果安装了新的Guest驱动报43代码错误,则你还需要升级PVE宿主机的vGPU Host驱动。升级宿主机vGPU驱动前记得先卸载驱动再安装

Q8:为啥我在PVE网页虚拟机控制台里打完显卡驱动后,就不能操作了呢?

A8:请配置好远程桌面或者安装第三方远程工具,确认能通过远程连上虚拟机再来安装显卡驱动,如果你没配置就安装了显卡驱动,则需要先删除显卡设备,配置好远程再添加上显卡设备。因为你一旦安装好显卡驱动后系统就会呈现双显示器状态,这样就会导致PVE网页虚拟机控制台黑屏,或者是副屏状态,使得无法操作虚拟机。这里推荐把PVE控制台窗口显示给关闭,即在【虚拟机→硬件→显示】改成“无”,只保留vGPU一个显示器,通过远程操作虚拟机。

如果你要在PVE控制台操作虚拟机,不想借助外部的远程工具,可以用ToDesk远程到虚拟机,把显示屏设置改为仅控制台窗口显示,这样PVE的Web显示就能操作了。(注意:PVE控制台的窗口是独立的虚拟显卡并不调用VGPU;UEFI安装的虚拟机修改PVE的Web窗口分辨率需要在虚拟机BIOS修改,SeaBIOS安装的虚拟机在系统显示设置进行修改分辨率)

UEFI虚拟机修改PVE Web窗口分辨率操作
步骤:虚拟机开机按esc键进入BIOS → Device Manager → OVMF Platform Configuration

二、虚拟机部分

Q1:我虚拟机分配的内存给多少pve就占用多少,且在pve控制台不能操作关机和不显示IP是怎么回事?

Q1
A1:VMware平台有VMwareTools,KVM平台有qemu-guest-agent。PVE下给虚拟机安装qemu-guest-agent可解决虚拟机无法关机和内存不同步IP不显示等问题。在PVE先给虚拟机开启qemu-guest-agent再安装qemu-guest-agent
qemu-guest-agent

Windows虚拟机为例
访问网站 Virtio驱动下载页 下载 Virtio 驱动,例如 virtio-win-0.1.240.iso,上传到虚拟机。加载镜像文件后安装 virtio-win-gt-x64.msivirtio-win-guest-tools.exe,然后重启系统。
qemu-ga-x86_64.exe

Q2:我的虚拟机运行的多了,虚拟机变卡了怎么办?

A2:资本家给你开一份工作的钱,让你去完成10个人的工作量,效率还得高,你会怎么做呢?

1)硬件已经做了虚拟化,CPU,硬盘,网卡等设备都得依靠处理器支持,所以处理器性能越强虚拟机性能越好;

2)虚拟机运行的快慢取决于你的CPU和硬盘,硬盘IO读写越快虚拟机越流畅,虚拟机开的越多IO下降的越严重,不要所有虚拟机都跑在一个硬盘,硬盘是越多越好,不是越大越好。将虚拟磁盘的缓存模式改为Write back回写模式可以提升读写速度,推荐用nvme硬盘,7000M/s的速率也就白菜价

3) 虚拟机网速不达标,跑不满。CPU瓶颈。网卡支持sriov的话可以做sriov拆分不占用CPU有一定改善。当然前提排除网线和路由交换机等问题,

4) 虚拟机显卡跑分低。CPU拉了后腿。显卡无法充分发挥其性能。当然前提是显卡散热良好,显存充足下。

三、去虚拟化部分

Q1:去除虚拟化后能玩哪类游戏?有封号风险吗?

A1:理论可以过市面上90%的游戏,目前腾讯(ACE),战眼(BattlEye)这类反作弊检测过不掉;封号因素很多,系统环境,科技辅助,IP关联等等都有可能触发运营商封号机制,自行承担风险。已测可玩游戏:暗黑破坏神IV,王权与自由,原神,最终幻想,FC24/25,MIR4,WeGame英雄联盟,神泣5区,大话西游,梦幻西游

Q2:如果要恢复官方包只需要运行下面两个命令就能恢复官方包

A2:在PVE Shell执行即可

apt reinstall pve-qemu-kvm
apt reinstall pve-edk2-firmware-ovmf

学习|致谢

广告:PROXMOX-VE 技术支持,疑难解答,有需要可以闲鱼与我联系↓↓↓

PVE技术支持
最后修改:2025 年 09 月 25 日
如果觉得我的文章对你有用,请随意赞赏