顺带接有偿部署,有需要点击链接闲鱼与我联系

PVE8.2 NVIDIA显卡虚拟化多开VGPU17.0基于P106-100--游戏篇

从闲鱼下单了一张99元包邮的矿卡P106-100,目前该卡应该是最有性价比了吧? (垃圾佬狂喜)6G显存还有着1060的性能还要啥自行车。网上已经有很多大神评测了该款显卡以及通过核显调动这张P106-100。本期我打算用它来做虚拟化,该卡支持VGPU虚拟化,可惜不支持视频解码被阉割掉了,用来打打游戏还是不错的。

关于拆箱

P106-100拆箱体验 点我展开


1)我买到的是七彩虹牌子的P106-100,整体外观看上去挺新的,背部贴了一堆标签到我这应该是第n手了哈哈。得意于风扇没有噪音好评。
七彩虹P106-100
2)拆开内部看到还是有很多灰尘的,老矿卡就是老矿卡,显存表面都发黄了
拆开内部
3)打好驱动、烤鸡测试基本没啥问题,鲁大师得分13.5万,没有核显的加持,跑分确实低了不少,3DMARK压力测试通过率99.1%不敢相信。
成功驱动
鲁大师得分
Time Spy压力测试

免部署直接用篇

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

PVE镜像说明:

PVE8.3.2_VGPU_28G_DHCP.vtoy

分卷压缩,将4个压缩包下载后再解压
1)基于PVE 8.3.2 内核Linux 6.8.12-5-pve版本进行封装;
2)该镜像大小28GB,解压后放到Ventoy启动使用。账号:root,密码:123456
3)管理口默认为主机的第一个口,DHCP模式
4)预装 NVIDIA VGPU_Unlock服务,解除消费卡VGPU限制;
5)预装 NVIDIA VGPU17.0_HOST驱动,在PVE Shell 执行nvidia-smi可以查看;
6)提供fastapi-dls 授权驱动服务的LXC还原包,还原后请结合文章配置授权服务器如果不用GRID驱动,而是用Quadro驱动那么你不需要这个授权;
7)提供WIN10 22h2 X64 虚拟机的还原包,还原后请添加显卡设备再结合文章安装Guest显卡驱动
8)已对PVE做了去虚拟化玩游戏的pve-qemu-kvm包安装,基于9.0.2-4
9)local分区空间基本用完,还原虚拟机后记得删除备份包腾出空间;

使用教学01:

视频内容:| U盘制作PE系统 | BIOS设置 | Ventoy引导安装 | PVE基本设置 |

使用教学02:

视频内容:| fastapi-dls授权服务搭建 | Win虚拟机安装GRID驱动 | Win虚拟机安装Quadro驱动 | 虚拟机多开设置 |

手动图文部署篇

好了,进入正题。目前我的pve是8.2版本 6.8的内核。NVIDIA VGPU驱动用17.0版本给P106-100做VGPU虚拟化
8.24

硬件配置

配置型号
系统PVE 8.2
内核Linux pve8 6.8.12-5-pve
pve-qemu-kvm9.0.2-4
CPUIntel Core CC150 @ 3.5GHz 8核16线程
显卡七彩虹 P106-100 6144MB
VGPU驱动550.54.14

显卡支不支持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


PVE安装和优化设置

资源下载

小飞机网盘资源

说明下载地址
PVE安装镜像PVE8.2-2
写盘工具balenaEtcher

BIOS设置


提前在BIOS开启以下设置

  • 开启VT-d --必须开启
  • 开启SRIOV --如有
  • 开启Above 4G --如有
  • 关闭安全启动 --在security菜单 secure boot 改disabled


华南X99系列主板打开SR-IOV和VT-d设置

PVE烧录U盘

提前把balenaEtcher烧录工具PVE安装镜像下载好,这里我用的是proxmox-ve_8.2-2.iso版本,用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘,然后插到主机进行PVE的安装。

安装PVE

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

PVE优化设置

安装完成PVE后,在浏览器输入https://你的PVE管理IP:8006来访问你的PVE管理后台了

登录进来后需要对PVE进行硬盘挂载和一些优化设置,在PVE Shell 中执行。以下设置将会大量使用nano文本编辑命令,至于怎么使用自行百度,这里不重复造轮子了。 知道如何保存就行 Ctrl +X 输入“Y” 按下回车 保存

删除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才算完成。

把剩余的空间挂载为PVE数据存储池

最后就是把剩余的硬盘空间用作PVE数据存储池。需要做下硬盘分区,这里要根据自己实际硬盘ID操作,我这里的是sda,用M.2硬盘的可能是nvme0n1不要盲目照抄。

硬盘分区好后,可以到PVE控制台看到硬盘分区情况

接着就是将该分区挂载为PVE数据存储池,把虚拟机安装到该存储池下就行。

更换系统源

国内清华源
在PVE Shell中编辑sources.list,将原有的源链接在句首加 # 注释掉,更换以下清华源信息
nano /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

