Debian編

tftpd32はWindowsXP以上限定のようでWindows2000ではうまく動かなかったので、Debianでやってみることにする。

TFTP ブートで Pre-boot Execution Environment (PXE) 法を使用するには、 tsizeをサポートする TFTP サーバが必要になります。 Debian GNU/Linux サーバでは、atftpd と tftpd-hpa がその資格があります。 tftpd-hpa をお奨めします。
フリーソフトウェアDHCP サーバのひとつに、 ISC の dhcpd があります。 Debian GNU/Linux では、dhcp3-server パッケージをお奨めします。

http://www.debian.org/releases/stable/i386/ch04s06.html.ja

Debianでの推奨はtftpd-hpaとdhcp3-serverらしい。

dhcp3-server

dhcp2系のオプションの"option-135"を使ったのが原因らしく、dhcp3ではdhcpd.confの先頭に「option option-135 code 135 = text;」 と書き足しておくと大丈夫みたいです。ちなみにこのオプションがないと、bpbatchが対話モードにならなくて撃沈。

http://nekojita.org/diary/20040710.html

というわけで、/etc/dhcp3/dhcpd.conf は以下のようにしてみた。

option option-135 code 135 = text;
option domain-name "localdomain";
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
allow booting;
allow bootp;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.150;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
#  option dhcp-class-identifier "PXEClient";
#  option vendor-encapsulated-options 01:04:00:00:00:00;
  filename "/bpbatch";
  next-server 192.168.1.2;
  option option-135 "-i";
}

tftpd-hpa

/etc/inet.confの設定はこんなだった。
なので、公開ディレクトリは/var/lib/tftpboot

% grep tftp /etc/inetd.conf
tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot