【全球首發(fā)】VMware ESXi 系列黑蘋(píng)果安裝優(yōu)化教程

本文首發(fā)于我的博客:https://www.sqlsec.com/2023/04/esxi.html
因?yàn)樽罱鼊倓傁肫饋?lái) B 站密碼,所以來(lái)刷一下存在感,證明我還在。
本文理論上是全球首發(fā)了,因?yàn)楣雀璐_實(shí)沒(méi)有搜索到有人 ESXi 黑蘋(píng)果直通 A 卡成功的案例,而且也沒(méi)有看到有人使用 OpenCore 來(lái)引導(dǎo) ESXi 虛擬的。大多數(shù)都是 N 卡直通黑蘋(píng)果成功的,但是 N 卡從 macOS 10.14 系統(tǒng)開(kāi)始基本上就是殘廢的狀態(tài),所以本文直通 A 卡成功以及使用 OC 引導(dǎo)虛擬機(jī)的姿勢(shì)對(duì)全球黑蘋(píng)果和虛擬化玩家來(lái)說(shuō)還是有一定意義的,理論上來(lái)說(shuō) ESXi 系列都是可以成功的,這個(gè)得需要網(wǎng)友們自己去嘗試看看了。
準(zhǔn)備工作
ESXi 系列的安裝鏡像
目前 ESXi 原生 8.x 的鏡像無(wú)法 macOS Unlocker 無(wú)解
如果不 macOS Unlocker 一下的話,開(kāi)啟 macOS 虛擬機(jī)會(huì)無(wú)限重啟
目前網(wǎng)上主流辦法是從 ESXi 7.X 鏡像提取蘋(píng)果虛擬機(jī)部分重新封裝到新的 8.X 鏡像中
或者直接下載網(wǎng)上的 ESXi 7.X 鏡像用其實(shí)也不錯(cuò),也可以黑蘋(píng)果,穩(wěn)定性還高
macOS 的安裝鏡像
dmg 鏡像需要轉(zhuǎn)換成標(biāo)準(zhǔn)的 img 鏡像,這樣才可以被 ESXi 引導(dǎo)啟動(dòng)
免費(fèi)方法:手動(dòng)去看蘋(píng)果官網(wǎng)文檔,制作自己的 iSO 文件
免驅(qū)的 AMD 獨(dú)顯 1 個(gè):RX 4X0、RX 5X0、RX 5X00、RX 6X00 等
主板 BIOS 建議開(kāi)啟如下設(shè)置:
開(kāi)啟?Intel VMX 虛擬化技術(shù)(PCIe 硬件件直通必須)
開(kāi)啟?VT-d (PCIe 硬件直通必須)
開(kāi)啟?SR-IOV 虛擬化技術(shù) (高效先進(jìn)的虛擬技術(shù))
開(kāi)啟?Above 4G Decoding(如果玩 vGPU 方案需要開(kāi)啟這個(gè)選項(xiàng))
開(kāi)啟?Numa (多路 CPU 建議開(kāi)啟,提高多路 CPU 運(yùn)行效率,合理分配負(fù)載)
開(kāi)啟?x2APIC(PCIe 硬件直通需要)
安裝 ESXi
首先使用 Windows 下經(jīng)典的 Rufus 制作一下 ESXi 啟動(dòng)盤(pán)

然后 ESXi 沒(méi)啥可說(shuō)的,谷歌一下,你就知道,本文重點(diǎn)的 ESXi 下的黑蘋(píng)果,不能主次顛倒了。
很快啊,就安裝好了,ESXi 8 的登錄界面變了不少,符合現(xiàn)在的審美:

里面的界面布局感覺(jué)是沒(méi)啥變化的:

安裝 macOS
上傳鏡像
我們玩黑蘋(píng)果的基本上都是搞的 dmg 鏡像,自行轉(zhuǎn)換成 img 鏡像后上傳到 ESXi 的存儲(chǔ)空間里面去:

創(chuàng)建虛機(jī)
因?yàn)槟壳?esxi unlocker 項(xiàng)目還不完全支持 ESXi 8,所以這里虛擬機(jī)的兼容性設(shè)置成 ESXi 7.0 U2:

macOS 版本選擇 macOS 12,時(shí)間上我們使用 macOS 12 安裝 macOS 13 Ventura 也是完全 OK 的。
硬件這里設(shè)置 8 核 16GB,為了方便后面直接直通顯卡,我們這里需要勾選一下「預(yù)留所有客戶機(jī)內(nèi)存」選項(xiàng):

