自分のもっているNUCは第7世代なので、せいぜいCPUは論理4コアしかとれない。コンテナをやろうとすると4コアだと全然足りない。NUCは、メモリが長らくDDR4で価格が安定しているので、この機に、NUCを増設することに。静かなサーバ機を買ってもいいのだが、静かなサーバ機でもそこそこうるさく、昨今の電気代を考えると電源を入れるのも怖い。それにしても昨今の半導体不足。NUCも買おうと思った時に在庫がないか、ありえない値段になっていたりする。在庫があって買えそうな時に買っておくのがいいと思う。買ったデバイスは以下。
NUC12WSHi7
CT1000P2SSD8JP
ノートPC用増設メモリ 64GB (32GBx2枚)
電源コードACインレット
このモデルは、NVMEと、2.5HDDの他に、M2 SATAも繋げられる。(つまり3ドライブまで使える。)自分は余っていた2.5 SSDとM2 SATAもつけてしまった。
BIOSをUSBメモリでアップデートして、BIOS設定は、ESXで使えないデバイス(WLAN/Bluetooth/Sound)を無効、SecureBoot無効、Wake-ON LANを有効にしたくらいで特に設定は変更にしていない。
閑話休題
さて、いろいろ調べてみるとNUC第12世代、やはり微妙に面倒なことがある。
CPUのコアがPコアとEコアに別れているので、ESXを普通に起動させようとすると、CPUをミックスして使うんじゃない!とパープルスクリーンで止まってしまう。起動時にブートパラメータを「追加」してあげる必要がある。
NUCのNICは、ESX7でサポートされていない。ネイティブサポートは、ESX8からだそう。なので、ESX7を入れる場合は、Community Networking Driver for ESXi Flingのドライバが必要。めんどくさいので、RealtekのUSB NICを指してインストールをしてみたが、インストール途中のファイルのコピーでインストールが停止してしまった。
インターネットを彷徨っていたら、結局こうだった。ちなみに、以下の作業は、Windows10で作成した。
ESX7.0U3のインストールISOの作成
以下のページを参考にした。
https://andrewroderos.com/vmware-esxi-intel-nuc-12/
https://williamlam.com/2022/09/esxi-on-intel-nuc-12-pro-wall-street-canyon.html
必要なもの
ファイルは、全てデスクトップに置いておく、
- VMware ESXi 7.0 U3g Offline Bundle (VMware-ESXi-7.0U3g-20328353-depot.zip)
- Community Networking Driver for ESXi (Net-Community-Driver_1.2.7.0-1vmw.700.1.0.15843807_19480755.zip)
- 8GB程度のUSBメモリ(ESXのインストーラー用)
- Rufus (ISOイメージをUSBメモリに転送するもの)
インストールメディアの作成
以下のPowerShellでISOイメージを作る。
cd C:\Users\<ユーザ名>\Desktop
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Install-Module VMware.Powercli -scope AllUsers -force -SkipPublisherCheck -AllowClobber
Import-Module VMware.ImageBuilder
Add-EsxSoftwareDepot ".\VMware-ESXi-7.0U3g-20328353-depot.zip"
Add-EsxSoftwareDepot ".\Net-Community-Driver_1.2.7.0-1vmw.700.1.0.15843807_19480755.zip"
New-EsxImageProfile -CloneProfile "ESXi-7.0U3g-20328353-standard" -name "ESXi-7.0U3g-20328353-NUC" -Vendor "andrewroderos.com"
Add-EsxSoftwarePackage -ImageProfile "ESXi-7.0U3g-20328353-NUC" -SoftwarePackage "net-community"
Export-EsxImageProfile -ImageProfile "ESXi-7.0U3g-20328353-NUC" -ExportToIso -filepath ESXi-7.0U3g-20328353-NUC.iso
生成された、ESXi-7.0U3g-20328353-NUC.isoをRufusでUSBメモリに焼く。一旦、このUSBメモリを差し直して、efi/boot/boot.cfgをメモ帳で開く。
kernelopt=runweasel cdromBootという行があるので、 cpuUniformityHardCheckPanic=FALSEを追加する。
追加前
kernelopt=runweasel cdromBoot
追加後
kernelopt=runweasel cdromBoot cpuUniformityHardCheckPanic=FALSE
USBメモリから起動
インストールが終わったらUSBメモリを抜いて再起動をする。何事もなく、インストールは完了するはずである。
初回起動の設定
ESXが起動し始めたら、Shift+Oで、カーネルパラメーターを追加する。
cpuUniformityHardCheckPanic=FALSE
これで起動ができる。SSHを有効にして、以下のコマンドを実行して、カーネルパラメーターを恒久的に有効にする。
esxcli system settings kernel list -o cpuUniformityHardCheckPanic
esxcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE
esxcli system settings kernel list -o cpuUniformityHardCheckPanic
ConfiguredがFALSEになっていることを確認すること。
これで、終わり。再度再起動して、パープルスクリーンがでないことを確認する。
パープルスクリーンの1000本ノック状態だった。カーネルパラメーターの追加はいろいろな方法でできるがこれが唯一うまくいった方法だった。まぁ、パープルスクリーンが起動時に出たら、心折れずにカーネルパラーメーターの追加して、とりあえず突破していくしかない。