FreeBSDのぺいじ
PXEでブートさせる
FreeBSD 5.0-currentに付いているブートローダーはPXEに対応しています。
TFTPかNFSを使ってネットブートさせることが出来ます。
カーネルは4.0-RELEASEでも5.0-CURRENTでも起動するようです。
デフォルトのpxebootはNFSに対応していますが、ここではTFTPを使います。
1. TFTP対応のpxebootのコンパイル
FreeBSD 5.0 currentのソースを取ってきておきます。
/usr/src/sys/boot/i386/loader/MakefileのLOADER_NFS_SUPPORTをはずし、
LOADER_TFTP_SUPPORTを入れます。まだNFSとTFTPを同時に使うことは出来ない
ようです。
#CFLAGS+= -DLOADER_NFS_SUPPORT
CFLAGS+= -DLOADER_TFTP_SUPPORT
/etc/make.confに
NOFORTH=YES
を加えておきます。
/usr/src/bootでmakeします。
# cd /usr/src/boot
# make clean
# make
# make install
pxebootのバイナリはここ
2. TFTPサーバの設定
/etc/inetd.confでtftpを使えるようにしておきます。
次のファイルを用意して、/tftpboot/に入れます。
pxeboot <- 1.で作ったもの
kernel.gz <- ブートさせたいカーネル
mfsroot.gz <- MFSROOTのイメージ
boot/loader.rc <- 起動の設定ファイル
loader.rcはこのように書きます。
-------------------
echo Loading kernel...
load /kernel
echo Loading mfsroot...
load -t mfs_root /mfsroot
autoboot 5
--------------------
3. DHCP Serverの設定
ISCのdhcpの設定ファイル(/etc/dhcpd.conf)
----------------------------------
max-lease-time 120;
default-lease-time 120;
subnet 192.168.126.0 netmask 255.255.255.0 {
# option routers 192.168.126.1;
option domain-name "hogehoge.or.jp";
option broadcast-address 192.168.126.255;
option domain-name-servers 192.168.114.8;
pool {
range 192.168.126.153 192.168.126.157;
allow unknown clients;
next-server 192.168.126.3;
filename "pxeboot";
}
}
--------------------------------------------
next-serverはTFTPサーバのアドレス。
おわり。