為了更好的網(wǎng)絡(luò)性能,網(wǎng)卡設(shè)置成 VMXNET3 萬(wàn)兆類(lèi)型,然后手動(dòng)選擇我們之前上傳好的 iso 鏡像文件:

系統(tǒng)安裝
macOS 系統(tǒng)安裝對(duì)于玩過(guò)黑蘋(píng)果的用戶來(lái)說(shuō)很簡(jiǎn)單了,如果你沒(méi)有黑蘋(píng)果基礎(chǔ)的話,關(guān)于 macOS 安裝部分可以網(wǎng)上搜索我我的黑蘋(píng)果專(zhuān)題文章:黑蘋(píng)果系統(tǒng)安裝 - 國(guó)光的 PVE 環(huán)境搭建教程:

ESXi 方便就方便在還可以使用 Vmware Workstation 連接管理:

很快我們系統(tǒng)就安裝好了:

安裝 Vmware Tools
剛剛安裝好的話,顯存只有 3MB,雖然后面我們會(huì)直通獨(dú)顯,但是安裝一下 Vmware Tools 總比沒(méi)有安裝的好。我們?nèi)绻謩?dòng)安裝 Vmware Tools 的話,多半還是會(huì)提示我們:

我們?nèi)ス俜较螺d頁(yè)面下載一個(gè) darwin.iso 即可:

手動(dòng)安裝一下,根據(jù)提示引導(dǎo)一個(gè)個(gè)點(diǎn)擊允許擴(kuò)展即可:

安裝好之后顯存就是 128MB 了,而且 Vmware Workstation 去連接的話也會(huì)自適應(yīng)窗口調(diào)整分辨率的大?。?/p>

直通 USB
首先在「管理」-「硬件」-「PCI 設(shè)備」-「搜索 USB」將我們的 USB Controller 切換直通,使其處在活動(dòng)狀態(tài):

直通 USB 控制器
這樣我們可以簡(jiǎn)單一點(diǎn),以直通 PCI 的形式,直接將 USB 控制器添加到 VM 虛擬機(jī)中:

這種確實(shí)是簡(jiǎn)單高效的,仔細(xì)想一下,我們需要直通 USB 的 VM 沒(méi)有這么多,最多也就是 Windows 打游戲和 macOS 黑蘋(píng)果辦公,恰好我這邊正好有兩個(gè) USB Controller,每個(gè) VM 占用一個(gè)也是個(gè)很不錯(cuò)的方案。
直通部分 USB 設(shè)備
其實(shí)通過(guò)上述一番操作之后,虛擬機(jī)系統(tǒng)也可以來(lái)識(shí)別一些 USB 設(shè)備信息,我們選擇添加 USB 設(shè)備即可直通:

但是這些設(shè)備并不是很齊全,比如這里就確實(shí)了鍵盤(pán)和鼠標(biāo)的 USB 信息。
直通任意 USB 設(shè)備
首先 ESXi 開(kāi)啟服務(wù)模式,SSH 進(jìn)入 ESXi 的 shell 環(huán)境,使用
查看列出目前 ESXi 宿主機(jī)的 USB 設(shè)備信息:

將上述需要直通的 USB 信息整理出下面的表格:

以 下面
的格式,添加到 /etc/vmware/config 文件后面
根據(jù)我的情況文件末尾添加如下內(nèi)容:

繼續(xù)編輯 /bootbank/boot.cfg 啟動(dòng)引導(dǎo)文件,禁用掉 VMkernel 對(duì)上述設(shè)備獲取控制權(quán):
在?kernelopt
?參數(shù)后面添加如下格式:
最終國(guó)光我編輯的內(nèi)容如下:

操作完成后,重啟 ESXi 宿主機(jī),然后我們就可以通過(guò)編輯虛擬機(jī)設(shè)置來(lái)靈活地添加 USB 鍵鼠設(shè)備了:

直通后我們就可以使用鍵盤(pán)和鼠標(biāo)操作我們的黑蘋(píng)果虛擬機(jī)了,進(jìn)系統(tǒng)也發(fā)現(xiàn)可以正常識(shí)別了我們的 USB 設(shè)備:

直通網(wǎng)卡
因?yàn)?WiFi 無(wú)線網(wǎng)卡本身是走 PCIe 接口傳輸數(shù)據(jù)的,所以這里直通就很簡(jiǎn)單了,切換網(wǎng)口的直通狀態(tài),然后直通對(duì)應(yīng)的 PCI 設(shè)備即可:

