LoginSignup
1
0

More than 3 years have passed since last update.

VMware ESXi arm editionで各種Linuxディストリビューションを試す+USBブートしてみる

Posted at

始めに

VMwareのESXiのarm editionがraspberry pi 4で動作するようになりました。インストール方法は公式に詳しく出ているので、それに沿って行えばできます。しかし、そこからvmを作成するのに右往左往したので、メモに残します。ただ、実験的に方法を探っただけで、公式的なやり方とは思えないので、公式があるようでしたらコメントいただけるとありがたいです。
あと、USBブートが意外と簡単にできたので、それもレポートします。

参考ページ

ESXi arm edition公式

Ubuntu 20.10 aarch64

CentOS 8 aarch64 generic image

Fedora 33 aarch64 image

用意するもの

  • raspberry pi 4版ESXi arm edition 公式に従ってインストール、動作確認をしてください。このページの左のDownloadボタンの上のメニューから「Fling-on-Raspberry-pi.pdf」を選択してダウンロードすると、詳細なインストラクションがあります。なお、インストールにはPi4 8GB or 4GB、SDカード、USB接続のSSD/HDDが必要となります。
  • Linux PC vmイメージのさばけるHDDの容量があって、qemuがインストールされている必要があります。筆者はRaspberry Pi 4にHDDをつけてUbuntuを動作させている環境で行いました。
  • Windows PC 各種作業用

VMのクリエイト① Ubuntu編

Ubuntuにはaarch64のインストーラISOイメージがあり、機能するので、通常の方法でインストール可能です。FedoraもインストーラISOがあり、インストールするのですが、grabのインストールに失敗し、動きません。

(1) まずUbuntu 20.10 aarch64から、インストーラISOを作業用PCにダウンロードします。

(2) ブラウザのESXi画面左からStorageを選択して、Data Store browserを開きます。

スクリーンショット 2020-10-31 101045.jpg

Uploadを開いてダウンロードしたISOファイルをアップロードします。

スクリーンショット 2020-10-31 101244.jpg

(3) VMのCreateをします。Virtural Machines->Create/Register VMを選択します。

スクリーンショット 2020-10-31 102645.jpg

Create a new virtural machineを選択してnext

スクリーンショット 2020-10-31 103023.jpg

適当な名前と、ESXi 7.0 virtural machine、Linux、Ubuntu Linux (64bit)を選択してnext

スクリーンショット 2020-10-31 103504.jpg

次は適当なストレージを選択して(多分1つしかない)next
次でISOファイルを選択します。
まずCPUは適当に2くらいにします。多分4は無理です。(ずっとESXiがとっている)メモリは4GB版なら2GBくらいにしておきます。HDDは使用しているディスクと相談の上、小さすぎないようにします。実験であればデフォルトでOK。
下の方のCD/DVD Drive 1の選択肢をDatastore ISOファイルにします。ファイル選択画面になるので、先ほどアップロードしたファイルを選択します。

スクリーンショット 2020-10-31 104230.jpg

Connectにチェックが入っていることを確認してnext

スクリーンショット 2020-10-31 104425.jpg

next、finishで終わりです。多分virturalboxとかの経験ある人は特に問題ないと思います。

(4)新しくCreateされたVMを起動します。クリックしてPower on、指示に従ってください。

VMのクリエイト② CentOS編

CentOSでは、探したところaarch 64はインストーラISOが無く、インストールされたディスクrawイメージが配布されています。これをESXiに持っていく必要があるのですが、ここで試行錯誤して起動成功させました。まず、イメージとしてraspberry pi用のイメージはNGのようです。どうやらブートが特殊でブートしません。Arm一般向けのgenericイメージが動作しました。以下、手順です。

(1)前準備、ESXiのsshポートを開きます。ESXiブラウザ画面左NavigatorのManageを開きます。項目の中からTSM-SSHを選択し、Startを押します。Runningになればsshできます。
ログインの仕方も癖があります。teratarmを開いて、ホストを選択後、ユーザー名(ここではroot)を書いたあと、その下にパスワードを入れてもダメです。メニューの下の方にあるキーボードインタラクティブ認証を使う を選択してください。次にパスワードを入れる画面になるので、パスワードを入れるとログインできます。あとでコンソールを使います。

