D510MOでVMware ESXi 4.0をインストールするには

自宅のミニサーバのマザーボードをD945GCLF2からD510MOに換装しました。

そのまま既存のCentOS + VMware Server構成で運用を続けても良かったのですが、せっかくなので前から気になっていたVMware ESXiを入れてみることにしました。

ただし、VMware ESXiはD510MOに搭載されているRealtek製のNICに対応していませんので、インストールにあたってちょっとした作業が必要になります。

その辺に関してはありがたい事にWeb上に多くの情報がありました。いくつかの方法があるようでしたので、備忘録として私がとった手順も書きとめておこうと思います。

今回は

  • D510MOマシンには光学ドライブがついていない
  • 使うメディアはUSBメモリだけで済ませたい
  • ただしUSBブートではなくHDDブートにしたい
  • 既存のLinux環境はない*1

という前提で作業を行いました。

なお、以下の手順はVMware ESXi 4.0 Update 1を対象としています。

インストール手順

USBメモリを用意する

FAT32でフォーマットされた、容量1GB以上のUSBメモリが一本あればOKです。クライアントPCに挿しておきます。

UNetbootinをダウンロードする

UNetbootinはISOイメージから簡単にブータブルUSBメモリを作成できる便利ソフトです。トップページ上部にダウンロードボタンがありますので、Windows用を落としてきます。

特にインストールの必要はなく、落とした実行ファイルをそのまま起動しますので、適当な場所に置いておきます。

ESXiのインストーラブルISOイメージをダウンロードする

VMwareのサイトからダウンロードしてきます。無料ですが、ユーザ登録が必要です。

インストーラUSBメモリを作成する

先ほど落としてきたUNetbootinを起動し、

  • Diskimage > ISO > (ISOイメージファイル)
  • Type > USB Drive
  • Drive > (USBメモリのドライブ)

を選択してOKをクリックします。完了すると再起動するか問われますが、再起動せずに閉じます。

インストーラUSBメモリoem.tgzを追加する

これでもうUSBメモリからインストーラを起動できますが、そのままだと起動途中に"No compatible network adapter found."と言われて止まってしまいます。

有志の方々の手によってESXi用の各種デバイスドライバが作成されていますので、それを使うことでESXiにNICを認識させることができます。

まず、下記のページから"RTL8111_8168_P55_integr_SATA_Ctrl.(AHCI).oem.tgz"をダウンロードします。

そのファイルをUSBメモリのルートフォルダ*2にコピーし、"oem.tgz"にリネームします。

最後に同じフォルダにある"syslinux.cfg"をエディタで開き、

append initrd=/ubninit vmkboot.gz --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.tgz --- image.tgz --- install.tgz

の行の最後に" --- oem.tgz"を付け加えて保存します。

append initrd=/ubninit vmkboot.gz --- vmkernel.gz --- sys.vgz --- cim.vgz --- ienviron.tgz --- image.tgz --- install.tgz --- oem.tgz

同じ行が2行ありますので、2行とも変更しておきます。

ESXiをインストールする

これでインストーラは完成ですので、クライアントPCからUSBメモリを抜き、D510MOマシンに挿して起動します。BIOSのブートメニューでUSBメモリからのブートを選択するのを忘れずに。

ブートローダーの画面で"ESXi Installer"を選択するとインストーラが起動します。やや時間がかかりますが、しばらく待っていると入力待ちの画面が出てきますので、あとは画面の表示通りにインストールを進めます。

注意点として、インストーラPS/2接続のキーボードを認識してくれませんでしたので、USB接続のキーボードを使う必要があります。

再起動を促す画面が出てくれば、めでたくインストール完了…とはいかず、もう少し作業が必要になります。再起動しても例によって"No compatible network adapter found."で止まりますので、USBメモリを抜き、しばらくそのまま置いておきます。

USBブートのCentOSを作成する

実は先ほど追加した"oem.tgz"はあくまでも「インストーラが読み込む用」なので、今インストールしたESXiは依然としてRealtekNICを認識してくれない状態になっています。ESXi本体に再度oem.tgzの追加が必要になります。

そのために、インストーラUSBメモリを今度はCentOS化して、D510MOマシン上でCentOSをUSBブートして作業を行うことにします。*3 *4

USBメモリを再度フォーマットしたら、CentOSのサイトからLiveCD版のISOファイルをダウンロードし、先ほどと同じようにUNetbootinを使ってUSBメモリにインストールします。

インストールが完了したら、USBメモリのルートフォルダに"RTL8111_8168_P55_integr_SATA_Ctrl.(AHCI).oem.tgz"をコピーして、クライアントPCから抜きます。

ESXiにoem.tgzを追加する

再起動待ちのD510MOマシンにUSBメモリを挿して再起動し、USBブートでCentOSを起動します。

CentOSが起動したら、ESXiをインストールしたHDDのパーティションがマウントされていることを確認します。通常は自動でマウントされていますが、されていなければfdiskでデバイス名を確認してマウントします。

# mount -l
...(省略)...
/dev/sda4 on /mnt/disc/sda4 type vfat (ro,uid=500) [Hypervisor0]
/dev/sda5 on /mnt/disc/sda5 type vfat (ro,uid=500) [Hypervisor1]
/dev/sda6 on /mnt/disc/sda6 type vfat (ro,uid=500) [Hypervisor2]
/dev/sda8 on /mnt/disc/sda8 type vfat (ro,uid=500) [Hypervisor3]
...(省略)...

ターゲットは"Hypervisor1"のボリュームラベルがついているパーティションです。私の場合は/dev/sda5で、既に/mnt/disc/sda5にマウントされていました。違うデバイス名だった場合は適宜読み替えてください。

この中に"oem.tgz"が入っていると思います。

# ls /mnt/disc/sda5
boot.cfg    cim.vgz      mod.tgz  pkgdb.tgz  vmkboot.gz
cimstg.tgz  license.tgz  oem.tgz  sys.vgz    vmk.gz

中身を見れば分かりますが、ただの空tgzファイルなので、これを先ほどUSBメモリにコピーした"RTL8111_8168_P55_integr_SATA_Ctrl.(AHCI).oem.tgz"に置き換えます。

読み取り専用でマウントされていますので、読み書きモードでマウントし直したあと、ファイルをコピーします。なお、私の環境ではコピー元のUSBメモリは/mnt/disc/sdb1としてマウントされていましたが、こちらも適宜読み替えてください。

# umount /mnt/disc/sda5
# mount /dev/sda5 /mnt/disc/sda5
# cp -p /mnt/disc/sdb1/RTL8111_8168_P55_integr_SATA_Ctrl.\(AHCI\).oem.tgz /mnt/disc/sda5/oem.tgz

これでCentOSでの作業は終わりです。再起動をかけてUSBメモリを取り外します。

インストール完了

再起動後、通常通りHDDからブートすれば、無事ESXiが立ち上がると思います。めでたしめでたし。

ESXi自体の設定や使い方については、以下の参考サイトの下3つなどをどうぞ。

*1:D945GCLF2時代に使っていたCentOS環境は既に潰してしまっていました。

*2:image.tgzなどがあるフォルダ。

*3:本当はUbuntuを使うつもりだったのですが、D510MOでUbuntuを起動するにはBIOSのアップデートが必要になるようなので、手順の省略のためにCentOSを選択しました。参考:Intel 新 Atom MB (D510MO) で Ubuntu 9.10 を使うには - metastable blog

*4:インストーラに含まれるDDイメージを直接編集することもできます。その場合はインストール直後からESXiを使うことができます。参考:Updating the VMWare ESXi Disk Dump File | Grid.org