J4125産業用ミニPC上のVMware ESXi 8.0で動作するOpenWRT仮想マシン

公開 | 更新 

いよいよJ4125産業用ミニPCに構築した VMware ESXi 8.0 ハイパーバイザ内に、 OpenWRT の 仮想マシン を構築します。OpenWRT の公式イメージを容量拡張の上、仮想ディスクへ変換してインポートするだけでは起動せず、結局互換性を ESXi 6.5 まで落とすことで起動するようになりました。

OpenWRT 22.03イメージを伸長

OpenWRT公式サイトのダウンロードページより、x86_64プラットフォーム向けで永続的なext4ファイルシステム仕様のイメージ( generic-ext4-combined-efi.img.gz )をダウンロード、解凍します(以降の作業はUbuntu 18.04デスクトップで進めます)。

以前、Raspberry Piのシステムイメージで実践した時と同じ要領で、解凍したディスクイメージをループデバイスに登録して、

パーティション構成を確認してみます。

図01.OpenWRTオリジナル構成

図01.OpenWRTオリジナル構成



このイメージをまず、 qemu-img resize で512MBまで伸長します。

伸長したイメージを再びループデバイスで確認してみると、この時点ではまだ既存構成の後方に空き領域が生成されただけの状態です。

図02.qemu-imgでイメージ伸長

図02.qemu-imgでイメージ伸長

伸長したイメージに合わせパーティションを拡張

次に gdisk でルートパーティションを空き領域いっぱいまで拡張します。

fdisk もそうですが、既存のパーティションをリサイズする機能は存在しないので、実際にはパーティションを削除し、同じ開始セクタから大きな領域を新規作成するという段取りになります。なので、削除前にはそのパーティション情報を詳細まで忘れずに確認(開始セクタとパーティションGUID)のこと。

その前に gdisk が問題点を指摘する場合は、それらを全て解消する必要があります。

再び gdisk を実行し、パーティション情報を確認します。

続けてパーティションの削除と新規作成(終端はディスクいっぱいまで)。

このままでは拡張したルートパーティションのUUIDが、システムの /etc/fstab に記述してあるものと異なるため、これをエキスパートモードに入って編集し、パーティションテーブルへ書き込みます。

そして中のファイルシステムをパーティションに合わせて拡張すれば、イメージ拡張作業は終わりです。

図03.gdiskでパーティション拡張

図03.gdiskでパーティション拡張

イメージを仮想ディスクへ変換

出来上がった512MB拡張イメージを qemu-img convert でVMware仮想ディスクへ変換します。

 

ESXi 8.0デフォルトでは仮想ディスク接続エラー

こうして出来上がったOpenWRT仮想ディスクをVMware ESXi 8.0ホストへ転送し、仮想マシンの新規作成ウィザードでこの仮想ディスクを指定すると、次のエラーに遭遇してしまいます。

図04.仮想ディスク指定時にエラー

図04.仮想ディスク指定時にエラー

ESXi 8.0はまだまだ情報は少ないものの、それ以前のバージョンでは問題無く仮想マシンを構築できている事例が散見されることから、仮想マシン作成時のハードウェアバージョンの設定問題なのかと思われます。

 

正常に起動するOpenWRT仮想マシンの作り方

設定を変えながら試行錯誤を繰り返して、ようやく正常に起動できる仮想マシンを作る手順を見出すことができました。

まず、ESXi Host Clientの仮想マシンの作成ウィザードで新規仮想マシンの作成を選択。

図05.新規仮想マシンの作成

図05.新規仮想マシンの作成

次の名前とゲストOSなどを設定するこの遷移では、必ず互換性の欄で ESXi 6.5仮想マシン を指定します。

図06.名前とゲストOSの選択

図06.名前とゲストOSの選択

ストレージの選択はそのまま次へ。

図07.ストレージの選択

図07.ストレージの選択

仮想マシンのハードウェア設定は全体では次のような構成で、SCSCIコントローラタイプを LSI Logic Parallel に変えています。

図08.仮想ハードウェア設定全体

図08.仮想ハードウェア設定全体

そしてハードディスクは、先ほど作成したイメージと同じサイズのをシン・プロビジョニングで新規作成しています。

図09.仮想ハードディスク新規作成

図09.仮想ハードディスク新規作成

仮想マシンのオプションでは、起動オプションをEFIに変えましたが、BIOSのままでもなぜか正常に起動します。

図10.仮想マシンの起動オプション

図10.仮想マシンの起動オプション

ここまでの設定サマリを確認してウィザードを終了します。

図11.設定サマリの確認と終了

図11.設定サマリの確認と終了

この仮想マシンには触らず、ESXiホストのsshを有効にしてターミナルから、以下の要領で作成したばかりの仮想ディスクを削除します。

そして、512MBへ拡張したOpenWRT仮想ディスクを vmkfstools で仮想マシンのフォルダへクローニングします。

再びESXi Host Clientに戻って仮想マシンをパワーオンさせると、エラーもなく正常に起動しました。

図12.入れ替えた仮想ディスクで起動

図12.入れ替えた仮想ディスクで起動

VMware WorkStation 16なら

余談ですが、VMware WorkStation 16では作成した仮想ディスクを元に仮想マシンを問題無く構築することができるので、それをさらにOVF形式にエクスポートし、ESXi 8.0ホストへインポートするという手も有効です。

図13.VMware Workstationでの動作

図13.VMware Workstationでの動作

 

本来ならばルータらしく仮想NICを組むところまで進めたかったのですが、正常に起動する仮想マシンを構築するところで手間取ってしまったので、今回はここまでです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA