pve7 pve8 kvmqemu反虛擬化檢測顯卡直通玩游戲教程小白直接安裝+大神可以自己源碼編譯
qq群中反虛擬化(虛擬機)檢測軟件包更新情況:


在前面的文章中,我首次提了在pve8系統(tǒng)上kvm反虛擬化檢測核顯直通玩游戲。

今天我繼續(xù)單獨更新反虛擬化檢測教程:小白如何直接使用?大神怎么自己源碼編譯出這個包來。
本文適用于intel核顯直通,amd核顯直通,intel、amd、nvidia三家獨顯直通,?vgpu不清楚會不會被檢測到(我估計是可以支持的,我測了一堆virtIO設(shè)備都沒問題,包括virtIO顯卡,vgpu這個請網(wǎng)友自己試試哈,檢測工具在qq群群共享中
第一部分:小白大神都請看,項目來源及如何使用
1、無意間發(fā)現(xiàn)一個作者的兩個開源項目,可不看下面內(nèi)容
https://github.com/zhaodice/proxmox-ve-anti-detection
https://github.com/zhaodice/qemu-anti-detection
這兩個項目同一作者,作者演示這兩項目可以通過下面一堆虛擬機檢測,下圖為項目作者提供,我這里直接貼圖展示(這些檢測工具熱心網(wǎng)友發(fā)給我了,我上傳qq群群共享了)。以及這個項目不是萬能的說明。

2、作者編譯的包有問題,沒法用,可不看下面內(nèi)容
他這兩個項目都是反虛擬化檢測的。但是呢我下載他的pve7和pve8編譯好的包,安裝和運行都有問題(缺無聊的依賴包,老是安裝不起,運行不起),看了下作者的源碼,他是對kvm做patch,patch的代碼也不難。就是讓kvm看起來更像真實機器(改掉一些愛被游戲檢測的虛擬機關(guān)鍵字詞)。作者的項目地址也有自編譯詳細(xì)教程。所以決定自己照著作者的詳細(xì)介紹編譯一個。
3.我折騰編譯好的包如何安裝和使用,必看內(nèi)容
花好幾天時間折騰,目前我編譯出來了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產(chǎn)品-技術(shù)交流群)?102166071(Proxmox 2群)

使用辦法就是:
查看你目前使用的kvm版本(這里需要明確,你pve管理網(wǎng)頁左上角看到的版本比如Virtual Environment 8.0.3這個和kvm包比如8.0.2-4版本是不一樣的哈,這里你通過上面命令查詢確認(rèn)就是)然后如果是8.0.2-4運行類似下面命令就是
然后虛擬機里面再加這一串代碼,這個你可以自己類比改動,不一定和我的一致。
?這些參數(shù)也可以用源碼作者的參數(shù)。有熱心網(wǎng)友提供了檢測軟件,通過我這測試,-cpu host,hypervisor=off 這個是關(guān)鍵參數(shù),即使不安裝我編譯的包(保持pve原生包),也能過一堆檢測(只有se檢測過不了,要過se檢測就得安裝我編譯的包),其他剩下的參數(shù)比如smbios就是圖個心理安慰。hypervisor=on會給windows明說我是虛擬機。

4、測試結(jié)果詳細(xì)展示,可不看下面內(nèi)容
4.1下面兩張圖是pve自帶包和安裝反虛擬化包成功后分別的效果


4.2下圖是我在pve7下更加詳細(xì)的測試結(jié)果展示如下
4.2.1虛擬機配置硬件如下

4.2.2虛擬機里面設(shè)備顯示如下

4.2.3虛擬機里面虛擬機檢測工具結(jié)果如下


