仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

ML115 に ESX Server 3.5 をインストール

昨年から格安サーバとして大人気の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
    • sata_nv.xmlのみ、読み込み専用ファイルになっているため、「:wq!」として、強制保存します。

再起動、感動のフィナーレ

  • 書き換えが全て済んだら、全てのESXパーティションをアンマウントして、再起動します。
    # umount /tmp/eroot
    # umount /tmp/eboot
  • 無事にESXサーバが起動したら、修正は成功です。
  • なお、私自身、インストールに成功したまでで、まだ仮想マシンの追加などは試していません。また後日、仮想マシンの作成レポートが出来ればと思います。

参考ページ