更换企业源

国内清华源
在PVE Shell中编辑pve-enterprise.list,将原有的源链接在句首加 # 注释掉,更换以下清华源信息
nano /etc/apt/sources.list.d/pve-enterprise.list

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription

修复更新源时报401错误

在PVE Shell中编辑ceph.list,将原有的源链接在句首加 # 注释掉,添加中科大ceph源
nano /etc/apt/sources.list.d/ceph.list

deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

执行更新源

# 更新系统程序
apt update 

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

PVE常用优化脚本

可以做下以下优化(非必须
1)去除无效订阅源提示
2)修改PVE概要信息-添加CPU频率硬盘温度等;

# 下载pve_source二进制文件到/root目录
wget https://yangwenqing.com/files/pve/pve_source.tar.gz && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

脚本使用也很简单,按指示输入对应数字回车即可,脚本预览:

============================================================== 
          _______       ___       ____ __
         / ____/ |     / / |     / / //_/
        / /    | | /| / /| | /| / / ,<
       / /___  | |/ |/ / | |/ |/ / /| |
       \____/  |__/|__/  |__/|__/_/ |_| ———— pve_source 小工具 

==============================================================
 
版本 : V1.2-Alpha 
Build : 20231128-001
 
作者 : Jazz
 
鸣谢 : Weilbyte(PVE 暗黑主题) 
       GitHub:https://github.com/Weilbyte/PVEDiscordDark
 
       gangqizai(Intel 核显直通) 
       GitHub:https://github.com/gangqizai/igd
 
       strongtz(Intel 核显 SR-IOV) 
       GitHub:https://github.com/strongtz/i915-sriov-dkms 

==============================================================

 
-------------------------PVE 换源工具------------------------- 
1、一键设置 DNS、换源并更新系统 
2、更换 Proxmox VE 源 
3、更新软件包 
4、更新系统 
5、设置系统 DNS 
6、去除无效订阅源提示 
-------------------------PVE  UI 修改------------------------- 
7、修改 PVE 概要信息 
8、应用 PVE 暗黑主题 
-------------------------PVE 高级配置------------------------- 
9、配置 PVE IOMMU 与核显直通、核显 SR-IOV, 群晖 虚拟 USB 引导等 
-----------------------PVE CPU 工作模式----------------------- 
10、配置 CPU 电源管理 P-State 状态 
11、配置 CPU 工作模式 
-------------------------  其他工具  ------------------------- 
12、通过 SLAAC 获取 IPv6 
13、卸载内核(Kernels)及头文件(Headers) 
14、设置 PVE 启动内核 
15、设置 NTP 自动校时服务器 
16、移除 local-lvm 存储空间(危险操作!) 
17、禁止系统修改网卡名称, 使用 eth0 ~ ethN 原名(风险操作!) 
-------------------------  网络连通性  ------------------------- 
网络连通性:已连接互联网 
-------------------------------------------------------------- 

开启硬件直通

如果你是Intel CPU
使用nano命令编辑grub
nano /etc/default/grub

# 开启iommu分组,在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"项将其修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
# 更新grub
update-grub

如果你是AMD CPU
使用nano命令编辑grub
nano /etc/default/grub

# 开启iommu分组,在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"项将其修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
# 更新grub
update-grub

加载内核模块

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

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

屏蔽设备

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

# 屏蔽AMD显卡
blacklist radeon
blacklist amdgpu 
# 屏蔽NVIDIA显卡
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
# 屏蔽INTEL核显
blacklist i915
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
# 允许不安全的设备中断
options vfio_iommu_type1 allow_unsafe_interrupts=1

执行更新initramfs

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

安装指定内核和kvm包

这里指定6.8.12-5内核9.0.2-4的kvm包是为了下面的PVE去虚拟化玩游戏用的,如果你的PVE不需要去虚拟化可以不指定内核,跳过这部分。

# 安装proxmox-kernel-6.8.12-5-pve
apt install proxmox-kernel-6.8.12-5-pve
# 安装pve-qemu-kvm=9.0.2-4
apt install  pve-qemu-kvm=9.0.2-4
# 查看当前安装的内核
proxmox-boot-tool kernel list
# 如 6.8.12-5-pve
# 将装好的6.8.12-5内核设置成第一启动项
proxmox-boot-tool kernel pin 6.8.12-5-pve
# 重启让内核启动到6.8.12-5-pve
reboot

验证是否开启直通

# 验证是否开启iommu
dmesg | grep iommu
或者
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

出现如下例子。则代表成功