1、首先知道下源碼項目作者打補丁太猛,scsi等virtIO設(shè)備存在無法工作bug,下面文字講解了解下就是,可不看下面內(nèi)容
源碼項目作者打補丁太猛,對pci.h文件 里面所有redhat virtIO設(shè)備都強制改成了8086(intel),bug就是如果你原先pve里面有虛擬機使用了virtIO等設(shè)備都用不起(比如scsi?virtIO網(wǎng)卡,rng等等設(shè)備。用不起的原因:比如scsi是通過檢測廠商id+設(shè)備id后進行驅(qū)動安裝,你改了后,ovmf就不認(rèn)識這塊硬盤了,virtIO驅(qū)動也不認(rèn)識也打不上驅(qū)動了,最后癥狀就是不認(rèn)盤。網(wǎng)卡等其他設(shè)備也是一樣。要想virtIO設(shè)備反虛擬化檢測去掉得干干凈凈,那只有kvm+ovmf+virtIO驅(qū)動這三個源碼一起改,這樣太折騰了?。?。不能因為反虛擬化檢測把其他虛擬機也搞廢了哈(比如你的ikuai,你的ubuntu,你的centos等等)。結(jié)論就是為了兼容性這個文件就最好不要打補丁。我后面的sed補丁中就沒對這個文件處理。建議游戲的反虛擬化檢測配置就是:sata硬盤,e1000網(wǎng)卡,但是推薦還是盡量不沾邊virtIO設(shè)備(雖然我也用虛擬機檢測工具試了scsi硬盤也檢測不了,其他virtIO設(shè)備也檢測不了)。
2、編譯環(huán)境準(zhǔn)備
最好是在pve8環(huán)境中編譯,而不用ubuntu等。你可以pve8里面再裝個單獨的pve8虛擬機來只做編譯事情。pve7 的包最好在7上編譯,8上會有報錯無法解決
3、處理下git訪問github?太慢問題(經(jīng)常網(wǎng)速慢、斷流打不開),后面下載更加網(wǎng)速快,可不看下面內(nèi)容
復(fù)制進去下面內(nèi)容,大概意思用ghproxy對github進行代理加速,盡快檢測git網(wǎng)速慢問題,boringssl不用google的用github替代。git.proxmox.com這個網(wǎng)速也慢啊等啊等啊等,目前沒找到可以代理加速的辦法得。題外話:如果有個在線網(wǎng)頁代理可以直接看github網(wǎng)頁的就更好了。
4、根據(jù)源碼作者項目介紹先正常自編譯成功pve-qemu-kvm包
https://github.com/zhaodice/proxmox-ve-anti-detection中有詳細(xì)介紹,這里我們直接采用以下代碼編譯
首先更新下軟件庫(pve如何換國內(nèi)源請看其他教程),到pve源碼庫去克隆pve-qemu下來
如果你要編譯最新包就不要執(zhí)行這個操作,如果你要編譯舊版本,比如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安裝??赡?/p>
aptitude install librbd-dev 這個包需要aptitude 選擇安裝方案舊版本來安裝。
如果老是編譯失敗,cd qemu目錄更新下它內(nèi)部的子模塊
git submodule update --init --recursive
除了缺依賴包問題,有時候就是qemu的子模塊沒有下載齊全導(dǎo)致編譯包老是編譯不好。
耐心一點,就是通過下面5個命令反復(fù)執(zhí)行解決依賴:
make
qemu目錄下單獨執(zhí)行 git submodule update --init --recursive
mk-build-deps --install
apt install XXX包
aptitude install XXX包
反復(fù)執(zhí)行哈?。≈钡讲粓箦e為止?。?!
如果一切順利(都會曲折的),你會順利編譯出來pve-qemu-kvm_xxx_amd64.deb 這個包。
恭喜你,成功一半了!
5、打sed補丁,自編譯反虛擬機檢測的pve-qemu-kvm包
5.1 先確認(rèn)你目前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?補丁加執(zhí)行權(quán)限
5.8?運行一次這個sed補丁
這個補丁是通用的,不管kvm是7還是8版本都支持,可以免除kvm每一個小版本都寫一個patch(patch有時候比較死板,只能特定的版本才能打成功,用sed方便但是成功與否沒法直觀判斷,兩者各有優(yōu)缺點!我這里寫的sed參考了源碼作者kvm7 kvm8.0 kvm8.1他patch kvm的方式和每一個地方,寫的通用處理辦法,支持性更加方便快速。可以通過批量sed一下,然后用git工具生成每一個小版本kvm的patch文件來(這個留給大家去玩去弄,我玩不來patch,sed處理重復(fù)性操作還是比較方便的))
你會看到輸出如下
看到這些代表sed完成了所有工作了
5.9?返回pve-qemu目錄再次make
5.10 成功編譯出來反虛擬檢測的包
成功編譯出來包以后,你就可以復(fù)制他到你真實pve上強制安裝使用了
如果你想改個名字,把包重命名加anti-dection就是了
安裝上后使用,你只需要判斷光驅(qū)是不是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下還是不錯的!
最后,折騰愉快!感謝源碼作者的貢獻,希望持續(xù)更新!
另外有個小驚喜,源碼作者也被拉進qq群里了!