因?yàn)橹蓖嗣怛?qū)無(wú)線網(wǎng)卡的 WiFi 和藍(lán)牙,所以理所應(yīng)當(dāng)?shù)奈覀兛梢哉J褂?macOS 原生的隔空投送和接力功能:

直通獨(dú)顯
補(bǔ)充一下,N 卡直通會(huì)比較簡(jiǎn)單,沒(méi)那么曲折,但是眾所周知 N 卡在 macOS 系統(tǒng)上基本上是半殘廢的狀態(tài),要想很棒的黑蘋(píng)果體驗(yàn),還是得準(zhǔn)備一個(gè) AMD 免驅(qū)獨(dú)顯才可以。
下面說(shuō)到重頭戲了,就是直通 AMD 免驅(qū)獨(dú)顯,本次使用的 RX 570 公版渦輪顯卡來(lái)進(jìn)行演示,實(shí)際上好友 darkless 他使用的是 RX 6600 也是成功直通使用的,而且不像黑蘋(píng)果物理主機(jī)一下需要添加防黑蘋(píng)果參數(shù),這一點(diǎn)還是有點(diǎn)小意外的,話不多說(shuō),開(kāi)始正式教程。
切換直通狀態(tài)

直通 PCI 顯卡
直通一下顯卡相關(guān)的設(shè)備,一般就是顯卡本身以及 HDMI 音頻,部分帶 Type-C 的顯卡可能還需直通一下 Type-C 部分:

實(shí)際問(wèn)題情況
顯示器黑屏沒(méi)有反應(yīng),但是系統(tǒng)報(bào)告信息里面已經(jīng)識(shí)別到了 A 卡了,可惜就是無(wú)法驅(qū)動(dòng):

正確直通姿勢(shì)
可以看到上一步我們的操作 AMD 的獨(dú)顯肯定是直通成功了的,否則也不會(huì)在系統(tǒng)報(bào)告里面看到我們的獨(dú)顯了,但是理論上我們的 A 卡肯定都是免驅(qū)的,那么這是為什么呢?
不鋪墊了,直接在虛擬機(jī)的高級(jí)選項(xiàng)里面添加如下兩個(gè)變量即可:

其中?0
?指的是直通獨(dú)顯的 PCie 位置索引,懂編程的都明白,計(jì)算機(jī)的索引都是從?0
?開(kāi)始,所以這里寫(xiě)?0

以上一番操作過(guò)后,順利的話大概率是成功的,下面是直通的一些 Tips 具體還得大家自己去實(shí)踐總結(jié):
ESXi 下黑蘋(píng)果的 AMD 5000 和 6000 系列顯卡可能無(wú)需 Whatevergreen.kexts 的放黑屏參數(shù)也可正常顯示
開(kāi)機(jī)沒(méi)有蘋(píng)果 logo,但是出現(xiàn)進(jìn)度條的話,大概率是成功的,耐心等待即可
如果直通顯示失敗,不妨 ESXi 開(kāi)機(jī)前拔掉 A 卡的顯示器連接線,ESXi 開(kāi)機(jī)成功后再插上顯示器線
ROM 可以從 VBIOS 網(wǎng)上下載,當(dāng)然最好是 Windows 下手動(dòng)使用 GPU-Z 提取最穩(wěn)
顯卡直通 HiDPi 或者顯示顏色不正常的話,不妨拔插一下顯示器連接線
確定直通成功后,將?
svga.present
?參數(shù)改為 FALSE,即可關(guān)閉內(nèi)置的虛擬顯示器
直通效果
無(wú)論是自己嘗試,還是知識(shí)付費(fèi)嘗試都需要經(jīng)歷一番操作的,無(wú)非是知識(shí)付費(fèi)走的彎路要少一點(diǎn),但還是需要人力成本去解決問(wèn)題,最終我們的 ESXi 成功直通了 AMD 顯卡以及免驅(qū)的 BCM 博通無(wú)線網(wǎng)卡,以及直通了 USB 任意設(shè)備,最終我們的 ESXi 黑蘋(píng)果基本上完美了,其實(shí)也足夠單刃生產(chǎn)力工具了?。。?/code>
系統(tǒng)只是工具,我們要學(xué)會(huì)使用系統(tǒng)去創(chuàng)造價(jià)值,而不是沉迷如何安裝系統(tǒng)上,這句話也送給大家。
最后來(lái)看看我們這個(gè) ESXi 的直通效果怎么樣吧:

系統(tǒng)信息
Vmware7,1 機(jī)型,系統(tǒng)報(bào)告里面可以明顯看出這是一個(gè)虛擬機(jī):

