kenkino’s diary

おそらく技術・グッズ・自転車系 ※当ブログは、Amazonアソシエイトやその他アフィリエイト等の収益メディアを表示しております。

MINISFORUM EliteMini HX90 に仮想化環境を構築する(カスタムインストーラーで構築成功編)


MINISFORUMへの仮想化環境構築の完結編です。

内容

MacVMwareの公式のESXiのインストールISOファイルからインストールUSBを作成してMINISFORUMにインストールして失敗

kenkino.hatenablog.jp

インストールするならカスタムインストーラーを作る必要があるということでカスタムインストーラーについて情報を探した。

作成情報の収集 

始めは「ISOの内容をコピーしたUSBメモリに対応するドライバファイルを置けばいいのかな?」と考えていた。 ネットでESXiのカスタムインストーラーの作成方法をみてみたところ下記のサイトが良くまとまっていたので読んでみた

github.com

サイトによるとVMwareCLIツールであるPowerCLIを使う必要があるとのことで「えっ、PowerCLIって確かWindowsしか動かないんだよな?」と思い調べたところ、最近のPowerCLIはMacでもインストールできるようだったが肝心のインストーラー作成はWindows版でしか出来ないとのことで諦めてMacParallelsにあるWindowsを立ち上げて作業することにした。

カスタムインストーラー作成前に

作業に入る前に予め、ESXiのインストールイメージ、コミュニティ版のNICドライバ・NVMeドライバ等をダウンロードしておく ESXiのインストールイメージはESXiのダウンロードする際にOfflineBundleという名前のzipファイルをダウンロード

コミュニティ版のドライバは下記のサイトに入ってESXiの項目をクリックするとESXiに関連したソフトの一覧が表示されるのでその中にある

  • USB Network Native Driver for ESX
  • Community NVMe Driver for ESXi
  • Community Networking Driver for ESXi

を参考サイトを元にダウンロードした。

flings.vmware.com

PowerCLIのインストール

PowerSchellのターミナルを管理者権限で起動し

下記コマンドでPowerCLIをインストールする

> Install-Module -Name VMware.PowerCLI

PowerCLIの動作する際のセキュリティ警告を無効にする、Set-ExecutionPolicyで質問されるので[Y]を入力

> Set-ExecutionPolicy RemoteSigned
> Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

カスタムインストールの作成

インストーラーの作成手順は参考にしたサイトの手順に従って

1.インストールイメージを読み込む

 > Add-EsxSoftwareDepot -DepotUrl .\VMware-ESXi-7.0U3c-19193900-depot.zip

Depot Url
---------
zip:C:\ESXi_custom\VMware-ESXi-7.0U3c-19193900-depot.zip?index.xml

2.イメージの確認一覧で表示されたイメージでstandard書かれたイメージを使う

> Get-EsxImageProfile

Name                           Vendor          Last Modified   Acceptance Level
----                           ------          -------------   ----------------
ESXi-7.0U3c-19193900-no-tools  VMware, Inc.    2022/01/12 0... PartnerSupported
ESXi-7.0U3c-19193900-standard  VMware, Inc.    2022/01/18 0... PartnerSupported ←これを使う

3.使用するイメージを設定

> $ip = (Get-EsxImageProfile)[1]

4.USB NICドライバを登録

> Add-EsxSoftwareDepot -DepotUrl .\ESXi703-VMKUSB-NIC-FLING-51233328-component-18902399.zip

Depot Url
---------
zip:C:\ESXi_custom\ESXi703-VMKUSB-NIC-FLING-51233328-component-18902399.zip?index.xml

5.コミュニティ版ネットワークカードドライバを登録

> Add-EsxSoftwareDepot -DepotUrl .\Net-Community-Driver_1.2.2.0-1vmw.700.1.0.15843807_18835109.zip

Depot Url
---------
zip:C:\ESXi_custom\Net-Community-Driver_1.2.2.0-1vmw.700.1.0.15843807_18835109.zip?index.xml

6.コミュニティ版NVMeドライバを登録

> Add-EsxSoftwareDepot -DepotUrl .\nvme-community-driver_1.0.1.0-3vmw.700.1.0.15843807-component-18902434.zip

Depot Url
---------
zip:C:\ESXi_custom\nvme-community-driver_1.0.1.0-3vmw.700.1.0.15843807-component-18902434.zip?index.xml

7.ドライバが登録されたか確認

> Get-EsxSoftwarePackage | ft -AutoSize

ドライバ一覧が表示されるが下記があることを確認

  • nvme-community
  • net-community
  • vmkusb-nic-fling

8.新しいイメージプロファイルを作成

> $ip2 = New-EsxImageProfile -CloneProfile $ip -Name MINISFORUM-HX90-7.0.u3c -Vendor kwmtlab -AcceptanceLevel CommunitySupported