[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0
[ 1.341116] pci 0000:00:01.0: Adding to iommu group 1
[ 1.341126] pci 0000:00:02.0: Adding to iommu group 2
[ 1.341137] pci 0000:00:14.0: Adding to iommu group 3
[ 1.341146] pci 0000:00:17.0: Adding to iommu group 4

此时输入命令

find /sys/kernel/iommu_groups/ -type l 
#出现很多直通组,就代表成功了。如果没有任何东西,就是没有开启
lsmod | grep vfio
# 检测模块是否加载
vfio_pci               16384  4
vfio_pci_core          94208  1 vfio_pci
vfio_iommu_type1       49152  2
vfio                   57344  17 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd                73728  1 vfio
irqbypass              16384  41 vfio_pci_core,kvm
#出现这类信息,就代表成功了。

配置 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://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/17.0/libvgpu_unlock_rs_only_17.0.so

安装 NVIDIA VGPU_HOST 驱动

在宿主机PVE下安装VGPU的HOST驱动,17版本需要加-m=kernel参数

# 安装用到的依赖包和header头文件
apt install build-essential dkms mdevctl pve-headers-$(uname -r)
# 下载显卡驱动
wget "https://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/17.0/NVIDIA-Linux-x86_64-550.54.10-vgpu-kvm-patched-kernel6.8-OA5500.run"
# 赋予执行权限
chmod +x NVIDIA-Linux-x86_64-550.54.10-vgpu-kvm-patched-kernel6.8-OA5500.run
# 安装驱动(默认一路回车直至安装完成即可)
./NVIDIA-Linux-x86_64-550.54.10-vgpu-kvm-patched-kernel6.8-OA5500.run -m=kernel
# 重启
reboot

其他补充提示:

1) 如要升级VGPU驱动,则需要先卸载,再安装

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

2) 下载慢?试试aria2吧

# 在pve安装aria2
apt install aria2
# 4线程下载文件
aria2c -s 4 -x 4 -j 10 'https://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/17.0/NVIDIA-Linux-x86_64-550.54.10-vgpu-kvm-patched-kernel6.8-OA5500.run'

重启完成后查看相关服务状态

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

systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service}
随后使用nvidia-smi

root@pve8:~# nvidia-smi
Sun Jul 21 19:09:09 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.10              Driver Version: 550.54.10      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                Off |   00000000:01:00.0 Off |                  N/A |
| 23%   44C    P0             28W /  120W |      27MiB /   6144MiB |      1%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

以及mdevctl types查看

root@pve8:~# mdevctl types
0000:01:00.0
  nvidia-522
    Available instances: 0
    Device API: vfio-pci
    Name: NVIDIA RTXA6000-1B
    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=32
  nvidia-523
    Available instances: 0
    Device API: vfio-pci
    Name: NVIDIA RTXA6000-2B
    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=24
  nvidia-524
    Available instances: 0
    Device API: vfio-pci
    Name: NVIDIA RTXA6000-1Q
    Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=32
  nvidia-525
    Available instances: 0
    Device API: vfio-pci
    Name: NVIDIA RTXA6000-2Q
    Description: num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=7680x4320, max_instance=24

搭建fastapi-dls授权服务

NVIDIA VGPU并非免费产品,需要对VGPU驱动购买许可才能正常使用VGPU,这里我用fastapi-dls项目来取得90天的试用许可。你可以在内网或者外网部署好Docker环境,然后搭建fastapi-dls授权服务,我这里提供一个PVE LXC容器部署到内网进行授权。顺带把作者90天的延续周期调整为365天。

# 安装aria2 多线程下载工具
apt install aria2
# 进入pve备份文件夹
cd /var/lib/vz/dump/
# 使用aria2 8个线程下载lxc fastapi-dls容器备份包
aria2c -s 8 -x 8 -j 10 'https://yun.yangwenqing.com/Proxmox/LXC/FASTAPI-DLS/vzdump-lxc-888-2024_10_20-01_12_57.tar.zst'

LXC容器信息:

NVIDIA VGPU 驱动授权服务器(365天授权期,服务器需要一直开启才能自动续期)
默认IP:10.10.10.99 网关:10.10.10.10
登录LXC账号:root
登录LXC密码:123123

1)将下载下来的LXC容器进行还原
还原LXC容器
2)并将原来的IP改为自己内网的IP,我这里用的就是10.10.10.99就不改了。
修改IP
3)开机并登录LXC容器(账号:root密码:123123)并创建fastapi-dls授权服务:
创建授权服务
创建授权服务,注意下边的IP10.10.10.99改为刚刚自己修改好的

docker run --restart always --name fastapi-dls -d -e DLS_URL=10.10.10.99 -e DLS_PORT=443 -p 443:443 yangwenqing/fastapi-dls
# 检查fastapi-dls容器是否正在运行
docker ps

创建虚拟机(Win10为例)

文章底部有优化好的Win10 22h2懒人还原包,有需要可以滑到底部自取


