PXEを使ってPCもディスクレスにしよう

YAMAMORI Takenori ●yamamori

●TFTPサーバの設定

TFTPで転送されるブートローダとして必要なファイルは, BpBatchの場合はbpb-exeのアーカイブに含まれる,


bpbatch.P, bpbatch.ovl, bpbatch.hlp   

の3つです.
ただし,この中のbpbatch.Pについては, うしろの「.P」を取り除いたbpbatchというファイル名にリネームしておく 必要があります. (これは,TFTPサーバとして通常のtftpdを使用するための一種のハックで,.P を付けたままの場合はバッファサイズを大きくした特殊な TFTPサーバが使われるようになります)

一方,FreeBSD で pxeboot を使う場合は,FreeBSDがインストールされたマシンの /boot 以下に存在する pxeboot というファイルを使います.

これらのファイルはブートサーバ上の /tftpboot ディレクトリ以下に配置し, nobody権限でも読めるパーミッションにしておきます.

TFTPサーバの tftpd は inetd モードで起動されますが, /etc/inetd.conf の中の tftp の記述は,デフォルトでは '#' でコメントアウトされているはずです. そこで,このコメントアウトを解除してから inetd に HUPシグナルを送って設定を反映します.

TFTPサーバの設定ができたら, TFTPクライアントの,tftp コマンドを使用して, 同じサーバマシン上で試しに bpbatchpxeboot ファイルを取得してみて,TFTPサーバの動作を確認するとよいでしょう.

以上の設定・確認をFreeBSD上で行なった場合の実行例を, 下に示します.


●TFTPの設定と確認(pxeboot を使う場合)

$ su
Password:
# umask 22
# mkdir /tftpboot
# cp -p /boot/pxeboot /tftpboot       ← pxebootを配置
# chmod 444 /tftpboot/pxeboot         ← nobody権限でも読めるように
# vi /etc/inetd.conf                  ← tftpのコメントアウトを外す(下参照)
# kill -HUP `cat /var/run/inetd.pid`  ← inetdに設定を反映させる
# exit
$ cd /tmp
$ tftp                                ← TFTPクライアントコマンドを起動
tftp> connect localhost
tftp> get pxeboot                     ← 試しにpxebootファイルを取得
Received 166473 bytes in 0.1 seconds
tftp> quit

$ cmp pxeboot /tftpboot/pxeboot       ← ファイル比較して一致することを確認

/etc/inetd.conf の中のtftpの記述(FreeBSDでの例)

tftp   dgram   udp     wait    nobody  /usr/libexec/tftpd      tftpd /tftpboot

To『PXEを使ってPCもディスクレスにしよう』[index]


このページは、技術評論社 「パワーアップFreeBSD」および SoftwareDesign 2000年10月号、11月号『PXEによるネットワークブート設定術』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 [Home]
yamamori