PXEを使ってPCもディスクレスにしよう |
YAMAMORI Takenori ●yamamori |
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 コマンドを使用して, 同じサーバマシン上で試しに bpbatch や pxeboot ファイルを取得してみて,TFTPサーバの動作を確認するとよいでしょう.
以上の設定・確認をFreeBSD上で行なった場合の実行例を, 下に示します.
$ 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 ← ファイル比較して一致することを確認 |
tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot |