目次

Mac OSをインストール可能なESXi7環境を構築する


はじめに

この手順はApple社が認めているものではありません。

またVMware社が公式に認めているものでもありません。行う場合は自己責任でお願いいたします。

経緯

Mac OSはApple社が公式に販売しているハード以外で動作させることを認めておらず、VMwareのWorkstationなどはMac OSの仮想環境を構築することはできない。

※Apple社のソフトウェア使用許諾上認められていない。

ESXi6環境のホームラボの環境が厳しく、特に「おうちKubernetes」が厳しくなってきたので、増設することにした。

構成

VMware Compatibility Guideによると、MacMini 2018はESXi7.0b以降で(内蔵SSDが利用できない、Thunderbolt 3デバイスはSSDなど一部のデバイスのみ対応、といった)一部機能制限はあるが対応している。

MacMini 2014, 2012などの過去のデバイスであれば制限はない。

ちなみにそれぞれMac 8,1やMac7,1といった型番が設定されているがどれがどの端末であるかはAppleのサイトに確認方法が用意されている。

M1 MacMiniは9,1のようだ。

用意したもの

種別デバイス年式CPUメモリOS
作業PCMacBook Pro 13-inch2016Intel Core i5 2.9GHz8GBBig Sur (11.1)
インストール先Mac Mini 20182018Intel Core i3 3.6GHz64GBCatalina (10.15.7)

ブート用USB(&ESXiインストール先) Buffalo 16GB

USBデバイスは稼働中はずっと差しっぱなしになるデバイスのため、容量よりもできるだけ小さいものを選ぶのが良い。8GBあれば足りるはず。

つい先日、Mac Mini の内蔵SSDが認識できるベータ版がflingsに登録されたらしいが、とりあえずはVMwareからダウンロードできるISOだけで行う(=内蔵SSDが認識されない状態で構築する)

ブート可能なUSBディスクをMac (OSX Big Sur)で作成する

Windowsから作成するときはRufusというアプリが定番のようだが、Macから作成するためにコマンドでブータブルUSBを作成する。

全体的にVIRTUALLYWIREDを参考にさせてもらった。

Create a Bootable ESXi 7 USB Installer on macOS - VirtuallyWired

Create a bootable ESXi 7 USB Installer on macOS without 3rd party software in under 5 minutes.

USBをMacに接続し、マウントポイントを確認する

1
diskutil list

今回は /dev/disk2 として認識されているUSBを利用する。外部デバイスは (external, physical) として認識されるようだ

※Install macOS Big Sur となっているのは、年末にOSアップデートに失敗して文鎮になってしまい、復旧のために作成したMac OSインストール用途USBだからです。

接続されているUSBをMS-DOS(FAT32)で初期化する

※事故防止のため、以下のコマンドは#を冒頭に伏してコメントモードにしています。自分の環境ではdisk#->disk2に置き換えます

1
#diskutil eraseDisk MS-DOS "ESXI" MBR disk#

くれぐれもディスクIDを間違えないように注意

コマンドからUSBをアンマウントする

物理的には接続解除はしない。この後作業するため、再度前ステップと同じマウントポイントを指定すること。

1
diskutil unmountDisk /dev/disk2

USBにパーティションを作成する 要:管理者権限

1
sudo fdisk -e /dev/disk#

パーティション1を作成(f 1)し、書き込み(write)、終了する(quite)

1
2
3
> f 1
> write
> quite

ESXiのインストールISOをマウントし、中身をUSBディスクにコピーする

展開したファイルを全てUSBにペーストする。コピーアンドペーストで良い。

ダウンロードしたファイルが破損していないかをを確認するためには、sha256チェックを行うと良い。

1
shasum -a 256 <FILE_PATH>

USB上のISOLINUX.CFG を SYSLINUX.CFG にリネームし編集する

SYSLINUX.CFGを編集する。OS標準のノートアプリなどを利用するのはNG。

今回はVSCodeを利用する

1
code /Volumes/ESXI/SYSLINUX.CFG

以下、設定変更内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
>diff -u /Volumes/ESXI-7.0B-16324942-STANDARD/ISOLINUX.CFG /Volumes/ESXI/SYSLINUX.CFG

--- /Volumes/ESXI-7.0B-16324942-STANDARD/ISOLINUX.CFG	2020-06-03 02:28:32.000000000 +0900
+++ /Volumes/ESXI/SYSLINUX.CFG	2021-02-19 18:14:32.000000000 +0900
@@ -5,7 +5,7 @@
 TIMEOUT 80
 LABEL install
   KERNEL mboot.c32
-  APPEND -c boot.cfg
+  APPEND -c boot.cfg -p 1
   MENU LABEL ESXi-7.0b-16324942-standard ^Installer
 LABEL hddboot
   LOCALBOOT 0x80

自動インストール対応

ESXiの自動インストール対応を行う。

1
code /Volumes/ESXI/BOOT.CFG

以下のような設定にする

1
2
3
4
5
6
7
8
9
❯ diff -u /Volumes/ESXI-7.0B-16324942-STANDARD/BOOT.CFG /Volumes/ESXI/BOOT.CFG
--- /Volumes/ESXI-7.0B-16324942-STANDARD/BOOT.CFG	2020-06-03 02:28:32.000000000 +0900
+++ /Volumes/ESXI/BOOT.CFG	2021-02-19 22:03:48.000000000 +0900
@@ -3,7 +3,7 @@
 timeout=5
 prefix=
 kernel=/b.b00
-kernelopt=cdromBoot runweasel
+kernelopt=ks=usb:/KS.CFG

上記ESXiインストールガイドに記載されているが、ファイルパスを大文字にしないといけない。

スクリプトのパスを入力するには、大文字を使用する必要があります。

参考:ESXi のインストールとセットアップ VMware Docs

KS.CFGの設定内容は以下を参考にさせていただいた。

インストール前にOSXの起動設定を変更する

ここまで来るとあとはUSBメモリを指してブートオプションからUSBデバイスでブートするだけ。の認識だったのだが、ESXiを利用する前提でキーボード・マウスを用意していなかったので、Mac Mini のブートオプションを変えられないという痛恨のミスがあった(笑)

さらには別の端末のマウスとキーボードを利用してブートオプションを変えたものの、USBデバイスの中に入っているはずのESXiを起動できないことが発生し、少し悩んだ。

結論から言うと、こちらのページで紹介されているT2チップのセキュアブートの設定がデフォルトでONになっているため、「command」+「R」キーを押しながら電源をオンにすして、復元ボリュームを起動し、起動セキュリティユーティリティから、「安全な起動」を「セキュリティなし」に、「外部起動」を「外部メディアからの起動を許可」してあげる必要があった。

この設定はスクリーンショットが取れない(OS起動前の画面なのでディスプレイを撮影するしかない)ので、細かな手順は以下のAsciiのサイトを参考にするのが良い。

T2チップ搭載の新MacBook Pro強固すぎるセキュアブートとは?

新MacBook Proシリーズが搭載するApple T2チップは、内蔵SSDの瞬時暗号化やセキュアブートなどの機能を提供している。その詳細を見ていこう。

これらの設定を変更した上で再度USBデバイスから起動すると、無事にESXiがインストールできているはず。