スクリーンショット 2020-10-31 091724.jpg

スクリーンショット 2020-10-31 092222.jpg

VMデータを置くストレージは以下の場所になります。

# cd /vmfs/volumes/datastore1/

(1)作業用Linux PCにrawイメージをダウンロードして解凍します。

$ wget https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-generic-Minimal/CentOS-Userland-8-stream-aarch64-generic-Minimal-sda.raw.xz
$ unxz CentOS-Userland-8-stream-aarch64-generic-Minimal-sda.raw.xz

(2) qemuを使って、VMware用のディスクイメージであるvmdkファイルを作成します。

$ qemu-img convert -f raw -O vmdk CentOS-Userland-8-stream-aarch64-generic-Minimal-sda.raw centos.vmdk

(3)SCP を使ってvmdkファイルをESXiに転送します。(0)のsshポートが開いていることに注意してください。

$ scp centos.vmdk root@<ESXiのアドレス>:/vmfs/volumes/datastore1/

(4) (1)で開いたESXiのsshコンソールに行き、転送したファイルがあることを確認してください。そして以下を実行。

# vmkfstools -i centos.vmdk centos_2.vmdk
Destination disk format: VMFS zeroedthick
Cloning disk 'centos.vmdk'...
Clone: 100% done.

これは、qemuで作成できる.vmdkファイルがESXiでは動作しないバージョンのため変換が必要とのことです。

(5)これでやっとブラウザからの作業になります。VMのCreateをします。Virtural Machines->Create/Register VMを選択します。OSはCentOS 8を選択してください。Customize Settingsで、Hard Disk 1の右端にある×を押して消去します。代わりに新しいハードディスクを登録します。Add hard disk->Existing hard diskでファイルを選択できるようになるので、変換後のvmdk(この場合centos_2.vmdk)を選択してください。あとはいいように調整をして、Createを完了してください。あとは、VMを選択して起動すればOSが起動するはずです。

Fedora 33

CentOSと全く同じ方法で起動しました。
ファイルは以下を使用しました。

$ wget https://dl.fedoraproject.org/pub/fedora/linux/releases/33/Workstation/aarch64/images/Fedora-Workstation-33-1.3.aarch64.raw.xz

ESXiのUSB HDDからの起動

公式のESXiインストールでは、次回ブートもSDカードが必要となります。せっかくRaspberry Pi 4がUSBブート可能なのにもったいないと思いまして、少し検討をしました。最初はESXiのHDDのpartitionを少しずつずらしてスペースを作り、SDカードのブートを入れようとしましたが、gpartedでは歯が立たない。よく観察すると、HDD BOOTパーティションがあり、bootableフラッグも設定されています。中をのぞくとEFIのブート関連が入っており、直下はEFIディレクトリのみです。もしかしたら、ここにRaspberry Piのブート、つまりSDカードの中身を入れればうまくいくかと思い、やってみたところ、SDカード無しでブートしました。ちょっと便利になりました。
上の文章でやり方わからない人のために。
(1) Linux PCにSDカードの中身をコピーしておきます。USBメモリ等を使用してください。
(2) Linux PCにESXiのHDDを接続します。fdisk -lで確認します。

$ sudo su
# fdisk -l

 接続したHDDのデバイス名を確認します。ここでは/dev/sdbとします。

(3) /dev/sdb1をマウントします。コピーしてきたSDカードのファイルが/home/pi/boot/の下にあるとすると、以下のようになります。

# mount /dev/sdb1 /mnt
# cp -r /home/pi/boot/* /mnt
# umount /mnt

取り外して、sdカード無しでブートするかどうか試して下さい。

終わりに

VMwareは仕事でユーザとして使ったことがあるくらいであったため、最悪壊してもいいホストOS環境を構築できて、いろいろ実験できるのはなかなか楽しいものです。個人的にはvirtualboxのホストがPi4にできるといいかも、と思っております。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0