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サーバのアドレス。
おわり。