D510MOでVMware ESXi 4.0をインストールするには
自宅のミニサーバのマザーボードをD945GCLF2からD510MOに換装しました。
そのまま既存のCentOS + VMware Server構成で運用を続けても良かったのですが、せっかくなので前から気になっていたVMware ESXiを入れてみることにしました。
ただし、VMware ESXiはD510MOに搭載されているRealtek製のNICに対応していませんので、インストールにあたってちょっとした作業が必要になります。
その辺に関してはありがたい事にWeb上に多くの情報がありました。いくつかの方法があるようでしたので、備忘録として私がとった手順も書きとめておこうと思います。
今回は
という前提で作業を行いました。
なお、以下の手順はVMware ESXi 4.0 Update 1を対象としています。
インストール手順
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は依然としてRealtekのNICを認識してくれない状態になっています。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
インストール完了
再起動後、通常通り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