4.3. TFTP ネットブート用ファイルの準備

インストール対象のマシンが LAN に接続されている場合、 TFTP を用いると、そのマシンをネットワーク越しに他のマシンから起動できます。 インストールシステムを別のマシンから起動するには、 その「別のマシン」の特定の場所に起動ファイルを置き、 またインストール対象のマシンの起動をサポートするよう 設定しなければなりません。

設定が必要なのは TFTP サーバです。 また多くのマシンでは BOOTP サーバ 、DHCP サーバ のいずれかの設定が必要です。

DHCP (Dynamic Host Configuration Protocol) は、 BOOTP との後方互換性を保ちつつ、より柔軟に拡張させたものです。 システムによっては DHCP でしか設定できないこともあります。

Trivial File Transfer Protocol (TFTP) は、 ブートイメージをクライアントに提供するために用います。 理論的には、どんなサーバでも、どんなプラットフォームでも、 これらのプロトコルを実装してさえいれば利用できます。 この節では、SunOS 4.x, SunOS 5.x (Solaris), GNU/Linux での例を示します。

4.3.1. DHCP サーバの設定

フリーソフトウェアの DHCP サーバのひとつは、 ISC の dhcpd です。 Debian GNU/Linux では、これは dhcp パッケージに入っています。 次に示すのは、dhcp の設定ファイル (普通は /etc/dhcpd.conf) の例です。

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB; 
  fixed-address 192.168.1.90;
}

注: 新しい(そして好ましい) dhcp3 パッケージは /etc/dhcp3/dhcpd.conf を使用します。

この例では、"servername" というサーバがひとつあり、 DHCP サーバ, TFTP サーバ, ネットワークゲートウェイの仕事をすべて行っています。 domain-name オプション、サーバ名、クライアントのハードウェアアドレスは、 必ず変更する必要があります。 "filename" オプションは TFTP 経由で取得するファイルの名前です。

dhcpd の設定ファイルの編集を終えたら、 /etc/init.d/dhcpd restart によって dhcpd を再起動してください。

4.3.2. TFTP サーバの立ち上げ

TFTP サーバを立ち上げるには、 まず tftpd が有効になっているか確認します。 /etc/inetd.conf に次のような行があればおそらく大丈夫です。

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

Debian パッケージは一般的にインストールする際、 デフォルトで正しくセットアップできます。

/etc/inetd.conf を見て、in.tftpd の引数に与えられているディレクトリを覚えてください。 後でこのディレクトリを使います。 in.tftpd のバージョンによっては、 -l 引数をつけると、 すべての要求をシステムログに記録できます。 これは起動エラーの診断に有用です。 /etc/inetd.conf を変更したら、 変更したことを inetd に伝えなければなりません。 Debian マシンでは /etc/init.d/inetd reload を実行します。 他のマシンでは、inetd のプロセス ID を見つけて、 kill -HUP inetd-pid を実行します。

SGI マシンに Debian をインストールする際、 TFTP サーバが Linux 2.4 で動作している GNU/Linux の場合は、 次の設定を行う必要があります。

# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

これを行わないと、Indy の PROM はカーネルをダウンロードできません。 さらに、TFTP パケットのソースポートは 32767 以上であってはいけません。 さもないと最初のパケットを受信しただけでダウンロードが停止します。 この PROM のバグに引っかかるのも Linux 2.4.X です。 これを避けるには

# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

を実行し、Linux TFTP サーバが用いるポートの範囲を調整してください。

4.3.3. TFTP イメージを適切な場所に配置する

次に行うことは、 項4.2.1. 「どこで インストールイメージを探すか」 の記述にある、必要な TFTP ブートイメージを、 tftpd のブートイメージディレクトリに置く作業です。 このディレクトリは普通 /tftpboot です。 tftpd が特定のクライアントの起動に用いるファイルへのリンクを、 ここに作らなければなりません。 残念ながら、ファイルの名前は TFTP クライアントによって決まり、 強制力のある標準は存在しません。

4.3.3.1. SGI Indys TFTP ブート

SGI Indy では、TFTP ファイルの名前の指定を bootpd に行わせることができます。 これは /etc/bootptabbf= に指定するか、 /etc/dhcpd.conffilename= オプションに指定します。

4.3.3.2. Broadcom BCM91250A TFTP ブート

CFE にロードするファイルのフルパスを渡しているため、 特殊な DHCP の設定をする必要はありません。