VMware ESXiをPXEブートさせる
VMware ESXiをPXEブートで起動させて使う方法メモ.
使用したESXiのバージョンは4.0.
使用したサーバのOSはGentooとDebian.
まずDHCPサーバを用意する.
DHCPサーバはPXEブートさせる設定と同じで構わない.
こんな感じだろうか.
ノードを指定して起動したい場合はMACアドレスを記述すればいい.
allow booting;
allow bootp;
ddns-update-style none;
default-lease-time 3600;
max-lease-time 7200;
log-facility local7;subnet 192.168.254.0 netmask 255.255.255.0 {
range 192.168.254.2 192.168.254.250;
option broadcast-address 192.168.254.255;
option ip-forwarding off;
option dhcp-server-identifier 192.168.254.254;
next-server 192.168.254.254;
filename "pxelinux.0";
}
次にTFTPサーバを設定する.
TFTPサーバも基本的には普通のPXEブートの方法と同じだが、ESXiではmenu.c32を用いる必要がある.
mboot.c32をkernelで指定して,appendの行でESXi自身のファイルを渡す.
必須なのは,vmkboot.gzとvmk.gz,state.tgzくらいだろうか.
vmkboot.gzとvmk.gzはELF形式の実行ファイルで,state.tgzは/etc以下のファイルなどが格納されている.
ESXiの起動時にSSHを有効にしたり,rc.localに実行したいコマンドを記述してstate.tgzの中に放り込んでおけば幸せになれる.
TFTPの設定はこんな感じ.
default menu.c32
timeout 20
ontimeout esxilabel esxi
kernel mboot.c32
append vmkboot.gz --- vmk.gz --- sys.vgz --- cim.vgz --- oem.tgz --- license.tgz --- mod.tgz --- state.tgz
ipappend 2
menu.c32を使っているので,起動時にメニューが出る.
タイムアウトを設定しておかないと,メニュー画面で待ち続けるので,ontimeoutでタイムアウトを設定している.
appendの行の各ファイル間は−(ハイフン)3つなので注意.
ipappend 2はこれを指定していると
BOOTIF=<ブート-インターフェースの-ハードウェア-アドレス>
に置き換えられる.
これは,システムブートにかかるインタフェースを指定するオプション.
正しく設定していれば,これでESXiがPXEブートするはず,