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

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

TFTP サーバをセットアップする必要があり、そして多くのマシンでは 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 では、isc-dhcp-server パッケージをお勧めします。 以下に、設定ファイルの例を示します。 (/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.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

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

dhcpd の設定ファイルの編集を終えたら、 /etc/init.d/isc-dhcp-server restartdhcpd を再起動してください。

4.3.2. TFTP サーバの立ち上げ

TFTP サーバの準備をする際に、まず、tftpd が有効であることを確認してください。

tftpd-hpa の場合には、サービスを走らせるのに 2 種類の方法があります。システムの inetd デーモンにより必要に応じて起動する方法と、独立したサーバとして起動する方法です。どちらにするかは、パッケージのインストール時や再設定時に選択できます。

[注記] 注記

歴史的に TFTP サーバは、 イメージを提供するディレクトリに /tftpboot を使用します。 しかし Debian GNU/Linux のパッケージでは、 Filesystem Hierarchy Standard を満たす別のディレクトリを使用する可能性があります。 例えば、tftpd-hpa では /srv/tftp をデフォルトで使用します。 必要に応じて、本節の設定例を調整してください。

Debian で利用できる in.tftpd の代替はすべて、デフォルトで TFTP リクエストをシステムログに出力します。いくつかは、出力を冗長にする -v 引数をサポートしています。ブート時に問題がある場合、エラーの原因を診断する出発点として、ログメッセージをチェックすることをお勧めします。

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

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

これを行わないと、SGI の 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 イメージを適切な場所に配置する

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

4.3.3.1. SGI の TFTP での起動

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