虚拟机名称:Win10(自定义)
内存:8G(如要给足8G内存虚拟机,则取消勾选Ballooning
处理器:host,核心数量8(按需设置,host拥有最好的性能
BIOS:OVMF(UEFI模式
显示:默认(安装好并且能通过远程连接上虚拟机后,建议改成无)
机型:q35(版本最新就行
SCSI控制器:VirtIO SCSI single(WIN下推荐用这个,性能最好
CD/DVD启动器(ide0)(加载镜像用,安装完系统记得删除掉)
硬盘:SATA 大小120G(系统盘推荐安装到固态,总线SCSI要优于SATA,但需要驱动,硬盘格式raw要优于qcow2,但不能打快照
网络:Intel E1000 网卡(网卡可以安装好再来添加,免得在配置系统时要登录微软账号,virto网卡要优于E1000,但需要驱动
EFI磁盘:UEFI(OVMF启动的话需要
PCI设备:nvidia显卡(勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备524
音频设备:ich9-intel-hda/后端驱动器:无(不添加的话,parsec串流游戏没有声音)

创建Win10虚拟机

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

镜像下载

小飞机网盘资源

# 微软原版镜像 Windows 10 Enterprise LTSC 2021 (x64) - DVD (Chinese-Simplified).ISO
https://share.feijipan.com/s/CXF5hpGp
# 不忘初心游戏版-Windows10_22H2_19045.4651_X64.iso
https://share.feijipan.com/s/qSF5hL5x
# 不忘初心游戏版-Windows11_24H2_26100.3194_X64.iso
https://share.feijipan.com/s/7DF5iBnq

Windows RDP远程桌面优化

如你用的是RDP方式来远程桌面且需要调用VGPU显卡,可按如下进行设置

1.关闭WIN防火墙

没特殊要求,建议关闭防火墙;
关闭WIN防火墙

2.关闭睡眠

虚拟机下要关闭睡眠,否则睡眠后没法自动起来;
关闭睡眠

3.开启远程桌面服务

开启虚拟机的RDP远程桌面服务
开启远程桌面服务

4.修改计算机名

虚拟机修改下计算机名。设置个好记的计算机名方便远程时直接用计算机名远程,这样就不需要记IP地址;多开需求在克隆虚拟机时,记得修改计算机名不然克隆出来的虚拟机计算机名都一致;
修改计算机名

5.允许空密码连接

让没有设置密码的账户也可以正常远程访问虚拟机。
允许无密码连接

6.允许RDP显卡加速

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

7.解除RDP 30帧限制

RDP 默认的帧率限制在30帧,可以设置为60帧传输。
在注册表打开该路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
打开注册表
在空白处右键->新建->DWORD(32位)值,命名为DWMFRAMEINTERVAL,双击刚添加的这一项,基数选择为十进制,数值数据填写15,确定保存重启生效。
解除30帧率限制
你还别说,RDP协议玩黑神话:悟空也能玩的起来
黑神话:悟空

安装 NVIDIA VGPU_GUEST 驱动

安装好系统并配置好相关的远程桌面服务后。就可以给虚拟机安装 NVIDIA VGPU Guest驱动了,GRID驱动的安装就跟平常打驱动一样,默认下一步直至安装完成就行不再赘述。(如果你不想用GRID驱动和授权驱动这类方式,可以翻到底部FAQ问答系列来模拟专业卡安装Quadro驱动)

# NVIDIA Guest驱动 551.61
# 直链下载
https://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/17.0/NVIDIA-GRID-Linux-KVM-550.54.10-550.54.14-551.61/Guest_Drivers/551.61_grid_win10_win11_server2022_dch_64bit_international.exe
# 备用下载
https://share.feijipan.com/s/T2F5gSzv

安装NVIDIA Guest驱动

授权驱动

1)在浏览器访问fastapi-dls授权服务:https://10.10.10.99/-/client-token会自动下载好授权文件
下载授权文件
2)下载后放入C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\这个目录下
将授权文件放到指定路径
3) 重启NVIDIA Display Container Ls服务,即可获得授权
也可以在cmd窗口使用nvidia-smi -q命令查看授权情况
如授权失败,需要检查电脑时间是否对得上授权服务器时间
重启服务
4)使用远程桌面工具连接上虚拟机跑个鲁大师测试一下显卡是否正常驱动并工作
鲁大师


想解除60帧?
编辑nano /etc/vgpu_unlock/profile_override.toml文件,加入以下信息关闭虚拟机重新开机生效。

[profile.nvidia-524]
num_displays = 1
display_width = 1920
display_height = 1080
max_pixels = 2073600
cuda_enabled = 1
frl_enabled = 0
vgpu_type = "NVS"
framebuffer = 939524096

参数说明:
[profile.nvidia-524]nvidia-524 为vgpu型号的参数。如选的不是524则改成自己选的那个型号。
num_displays 最大显示器数量
display_width = 1920
display_height = 1080
max_pixels = 2073600 这3个是虚拟显示器的分辨率,max_pixels是长宽的乘积
cuda_enabled = 1是否开启cuda
frl_enabled = 0 是否限制帧数,0为不限制
vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题
framebuffer = 939524096 1GB显存,设定vgpu的显存


突破60帧限制

自定义显卡显存大小
如要自定义修改显卡的显存大小,只需要修改framebuffer的值就好了,显存不建议低于1GB,官方说低于1GB将会禁用NVENC视频编解码器
注意:vgpu会默认占用128M,所以如果要改显存,请将结果减去128M再去换算,旧版是减去64M
例如,你期望显存为1GB,所以就用1024M-64M=960M/1024M-128M=896M
在线大小换算平台:https://www.bejson.com/convert/filesize/
换算结果

5)在PVE后台查看是否调用成功

root@pve8:~# nvidia-smi
Sun Jul 21 19:43:31 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.10              Driver Version: 550.54.10      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:01:00.0 Off |                  N/A |
| 23%   42C    P8              7W /  120W |    1045MiB /   6144MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      5675    C+G   vgpu                                         1018MiB |
+-----------------------------------------------------------------------------------------+

PVE去虚拟化检测部分

做完以上VGPU部分,就可以正常使用VGPU加速。专业设计,云桌面,Al深度学习用户可以不用往下看了。市面上大部分游戏都不支持在虚拟机进行游戏,如你有游戏需求,则还需要对虚拟机做以下去虚拟化操作。PVE去虚拟化检测玩游戏项目用的是B站-《李晓流-pve反虚拟化检测玩游戏》。

PVE-QEMU-KVM9去虚拟化

正因为有些游戏除了会检测“虚拟机特征”外还会去检测“没有物理机特征”来判断你的设备是否符合他们的要求,才能让你进游戏。该版本作者新加入了物理机特征比如风扇,温度,电压等物理机的特征。让虚拟机更像是一台物理机。且该版本仅支持pve-qemu-kvm9里面的qemu打补丁使用,pve-qemu-kvm7和pve-qemu-kvm8已不适用,请手动升级你的PVE到PVE-QEMU-KVM9。
下载PVE-QEMU-KVM9去虚拟化检测包

# 新建个qemu-kvm9文件夹存放KVM包
mkdir /root/qemu-kvm9 && cd /root/qemu-kvm9
# 下载2个KVM包
wget "https://yun.yangwenqing.com/Proxmox/Qemu%E5%8E%BB%E8%99%9A%E6%8B%9F%E5%8C%96/9.0.2-4/pve-qemu-kvm_9.0.2-4_amd64.deb"
wget "https://yun.yangwenqing.com/Proxmox/Qemu%E5%8E%BB%E8%99%9A%E6%8B%9F%E5%8C%96/9.0.2-4/pve-edk2-firmware-ovmf_4.2023.08-4_all_anti_detection20240830v5.0.deb"

安装去虚拟化包

查询当前PVE在用的系统内核版本

uname -a
# 目前我机器运行的系统内核版本为6.8.12-5-pve,具体输出如下:
Linux pve04 6.8.12-5-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-5 (2024-12-03T10:26Z) x86_64 GNU/Linux

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

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

如果你的pve系统内核为6.18.12-5-pve,pve-qemu-kvm包为9.0.2-4版本,那么可以直接安装刚下载下来的2个反虚拟化检测包

# 安装2个反虚拟化检测包
dpkg -i pve-qemu-kvm_9.0.2-4_amd64.deb
dpkg -i pve-edk2-firmware-ovmf_4.2023.08-4_all_anti_detection20240830v5.0.deb
# 安装完成执行重启
reboot


如果你的pve系统内核和pve-qemu-kvm包低于或高于6.18.12-5-pve,9.0.2-4这2个版本,那么你需要升级或者降级来安装好6.18.12-5-pve系统内核,9.0.2-4kvm版本包。再来安装刚下载下来的2个反虚拟化检测包

# 更新软件包
apt update
# 安装proxmox-kernel-6.8.12-5-pve
apt install proxmox-kernel-6.8.12-5-pve
# 安装pve-qemu-kvm=9.0.2-4
apt install  pve-qemu-kvm=9.0.2-4
# 查看当前安装的内核
proxmox-boot-tool kernel list
# 如 6.8.12-5-pve
# 将装好的6.8.12-5内核设置成第一启动项
proxmox-boot-tool kernel pin 6.8.12-5-pve
# 重启让内核启动到6.8.12-5-pve
reboot

确认PVE启动的内核为6.8.12-5-pve就可以安装这2个反虚拟化检测包

# 安装2个反虚拟化检测包
dpkg -i pve-qemu-kvm_9.0.2-4_amd64.deb
dpkg -i pve-edk2-firmware-ovmf_4.2023.08-4_all_anti_detection20240830v5.0.deb
# 安装完成执行重启
reboot

上面命令中安装的6.8.12-5内核,可以是apt install proxmox-kernel-6.8.12-5-pve-signedapt install proxmox-kernel-6.8.12-5-pve,区别一个是签名版,一个是未签名版。

最后在虚拟机配置文件加入以下参数即可,相关的smbios参数已经集成在pve-qemu-kvm包里面了,不需要再定制。
nano /etc/pve/qemu-server/虚拟机ID.conf

args: -cpu host,hypervisor=off,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true -smbios type=0 -smbios type=9 -smbios type=8 -smbios type=8

如要模拟CPU型号可以添加以下参数,CPU型号可以自行修改:(模拟CPU型号,显卡性能会被拉低)

args: -cpu host,family='6',model='7',stepping='2',model_id='Intel Core i7 12700 @ 4.90GHz',+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,kvm=off,hv_vendor_id=intel,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true,hypervisor=off -smbios type=0 -smbios type=9 -smbios type=8 -smbios type=8

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

args: -cpu host,hypervisor=off,vmware-cpuid-freq=false,enforce=false,host-phys-bits=true -smbios type=0 -smbios type=9 -smbios type=8 -smbios type=8
audio0: device=ich9-intel-hda,driver=none
bios: ovmf
boot: order=sata0
cores: 8
cpu: host
efidisk0: nvme0:100/vm-100-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:01:00.0,mdev=nvidia-524,pcie=1
machine: pc-q35-9.0
memory: 8192
meta: creation-qemu=9.0.2,ctime=1726330643
name: Win10
net0: e1000=D8:FC:93:76:99:DE,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: nvme0:100/vm-100-disk-1.qcow2,size=120G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=2e71b8f6-69c0-48b3-9b48-73b7feb03dac
sockets: 1
vga: none
vmgenid: dfad1b41-a73a-4c4d-a2c3-407b16d4a7f6


作者原话:
虚拟机使用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,其他大小请勿设置(太假太像虚拟机)。
只有一个原则:硬盘大小,内存大小,网卡都得像真实物理机配置!

AIDA64信息
去除虚拟化后,大部分游戏其实已经可以正常玩了。[高级]点的游戏对虚拟机检测机制不好过,类似腾讯游戏有ACE这类检测机制就玩不了。自行测试吧,顺带附上一些工具测试,自行提取。

工具下载

# 虚拟机检测工具—解压密码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

pafish64/AI-Khaser
去除虚拟化后效果
原神启动,强烈推荐用Sunshine/Parsec串流工具游玩(串流游玩需要显卡支持编解码,显存不得低于1G,p106这类卡阉割了编解码只能用软解)
原神

虚拟机克隆多开

需要虚拟机多开的话,只需要把制作好的虚拟机转换成模板作为母盘,然后链接克隆就行。记得给每台虚拟机修改计算机名。
PS:虚拟机一旦转换模版后就不支持再转换回虚拟机,即你之后都没法在母盘做更新游戏和设置,如你要对母盘做更新游戏和设置只能重新完整克隆一个新的虚拟机做好更新游戏和设置再转成新的母盘来使用,之前链接克隆的虚拟机删除,在新的母盘重新生成即可。
克隆虚拟机

有后悔药吗?重新做一次母盘太费时间了。

当然。PVE本身是不支持将虚拟机模版再次转换回虚拟机的,但可以通过强制修改虚拟机配置文件让虚拟机模版变回虚拟机,从而更新母盘系统的信息和设置,应用到各个链接克隆的虚拟机。`

以1304母盘虚拟机模版进行演示

编辑1304虚拟机配置文件,将template: 1这个参数前面加个#号注释掉,这样就恢复虚拟机了。
nano /etc/pve/qemu-server/1304.conf

转换成模版的虚拟机,虚拟磁盘变为只读模式,这里还需要将虚拟磁盘改回读写模式,才能正常开机更新母盘。

我这里是用的目录类型的存储池,虚拟磁盘路径一般在你的存储池路径/images/虚拟机ID/下。

# 去掉scsi0虚拟磁盘的只读属性
chattr -ia /mnt/pve/pve13data0/images/1304/base-1304-disk-0.qcow2
# 去掉scsi1虚拟磁盘的只读属性
chattr -ia /mnt/pve/pve13data1/images/1304/base-1304-disk-0.qcow2

改好后,母盘就正式变回虚拟机了,可以去开机更新母盘信息了。

更新完成母盘后要恢复为模版。只需要将刚才虚拟机的配置文件的template: 1这个参数前面#号删掉,然后再将虚拟磁盘恢复为只读模式。这样母盘又变回模板了,然后去开机链接克隆的虚拟机,你会发现母盘更新的设置已经同步到各个链接克隆的虚拟机上。

# 恢复scsi0虚拟磁盘的只读属性
chattr +ia /mnt/pve/pve13data0/images/1304/base-1304-disk-0.qcow2
# 恢复scsi1虚拟磁盘的只读属性
chattr +ia /mnt/pve/pve13data1/images/1304/base-1304-disk-0.qcow2


完整克隆:

1) 复制的结果是一个独立的虚拟机,新的虚拟机不与原来的虚拟机共享任何存储资源。
2) 可以选择目标存储,可以使用它将虚拟机迁移到不同的存储。同时您还可以更改磁盘映像格式。
3) 某些存储类型允许复制特定快照,默认为当前VM数据。这也意味着最终副本永远不会包含来自原始VM的任何其他快照。
4) 完整克隆需要读取并复制所有虚拟机映像数据。这通常比创建链接克隆慢得多。

链接克隆:

1)支持生成快速链接克隆的方法。此类克隆是可写的副本,其初始内容与原始数据相同。创建链接克隆几乎是即时的,并且最初不会占用额外空间。
2)之所以称为链接映像,是因为新映像仍引用原始映像。未修改的数据块从原始映像中读取,但修改内容从新位置写入(然后读取)。这种技术称为写入时复制。
3)这要求原始卷是只读的。使用PVE,可以将任何VM转换为只读模板)。此类模板稍后可用于高效地创建链接克隆。
4)当链接克隆存在时,您无法删除原始模板。无法更改链接克隆的目标存储,因为这是存储内部功能。
5)目标节点选项允许您在不同节点上创建新的虚拟机。唯一的限制是虚拟机位于共享存储上,并且该存储在目标节点上也可用。
6) 为了避免资源冲突,所有网络接口 MAC 地址都随机化,并且我们为 VM BIOS 设置生成一个新的UUID 。

FAQ问答

VGPU部分

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

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

Q2:我的P106-100显卡 6G显存,选用NVIDIA RTXA6000-1Q(nvidia-524)模型,那显示可用数32个,我是不是能开32个吗?

A2:错的!nvidia-524模型每开一个vgpu会占用1024M显存,6G显存理论就是1G+1G+1G+1G+1G+1G=6个。并且选了这个模型后,所有虚拟机都将采用该模型,你不能一台虚拟机使用nvidia-524模型,另一台虚拟机使用nvidia-525模型。
Q2

Q3:我不想每台虚拟机都用相同大小的显存,我能不能给每台虚拟机分配不同大小的显存?

A3:可以的,通过framebuffer这个值给每台虚拟机自定义显存大小。显存大小不建议低于1GB,低于1GB将无法启用NVENC视频编解码器,虽可改512M384M甚至256M,但你的显卡核心性能就在那,拆分的越多性能越弱,与其减小显存多开,不如多买几张卡。
例如:我要使用nvidia-524模型给101虚拟机分配4G显存,999虚拟机分配2G显存,那么我就这样写即可
nano命令编辑nano /etc/vgpu_unlock/profile_override.toml

# 自定义nvidia-524模型
[profile.nvidia-524]
num_displays = 1
display_width = 1920
display_height = 1080
max_pixels = 2073600
cuda_enabled = 1
frl_enabled = 0
vgpu_type = "NVS"
framebuffer = 939524096

[vm.101]
# 给101虚拟机设置4G显存
framebuffer = 4160749568

[vm.999]
# 给999虚拟机设置2G显存
framebuffer = 2013265920

Q3

Q4:6G显存的P106-100用1G显存的nvidia-524模型开了6台虚拟机,启动到第6台虚拟机发现无法启动是怎么回事?

A4:剩余显存不足1G,所以到第6台时就没法启动了,可以执行nvidia-smi查看剩余显存,通过改小第6台虚拟机显存大小再启动即可,或者把nvidia-524模型整体显存改小
以下是些换算好的显存值,有需要可以替换到profile_override.toml文件

# 设置768M显存
framebuffer = 671088640
# 设置512M显存
framebuffer = 402653184
# 设置384M显存
framebuffer = 268435456
# 设置256M显存
framebuffer = 134217728

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

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

Q6:我不想用GRID驱动,我就想用Geforce驱动和Quadro驱动,阁下该如何应对?

A6:“既见未来,为何不拜”,如果你是全通关的天命人那就跟着我按下面操作吧!
我们的Geforce消费卡和VGPU显卡的核心其实是一样,既然VGPU_Unlock可以将消费卡改写成VGPU的设备,那么再将VGPU的设备ID改回消费卡的Id或者专业卡的ID,不就能驱动Geforce驱动或者Quadro驱动了嘛,就不需要另外给驱动授权了嘛。试了,确实可行,但只能改为专业卡的ID,消费卡缺少专业卡的部分功能打了Geforce驱动会蓝屏死机。

以P106-100为例

先来查看显卡信息,在pve shell执行
其中GP106是核心代号,10de是制造商ID,1c07是设备ID

lspci -D -nnk | grep NVIDIA
# 输出以下信息,其中GP106是核心代号,10de是制造商ID,1c07是设备ID
0000:01:00.0 3D controller [0302]: NVIDIA Corporation GP106 [P106-100] [10de:1c07] (rev a1)

知道P106-100的核心代号是GP106,就去这个网站找devicehunt.com对应GP106专业卡的设备ID制造商ID就行,专业卡核心代号结尾都会带GL
devicehunt.com
编辑profile_override.toml文件新增2个参数pci_id = pci_device_id = 将Quadro P2200专业卡的设备ID:1C31制造商ID:10DE填入即可。
格式写法:
pci_id = 0x设备ID+制造商ID
pci_device_id = 0x设备ID

# 编辑profile_override.toml文件
nano /etc/vgpu_unlock/profile_override.toml
# 将这2个值填入profile_override.toml
pci_id = 0x1C3110DE
pci_device_id = 0x1C31

或者你也可以直接把Quadro P2200专业卡的设备ID:1C31制造商ID:10DE填到虚拟机配置文件进行加载也行,格式是:0x10DE/0x1C31
模拟成Quadro P2200专业卡
最后就是去Nvidia官网下载对应的Quadro驱动就好了,可以从VGPU版本提供的Guest GRID驱动版本去下载对应的Quadro驱动版本,如当前PVE用的VGPU17.0版本,grid驱动为551.61那么就去下载551.61版本的Quadro驱动或者更低版本只要没出现代码43错误就能用当然不是所有的消费卡都有对应的专业卡核心代号,找不到对应的专业卡可以尝试用其他专业卡核心代号尝试。或者老老实实的用GRID驱动。
Quadro驱动
补充:我安装了对应版本号的Quadro驱动或者更低版本它还是报43错误怎么办?
可以把PVE的控制台显示给关闭掉,然后在VGPU设备勾选主GPU再试。或者换个专业卡设备ID
显卡错误代码43

Q7:NVIDIA GRID驱动和NVIDIA QURDRO驱动我该怎么选择?

A7:论稳定性肯定是首选NVIDIA GRID驱动,GRID驱动本身就是为虚拟化场景定制的,在远程虚拟桌面,远程专业图形应用程序等场景更能充分发挥其性能。迫于驱动需要购买许可获取授权才不得已选择模拟专业卡换用QURDRO驱动。用QURDRO驱动也有一定好处,驱动不需要授权且更像一张真实的专业卡而不是一张VGPU显卡设备。

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

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

Q9:Ampere 架构的显卡要怎么开启VGPU,如A100/RTX A5000

A9:Ampere架构的显卡在PVE安装好VGPU驱动后,还需要开启VF才能使用VGPU,开启VF前你需要在BIOS打开SR-IOV功能,并且每个VF仅能选择一个Mdev类型
在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这类带显示接口的显卡,还需要切换无显示模式才能用,先切换再安装驱动。

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

找来个Window为例的图,将就看吧一样的操作

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

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

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

虚拟机部分

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下降的越严重,不要所有虚拟机都跑在一个硬盘,也不要在一台机器高负荷跑。强烈推荐用pcie4.0 x4速率的nvme硬盘,7000M/s的速率也就白菜价
3) 虚拟机网速不达标,跑不满。CPU瓶颈。网卡支持sriov的话可以做sriov拆分不占用CPU有一定改善。当然前提排除网线和路由交换机等问题,
4) 虚拟机显卡跑分低。CPU拉了后腿。显卡无法充分发挥其性能。当然前提是显卡散热良好,显存充足下。

Q3:克隆后的虚拟机机器码是不是都一样的?

A3:在PVE中克隆后的虚拟机,主板,硬盘,网卡mac都会生成新的uuid,以避免与原虚拟机冲突。并不会存在相同信息,具有唯一的标识。

Q4:我是做游戏工作室的,一台台部署环境是不是太浪费时间了?

A4:PVE是可以跟Windows一样预封装好,然后还原到其他机器的,学会这项技能,你就不需要一台台部署啦。有兴趣可以看我这篇文章



去虚拟化部分

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

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

Q2:去虚拟化一定要指定6.8.12-5-pve这个内核版本吗?

A2:不是的,上面提供的去虚拟化包是作者基于6.8.12-5-pve这个内核进行编译打包的,升级内核就会失效,因为kvm.ko模块和内核版本是绑定的,每一个版本的内核和模块的版本要一致才能使用,所以如果你要使用其他内核,可以到这里下载作者编译好的去虚拟化包pve反虚拟化检测玩游戏

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

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

优化好的虚拟机

这里提供一个已经帮大家优化好的Win10 22h2 x64位虚拟机还原包,有需要可以下载到PVE进行还原。还原包大小8.49 GB。网盘比较慢,用aria2下载工具下载

# 前往PVE备份目录
cd /var/lib/vz/dump/
# aria2 8线程下载到PVE的备份目录,下载完成后还原即可。
aria2c -s 8 -x 8 -j 10 'https://yun.yangwenqing.com/Proxmox/Windows/%E6%87%92%E4%BA%BA%E8%BF%98%E5%8E%9F%E5%8C%85/vzdump-qemu-999-2024_10_27_Windows10_22h2_x64.vma.zst'

相关文章参考

GitLab-NVIDIA VGPU 指南
佛西博客-在Proxmox VE 7.4 中开启NVIDIA P106显卡虚拟化(vGPU)
B站李晓流-pve反虚拟化检测玩游戏

最后修改:2025 年 03 月 15 日
如果觉得我的文章对你有用,请随意赞赏