顯卡信息
AMD RX 570 驅(qū)動(dòng)正常,DP 接口正常帶動(dòng) 4K 120Hz 屏幕,且 HiDPi 原生識(shí)別正常:

網(wǎng)卡速率
ESXi 下使用網(wǎng)絡(luò)類(lèi)型默認(rèn) macOS 下免驅(qū),這 10G 網(wǎng)卡可以妥妥的萬(wàn)兆網(wǎng)卡速率哦:

硬盤(pán)相關(guān)
ESXi 下的虛擬硬盤(pán)在 macOS 下識(shí)別為 SATA 類(lèi)型,使用「厚置備,延遲置零」的情況下,手上這個(gè) S500 Pro 1TB 速度測(cè)試都挺正常的,和直通的效果差不多:

軟件測(cè)試
QQ 也可以正常打開(kāi),這一點(diǎn)要單獨(dú)提一下,PVE 黑蘋(píng)果使用 Virto 是打不開(kāi) QQ 和一些軟件的,只能切換 SATA 類(lèi)型硬盤(pán)使用,但是 4k 讀寫(xiě)會(huì)變得巨慢,體驗(yàn)不好;ESXi 下黑蘋(píng)果默認(rèn)就是 SATA 硬盤(pán),所以軟件沒(méi)遇到啥兼容性問(wèn)題,且讀寫(xiě)速度和真實(shí)的硬盤(pán)速度差不多,沒(méi)啥損耗。

無(wú)線藍(lán)牙
無(wú)線和藍(lán)牙均正常使用:

隔空投送
隔空投送正常發(fā)送和接受文件:

Hackintool
三碼序列號(hào)追求完美的話需要想辦法重新定制一下,導(dǎo)致 VDA 解碼失敗,這里挖個(gè)坑,國(guó)光我后面使用 OC 引導(dǎo)會(huì)解決這個(gè)問(wèn)題的:

這里可以看到基本上設(shè)備都正常識(shí)別和驅(qū)動(dòng)的:

不過(guò)這里 USB 驅(qū)動(dòng)方式可能是 Vmware 自己定制的,Hackintool 雖然識(shí)別不到 USB,但是 macOS 系統(tǒng)報(bào)告里面可以正常識(shí)別:

Sensei
Sensei 也正常打開(kāi)使用,我記得 PVE 下好像這塊是也有點(diǎn)問(wèn)題的:

傳感器
因?yàn)檫@是虛擬機(jī),所以除了顯卡,其他是沒(méi)有傳感器的,但是比較有意思的騰訊檸檬居然可以顯示這個(gè)溫度信息,不過(guò)這可能是假的信息,一直不會(huì)動(dòng):

睡眠喚醒
虛擬機(jī)下討論睡眠喚醒的意義好像不大,因?yàn)樗拗鳈C(jī)一直得開(kāi)機(jī),不過(guò)讓人驚訝的是,這個(gè) ESXi 黑蘋(píng)果是支持睡眠喚醒的,晃晃鼠標(biāo)即可喚醒睡眠狀態(tài)下的黑蘋(píng)果虛擬機(jī)。
睡眠的瞬間硬盤(pán)會(huì)讀寫(xiě)存放數(shù)據(jù),此時(shí) CPU 使用 ESXi 下看可以看到還是以低頻工作,不過(guò)此時(shí)顯示器和鼠標(biāo)都是熄燈的,確實(shí)和真的睡眠一樣,且可以正常被晃鼠標(biāo)或者敲鍵盤(pán)喚醒:

ToDoList
?自定義 CPU 型號(hào),解決系統(tǒng)未知問(wèn)題? ? 【完成】
?注入白果三碼信息,更接近白蘋(píng)果體驗(yàn)? ?【完成】
?研究一下 ESXi 使用 OpenCore 的可能性【完成】
?深度測(cè)試一下 ESXi 的日常性能表現(xiàn)? ? ? ? 【完成】
?單獨(dú)做一期視頻記錄分享一下? ? ? ? ? ? ? ? ?【大概率咕咕咕】
最終更新
通過(guò)上述的效果,我們總結(jié)幾個(gè)目前黑蘋(píng)果不完美的地方和缺點(diǎn):
序列號(hào)和機(jī)型無(wú)效,導(dǎo)致解碼顯示異常
ESXi 引導(dǎo)只能保證大多數(shù)人的黑蘋(píng)果體驗(yàn),如果你有很多需要黑蘋(píng)果下額外驅(qū)動(dòng)的硬件就很蛋疼了
其實(shí)以上問(wèn)題如果使用 OpenCore 引導(dǎo)的話都不是問(wèn)題,那么 ESXi 能否使用 OpenCore 引導(dǎo)呢?回答是:可以!下面讓國(guó)光我緩緩道來(lái)。
小試牛刀
使用下文分享的 OpenCore EFI 引導(dǎo),使用 OCC 編輯器添加到 EFI 引導(dǎo)分區(qū)下,然后勾選「強(qiáng)制執(zhí)行 BIOS 設(shè)置」:

然后手選擇 OC 引導(dǎo):
「BIOS 首頁(yè)」 - 「Enter Setup」-「Boot from a file」-「找到 EFI 分區(qū)選擇 BOOT/BOOTx64.efi」即可成功加載 OC 的引導(dǎo):

然后也順利開(kāi)機(jī),OC 引導(dǎo)成功,機(jī)型和三碼都被我們成功修正了,CPU 型號(hào)也正常識(shí)別了:

Bingo! 這樣子應(yīng)該又是全球首發(fā)了吧,順便慶祝我的專(zhuān)項(xiàng)「黑蘋(píng)果教程」關(guān)鍵詞登上谷歌中文第一:

引導(dǎo)順序
手動(dòng)進(jìn) Vmware 虛擬機(jī)的 BIOS 里面添加我們的 OC 引導(dǎo),然后將其設(shè)置為第 1 啟動(dòng):

即可正常通過(guò)我們的 OC 引導(dǎo) macOS 系統(tǒng)了。
EFI 分享
其實(shí) Vmware 下的 OpenCore 并不難,因?yàn)?Vmware ESXi 的環(huán)境基本上就是完美的,我們使用 OC 只是簡(jiǎn)單修正一下即可。
下面就分享一下國(guó)光我使用本機(jī)的虛擬環(huán)境定制的 ESXi OpenCore EFI,分享給網(wǎng)友們參考:
EFI 開(kāi)源項(xiàng)目地址:https://github.com/sqlsec/Vmware-ESXi-OpenCore
主要優(yōu)化了如下內(nèi)容:
添加 OC 引導(dǎo)主題,倒計(jì)時(shí) 5 秒默認(rèn)進(jìn)入系統(tǒng)(其實(shí)單系統(tǒng) 甚至都可以不開(kāi)引導(dǎo)菜單)
使用 OC 注入了正確的機(jī)型,注入了正確的序列號(hào)
修正了 MacPro 7,1 機(jī)型的內(nèi)存告警問(wèn)題
其他加入了 Whatevergreen.kexts 讓獨(dú)顯驅(qū)動(dòng)更完美等零零散散的優(yōu)化
最終效果
macOS 13 的主要更新就是這個(gè)臺(tái)前調(diào)度了:

顯示器正常點(diǎn)亮,因?yàn)槭?4K 顯示器 HiDPi 默認(rèn)開(kāi)啟:

MacPro 工作站機(jī)型的內(nèi)存需要自己定制一下,解決了內(nèi)存告警問(wèn)題,EFI 里面已經(jīng)定制好了,網(wǎng)友們也可以根據(jù)自己的事情情況修改一下:

最后貼一個(gè)最終效果圖吧,總之目前體驗(yàn)下來(lái)和物理黑蘋(píng)果沒(méi)啥區(qū)別,Apple ID 也正常登錄,隔空投送呀、WiFi 藍(lán)牙都正常使,總之就是這么絲滑:

支持一下
本文可能實(shí)際上也沒(méi)有啥技術(shù)含量,但是寫(xiě)起來(lái)還是比較浪費(fèi)時(shí)間的,在這個(gè)喧囂浮躁的時(shí)代,個(gè)人原創(chuàng)博客越來(lái)越?jīng)]有人看了,寫(xiě)博客感覺(jué)一直是用愛(ài)發(fā)電的狀態(tài)。如果你恰巧財(cái)力雄厚,感覺(jué)本文對(duì)你有所幫助的話,可以考慮打賞一下本文,用以維持高昂的服務(wù)器運(yùn)營(yíng)費(fèi)用(域名費(fèi)用、服務(wù)器費(fèi)用、CDN 費(fèi)用等)

沒(méi)想到文章加入打賞列表沒(méi)幾天 就有熱心網(wǎng)友打賞了 于是國(guó)光我用 Bootstrap 重寫(xiě)了一個(gè)頁(yè)面 用以感謝 支持我的朋友,詳情請(qǐng)看?https://www.sqlsec.com/reward/