昨年から格安サーバとして大人気のHP ML115に、VMware ESX Server 3.5 (注:近頃無償化されたESXiではない) をインストールする方法をご紹介します。 ML115は、VMware社が公開している「ESX Server 3.5 および ESX Server 3i システム互換性ガイド(HCL)」には掲載されていませんが、インストールを行うことが可能です(ただし、完全な動作は保証されません)。しかし、インストール後に再起動すると、ハードディスクのマウントに失敗し、正常に起動しない問題が発生します。
Mounting root failed. Dropping into basic maintenance shell.
この問題の対処法を、VMware Communitiesに投稿された手順を元にまとめました。夏休みの自由研究として手軽にESX Serverを研究してみたい方は、ぜひ試してみてください。 手順は少々長くなりますので、続きに掲載します。
前提条件
環境は、ML115 G1を想定しています。また、ESX Serverのインストールはあらかじめ済んでいるものとします。作業用Linuxとして、 SUSE Linux Enterprise Server (SLES) 10 SP1のインストールメディアに収録されているRescue Systemを使用しました。こちらについては、KNOPPIXなどのLiveCDでも構いません。
作業用Linuxの起動と下準備
- SLESのメディアを挿入してマシンを起動し、インストーラのブートメニューで「Rescue System」を選択します。
- 起動したら、rootでログインします。
- /tmp 以下にディレクトリを作成します。
# mkdir /tmp/eboot # mkdir /tmp/eroot
- 作成したディレクトリに、ESX Serverのパーティションをマウントします。
# mount /dev/sda1 /tmp/eboot ←ESXサーバの /boot # mount /dev/sda2 /tmp/eroot ←ESXサーバの /
initrd内のファイルを修正
- ESXのブートパーティションにあるinitrdを、ESXのルートパーティション内のtmpディレクトリにコピーします。また、後ほど修正したinitrdを置くため、オリジナルのinitrdをリネームします。
# cp /tmp/eboot/initrd-2.4.21-47.0.1.ELvmnix.img /tmp/eroot/tmp # mv /tmp/eboot/initrd-2.4.21-47.0.1.ELvmnix.img /tmp/eboot/initrd-2.4.21-47.0.1.ELvmnix.img.org
- /tmp/eroot/tmpディレクトリに移動し、initrdをマウントするディレクトリを作成します。
# cd /tmp/eroot/tmp # mkdir initrd
- 圧縮されているinitrdを解凍し、マウントします。
# mv initrd-2.4.21-47.0.1.ELvmnix.img initrd-2.4.21-47.0.1.ELvmnix.img.gz # gunzip initrd-2.4.21-47.0.1.ELvmnix.img.gz # mount -o loop initrd-2.4.21-47.0.1.ELvmnix.img initrd
- initrd/etc/vmware ディレクトリに配置されている simple.map をエディタで開きます。
# cd initrd/etc/vmware # vi simple.map
- 「037e」で検索を行い、「037f」に書き換えて、保存します(書き換える場所は1ヶ所のみです)。
10de:037e 0000:0000 sata_nv.o ↓ 10de:037f 0000:0000 sata_nv.o
- /tmp/eroot/tmp ディレクトリに戻り、initrdをアンマウントします。そして、再び圧縮します。
# cd /tmp/eroot/tmp # umount initrd # gzip --best initrd-2.4.21-47.0.1.ELvmnix.img
- 最後に、initrdをbootパーティションに配置します。
# mv initrd-2.4.21-47.0.1.ELvmnix.img.gz /tmp/eboot/initrd-2.4.21-47.0.1.ELvmnix.img
そのほかのファイル書き換え
- ルートパーティション内にも、先ほどと同様に「037e」を「037f」に書き換える必要があるファイルがあるので、エディタで開いて書き換えを行います。いずれのファイルも書き換える場所は1ヶ所のみです。
# vi /tmp/eroot/etc/pci.ids # vi /tmp/eroot/etc/pci.xml.merged # vi /tmp/eroot/etc/pciid/sata_nv.xml
再起動、感動のフィナーレ
- 書き換えが全て済んだら、全てのESXパーティションをアンマウントして、再起動します。
# umount /tmp/eroot # umount /tmp/eboot
- 無事にESXサーバが起動したら、修正は成功です。
- なお、私自身、インストールに成功したまでで、まだ仮想マシンの追加などは試していません。また後日、仮想マシンの作成レポートが出来ればと思います。