連續好幾天都在搞這個東東,搞到都要懷疑人生了。這個問題從一開始安裝時就遇到很多坎,解決一個又有一個,一個完又一個,容我慢慢道來。
01. 無法下載 ISO 或 ZIP (客製化用)
我的工作環境總共有 2 個不同網路可以使用,不管是哪一個網路按下載檔案,網站都是無聲無息!打開 Chrome 開發者工具觀察,發現問題是出在 Javascript 的某個變數找不到,實在不太可能為了它去 debug 該網站,只好假設網站有問題,等網站管理者發現修復。從早上試到下午都沒有改善,最後是用自己的手機網路解決,我也懶得回過頭確認使用工作環境網路是否就正常了。只是據我之前下載國外軟體經驗,有時候可能是因為防火牆等關係,多試不同網路環境即可解決。
02. Realtek 8168 網卡晶片不支援
以前的版本 (6.7) 有兩種解決方式把第三方 packages 包進去:一個是使用 VMware PowerShell CLI 重 build ISO 檔,另外一個是使用高手再包裝過的 PowerShell script (ESXi-Customizer-PS) 來解決,我這裡是使用後者。一開始會先遇到安全性問題,這個問題比較簡單,使用管理員權限執行 "Set-ExecutionPolicy RemoteSigned" 指令重新設定原則即可。
接著會遇到沒有 VMware 相關模組問題,印象中是缺少 "Core" 和 "ImageBuilder" 這 2 個模組。一開始還傻傻的去下載 "VMware-PowerCLI-12.1.0-17009493" 整包檔案,下載下來發現也不會安裝,後來發現可以直接透過官方網站安裝庫來安裝,只要使用下列指令缺什麼就裝什麼就好 "Install-Module -Name VMware.VimAutomation.Core"。
好不容易用指令產生了 ISO 檔 ".\ESXi-Customizer-PS.ps1 -izip .\VMware-ESXi-7.0.0-16324942-depot.zip -v70 -pkgDir D:ESXi-Customizer-PS-2.8.1",過程中會看到類似 API 版本不相容的 warning,沒想太多就去機器執行安裝動作,最後還是無法使用 Realtek 網卡,據這個網友的說法是 6.7 以後的 API 有更改,除非有高手提供給 7.0 使用的 packages,不然這個問題會是無解。最後跟別人借了一張 INTEL I350 網卡才讓安裝程式可以順利執行。
03. 安裝完後無法開機
跟前面幾個問題比起來,安裝過程只能說是無以倫比的順利,我都想要開香檳慶祝了。
沒想到我果然還是太嫩了,做事那有可能順風順水?一裝完就遇到無法開機的問題,開機過程 BIOS 只會無聲無息的回到 BIOS 選單,連個訊息都沒有?官網有一篇文章提到這個問題,只是提到說可能是安裝程式過程中,沒有把 UEFI Variable BootXXXX 寫好,進去選單把開機裝置 "VMware ESXi" 加入即可。第一次安裝後,我連這個裝置都沒看到,雖然我用 Linux 開機碟下指令除錯,可以看到硬碟第 1 個分割區是這個名稱沒錯,但是在 BIOS 選單都無法看到,只能看到整顆硬碟名稱的開機裝置。一開始想說先用我另外一台小電腦來測試安裝步驟,這個機器更慘,安裝前置作業就會死當,故無法做參照組。
依稀覺得可能跟 Secure Boot 有關?排列組合 BIOS 選項試了安裝好幾次,每一次都無法開機,但在某些組合下可以看到 "VMware ESXi" 這個開機裝置,嘗試使用 Linux 安裝碟從本機開機的選項也無法順利開機。在各個嘗試的過程中還發現,只要把 USB 安裝碟裡面的 "boot.cfg" 裡面的 "kernelopt=cdromBoot runweasel" 參數改成 "kernelopt=" 就可以變成混合 USB 和硬碟開機,也可以讀取 datastore 裡面的 VM 檔案,只是這種開機方式,每次都要重新設定 VM,實在不是個好選項。
認命的把官方文件大概瀏覽了一遍,也是沒有頭緒,只能確定硬碟裡面的分割區是如文件所述的 7.0 的新配置方式。
再來是猜測會不會是 BIOS 有問題?不過我用我自己 build 的 UEFI Shell 倒是可以開機,主機板官網的最新 BIOS 也只到 2014 年,暫時先不懷疑它好了。
乾脆來嘗試安裝到隨身碟好了?只不過安裝完後該 USB 裝置還是無法開機!
最後還是來看一下主機版 BIOS 版本好了,版本是這塊板子的第一個出廠 BIOS,跟最新的版本相比,時間約莫差了一年多,但是中間卻有 15 個版本的 BIOS 更新,雖然 Release Note 看不到跟 UEFI 相關的更新,還是死馬當活馬醫的更新一下 BIOS。
想不到一更新完 BIOS 後,連重新安裝都不用,就可以直接用原本硬碟裡面裝好的 vSphere 開機,終於結束了這無止境的困境。
最後開啟 vSphere 的 SSH 功能,好方便遠端登入下指令,vSphere 是一個類 Linux 的 OS,故常用的指令可能沒有,或是指令的參數不一樣,下面幾張圖分別是用了 "-df -h","/usr/lib/vmware/misc/bin/fdisk -l","/usr/lib/vmware/uefi/bin/bootorder -l" 等指令的結果。
最後一個結果比較奇怪,貌似我不是使用 UEFI mode 開機?但我記得我的開機選項是 "VMware ESXi" 無誤!
2020/11/04 更新
使用自己的小工具檢查 UEFI BootOrder and BootXXXX Variable!這一次換成需要將 BIOS 選項改成 Other UEFI OS 才能進入我的 UEFI Shell,執行結果如下圖。
2020/11/12 更新
之前詢問同事是否可以轉移網卡給我,如果以後同事專案用不到就直接做資產轉移,也可以幫公司省錢,可惜該張網卡以後專案還是會用到。跟老闆討論後,老闆也很爽快的批准採購。
我選定的是 Intel 9301CT 桌上型網卡(EXPI9301CTBLK, Intel 82574L),PChome 售價 NT $1,290,應該是支持 vSphere 7.0 裡最便宜的網卡吧?我是以晶片 Intel 82574L 關鍵字來確定該張網卡有在 vSphere 7.0 的支援清單中。不過抖抖的是,國外網路上有人說他不能用?幸好到貨時一切正常(網路上似乎還有更便宜同晶片的網卡,大概是六七百塊左右,應該是非原廠卡)。
記得要登入 vSphere console,重新指定網卡才行,系統在移除舊網卡,裝上新網卡後不會自動選取網卡,一開始沒想到要做這事,只是檢查 IPv4 設定,然後就一直看到 DHCP 失敗,害我內心也抖了一下!自己的東西不能用比較沒差,公司的資產不行又要重新採購,實在是浪費錢。
另外,不知是我太 low 還是怎樣?第一次看到網卡擋板後面會提示燈號顏色的代表意義,果然是貴上 4 ~ 5 倍網卡該有的樣子。不過,我後來想想,應該是我之前買的網卡太便宜的緣故吧?