pve7 pve8 kvmqemu反虚拟化检测显卡直通玩游戏教程小白直接安装+大神可以自己源码编译
qq群中反虚拟化(虚拟机)检测软件包更新情况:


在前面的文章中,我首次提了在pve8系统上kvm反虚拟化检测核显直通玩游戏。

今天我继续单独更新反虚拟化检测教程:小白如何直接使用➕大神怎么自己源码编译出这个包来。
本文适用于intel核显直通,amd核显直通,intel、amd、nvidia三家独显直通, vgpu不清楚会不会被检测到(我估计是可以支持的,我测了一堆virtIO设备都没问题,包括virtIO显卡,vgpu这个请网友自己试试哈,检测工具在qq群群共享中
第一部分:小白大神都请看,项目来源及如何使用
1、无意间发现一个作者的两个开源项目,可不看下面内容
https://github.com/zhaodice/proxmox-ve-anti-detection
https://github.com/zhaodice/qemu-anti-detection
这两个项目同一作者,作者演示这两项目可以通过下面一堆虚拟机检测,下图为项目作者提供,我这里直接贴图展示(这些检测工具热心网友发给我了,我上传qq群群共享了)。以及这个项目不是万能的说明。

2、作者编译的包有问题,没法用,可不看下面内容
他这两个项目都是反虚拟化检测的。但是呢我下载他的pve7和pve8编译好的包,安装和运行都有问题(缺无聊的依赖包,老是安装不起,运行不起),看了下作者的源码,他是对kvm做patch,patch的代码也不难。就是让kvm看起来更像真实机器(改掉一些爱被游戏检测的虚拟机关键字词)。作者的项目地址也有自编译详细教程。所以决定自己照着作者的详细介绍编译一个。
3.我折腾编译好的包如何安装和使用,必看内容
花好几天时间折腾,目前我编译出来了7.2.0-8、8.0.2-3、8.0.2-4、8.0.2-5这4个pve7和pve8下的包。
这4个包可以到qq群里面群共享那去下载。 基本没啥bug问题。有啥问题你可以群里 @李晓流 反馈
qq群号 25438194(PVE大大玩家群) 173541997(天钡WTR产品-技术交流群) 102166071(Proxmox 2群)

使用办法就是:
查看你目前使用的kvm版本(这里需要明确,你pve管理网页左上角看到的版本比如Virtual Environment 8.0.3这个和kvm包比如8.0.2-4版本是不一样的哈,这里你通过上面命令查询确认就是)然后如果是8.0.2-4运行类似下面命令就是
然后虚拟机里面再加这一串代码,这个你可以自己类比改动,不一定和我的一致。
这些参数也可以用源码作者的参数。有热心网友提供了检测软件,通过我这测试,-cpu host,hypervisor=off 这个是关键参数,即使不安装我编译的包(保持pve原生包),也能过一堆检测(只有se检测过不了,要过se检测就得安装我编译的包),其他剩下的参数比如smbios就是图个心理安慰。hypervisor=on会给windows明说我是虚拟机。

4、测试结果详细展示,可不看下面内容
4.1下面两张图是pve自带包和安装反虚拟化包成功后分别的效果


4.2下图是我在pve7下更加详细的测试结果展示如下
4.2.1虚拟机配置硬件如下

4.2.2虚拟机里面设备显示如下

4.2.3虚拟机里面虚拟机检测工具结果如下


1、首先知道下源码项目作者打补丁太猛,scsi等virtIO设备存在无法工作bug,下面文字讲解了解下就是,可不看下面内容
源码项目作者打补丁太猛,对pci.h文件 里面所有redhat virtIO设备都强制改成了8086(intel),bug就是如果你原先pve里面有虚拟机使用了virtIO等设备都用不起(比如scsi virtIO网卡,rng等等设备。用不起的原因:比如scsi是通过检测厂商id+设备id后进行驱动安装,你改了后,ovmf就不认识这块硬盘了,virtIO驱动也不认识也打不上驱动了,最后症状就是不认盘。网卡等其他设备也是一样。要想virtIO设备反虚拟化检测去掉得干干净净,那只有kvm+ovmf+virtIO驱动这三个源码一起改,这样太折腾了!)。不能因为反虚拟化检测把其他虚拟机也搞废了哈(比如你的ikuai,你的ubuntu,你的centos等等)。结论就是为了兼容性这个文件就最好不要打补丁。我后面的sed补丁中就没对这个文件处理。建议游戏的反虚拟化检测配置就是:sata硬盘,e1000网卡,但是推荐还是尽量不沾边virtIO设备(虽然我也用虚拟机检测工具试了scsi硬盘也检测不了,其他virtIO设备也检测不了)。
2、编译环境准备
最好是在pve8环境中编译,而不用ubuntu等。你可以pve8里面再装个单独的pve8虚拟机来只做编译事情。pve7 的包最好在7上编译,8上会有报错无法解决
3、处理下git访问github 太慢问题(经常网速慢、断流打不开),后面下载更加网速快,可不看下面内容
复制进去下面内容,大概意思用ghproxy对github进行代理加速,尽快检测git网速慢问题,boringssl不用google的用github替代。git.proxmox.com这个网速也慢啊等啊等啊等,目前没找到可以代理加速的办法得。题外话:如果有个在线网页代理可以直接看github网页的就更好了。
4、根据源码作者项目介绍先正常自编译成功pve-qemu-kvm包
https://github.com/zhaodice/proxmox-ve-anti-detection中有详细介绍,这里我们直接采用以下代码编译
首先更新下软件库(pve如何换国内源请看其他教程),到pve源码库去克隆pve-qemu下来
如果你要编译最新包就不要执行这个操作,如果你要编译旧版本,比如8.0.2-3就要去https://git.proxmox.com/?p=pve-qemu.git;a=summary 查8.0.2-3的commit是多少,查了下是409db0cd7bdc833e4a09d39492b319426029aa92
这个操作意思是强制切换到8.0.2-3这个版本


然后安装依赖包,编译,这里要说明下,具体缺什么依赖,你要有耐心看报错一个个安装好,如果apt install 安装遇到问题就换成aptitude install 来进行安装(解决包之间的依赖问题)
这里面安装依赖包是最烦的。我试了下,其他确的包都可以apt install安装。可能
aptitude install librbd-dev 这个包需要aptitude 选择安装方案旧版本来安装。
如果老是编译失败,cd qemu目录更新下它内部的子模块
git submodule update --init --recursive
除了缺依赖包问题,有时候就是qemu的子模块没有下载齐全导致编译包老是编译不好。
耐心一点,就是通过下面5个命令反复执行解决依赖:
make
qemu目录下单独执行 git submodule update --init --recursive
mk-build-deps --install
apt install XXX包
aptitude install XXX包
反复执行哈!!直到不报错为止!!!
如果一切顺利(都会曲折的),你会顺利编译出来pve-qemu-kvm_xxx_amd64.deb 这个包。
恭喜你,成功一半了!
5、打sed补丁,自编译反虚拟机检测的pve-qemu-kvm包
5.1 先确认你目前shell在pve-qemu目录,如果没有cd pve-qemu 一下
5.2 先把编译的包和各种二进制代码清理一下清理干净!
5.3 把qemu文件夹先备份一下,免得出错了无法使用,后面好拿qemu-bak目录来补救使用
5.4 进入qemu目录
5.5 编辑新建一个sed文件
5.6 把下面里面的代码全部贴进去保存一下,目前只支持7.0到8.1。8.2等没弄
5.7 补丁加执行权限
5.8 运行一次这个sed补丁
这个补丁是通用的,不管kvm是7还是8版本都支持,可以免除kvm每一个小版本都写一个patch(patch有时候比较死板,只能特定的版本才能打成功,用sed方便但是成功与否没法直观判断,两者各有优缺点!我这里写的sed参考了源码作者kvm7 kvm8.0 kvm8.1他patch kvm的方式和每一个地方,写的通用处理办法,支持性更加方便快速。可以通过批量sed一下,然后用git工具生成每一个小版本kvm的patch文件来(这个留给大家去玩去弄,我玩不来patch,sed处理重复性操作还是比较方便的))
你会看到输出如下
看到这些代表sed完成了所有工作了
5.9 返回pve-qemu目录再次make
5.10 成功编译出来反虚拟检测的包
成功编译出来包以后,你就可以复制他到你真实pve上强制安装使用了
如果你想改个名字,把包重命名加anti-dection就是了
安装上后使用,你只需要判断光驱是不是asus的就知道是否成功了。

如果使用中有问题,请qq群反馈!群里@李晓流
如果你想还原或者是遇到问题还原
你可以到清华源去直接下载官方包并强制安装
pve8:
https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/dists/bookworm/pve-no-subscription/binary-amd64/

pve7:
https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/

第三部分:贴一些最后效果图大家看一下效果,本部分小白大神都可以不看。






12700 20核我全部直通进去,cpu-z跑分单核757.9->666.6大概能达到87.95%,多核8654.7->8071.7大概能达到93.26%。
核显性能达到多少百分比没测!你可以试试!
cpu的性能在pve下还是不错的!
最后,折腾愉快!感谢源码作者的贡献,希望持续更新!
另外有个小惊喜,源码作者也被拉进qq群里了!