9.ドライバをイメージプロファイルに登録

> Add-EsxSoftwarePackage -ImageProfile $ip2 -SoftwarePackage nvme-comunity,net-community, vmkusb-nic-fling
\
Name                           Vendor          Last Modified   Acceptance Level
----                           ------          -------------   ----------------
MINISFORUM-HX90-7.0.u2c        kwmtlab         2022/02/06 1... CommunitySupported
> Export-EsxImageProfile -ImageProfile $ip2 -FilePath .\MINISFORUM-HX90-7.0.u2c.zip -ExportToBundle

10.イメージプロファイルからISOイメージを作成

> Export-EsxImageProfile -ImageProfile $ip2 -FilePath .\MINISFORUM-HX90-7.0.u3c.iso -ExportToISO

しかしISOイメージの作成で下記エラーが表示されてしまい失敗してしまった。orz

Export-EsxImageProfile : Error retrieving file for VIB 'VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.703.0.15.51233328': ("<z
ipfile.ZipExtFile name='vib20/vmkusb-nic-fling/VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.703.0.15.51233328.vib' mode='r' c
ompress_type=deflate>", "Error opening file object for VIB 'VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.703.0.15.51233328':
Expected value '[]' for attribute 'swplatforms', but found value '[<vmware.esximage.Vib.SoftwarePlatform object at 0x00
00018313AF2208>]'.").
発生場所 行:1 文字:1
+ Export-EsxImageProfile -ImageProfile $ip2 -FilePath .\MINISFORUM-HX90 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Export-EsxImageProfile], SoapException
    + FullyQualifiedErrorId : System.Web.Services.Protocols.SoapException,VMware.ImageBuilder.Commands.ExportProfile

一時頭を抱えたのだがメッセージを読んでみるとどうもUSB Network Native Driver for ESXでトラブルが出ていると思われたので登録を削除してみた

> Remove-EsxSoftwarePackage -ImageProfile $ip2 -SoftwarePackage vmkusb-nic-fling

そして再度ISOイメージを作成したところ成功

> Export-EsxImageProfile -ImageProfile $ip2 -FilePath .\MINISFORUM-HX90-7.0.u3c.iso -ExportToISO


インストールUSBメモリ作成

作成されたISOイメージをMacに持ってきてUSBメモリーにISOファイルの中身をコピーして前回と同じように

  1. コピーしたファイルの中からISOLINUX.CFGというファイルを探して名前をSYSLINUX.CFGという名前に変更

2.変更したSYSLINUX.CFGをエディタで開いて下記の部分を変更

APPEND -c boot.cfg
↓
APPEND -c boot.cfg -p 1

3.boot.cfgをエディタで開いて下記の内容を追加

kernelopt=runweasel cdromBoot systemMediaSize=min 

4.USBメモリをアンマウント

こうして作成したUSBメモリをMINISFORUMに取り付けて起動、今度はデバイスが見つからないという警告も表示されずに無事インストールが終了、ブラウザからMINISFORUMにブラウザで接続して管理画面も表示されることも確認して一通りの作業は終了した。

インストール後の確認 

一通りインストールが終わったのだが、ネットで情報を収集していた際にESXi7.0ではシステムストレージのレイアウトが変わった関係でシステムの入っているストレージに頻繁に書き込みが行われるようで、書き込み限界の少ないSSDの使用は推奨されないという情報があった。

これの対策としてはいくつか方法があるのだが、メインメモリ内にRAMディスクというストレージのように使用する領域を作成するというのが一番手間が掛からなそうだったため、SSHでMINISFORUMのESXiにログインし下記のコマンドで確認

 # esxcli system settings advanced list -o /UserVars/ToolsRamdisk
   Path: /UserVars/ToolsRamdisk
   Type: integer
   Int Value: 1
   Default Int Value: 1
   Min Value: 0
   Max Value: 1
   String Value: 
   Default String Value: 
   Valid Characters: 
   Description: Use VMware Tools repository from /tools ramdisk.

Int Valueが0の場合、1に設定し直して再起動する必要があったのだが1に設定されており、Default Int Valueも1となっていることからどうやらバージョンアップでここの部分は変更されたのではと思われる。

ということで、何とかESXiのインストールが終了し仮想化環境が使える状況となった。

色々やってみたいことはあるのだが、ひとまず前職でやっていたことのおさらいと、色々と試したい検証等もあるのでそれをやっていく予定である。

MacBook Proとの使い分けについてはMacBook Proでは一時的な検証環境、MINISFORUMで中期~本番環境に近い形の検証に使っていこうかと考えている。

色々あって時間が確保できるかが気になるのだが、何とか活用していこうと思う。