基礎となる考え方は以下の通りです。PC は、IP アドレスをブートサーバーから bootp プロトコルによって入手します。この時、IP アドレスの初期値は 0.0.0.0 であり、カーネルは tftp プロトコルを用いて入手します。
セグメントを超えて(ルーターを通して)起動するというのは一筋縄 でいくことではありません。そこで、 サーバーとディスク無し機を同じネットワークセグメントに設定するか、サー バーの位置を特定するためにあなたのルーターのヘルパー UDP アドレスを設 定して下さい。詳しくはルーターの製品情報を参照してください
以上を行うには、以下の手続きを参照して下さい。
まず、nfsブートパッケージを入手して下さい(手近な Linux ミラーサイトの
the /pub/Linux/system/Linux-boot
ディレクトリーに有ります)。このパッケー
ジには WD8013 用の起動 EPROM イメージが有り、そのまま ROM ライターで焼くこと
ができます。
PC の準備には他の方法もあります。
このイメージは bootp と tftp クライアントを持っています。他に、 Linux のカーネルを用意しなければなりません。このカーネルは nfs-root オプション付きで構築されていなければなりません。
patch(1) を参照してください
bootpd は、bootpd-2.4.tar.gz
に入っています(場所は、Linux ミラーサイトの
/pub/Linux/system/Network/boot.net
ディレクトリです)。パッケージを入
手したらコンパイルし、組み込んで下さい。もし、サーバー側の Unix が Slackware
ならば、bootpd ははじめから組み込まれていますのでこの手順は無視してくだ
さい。デーモンは、コマンドラインから起動することができます。
bootpd -s
あるいは、inetd からも起動できます
# tftp dgram udp wait root /usr/sbin/in.tftpd tftpd /export
# bootps dgram udp wait root /usr/sbin/in.bootpd bootpd
bootps 67/tcp # BOOTP server
tftp 69/udp # TFTP server
kill -HUP <process id of inetd>.
とにもかくにも、bootptab という名前のファイルを bootpd のために用意する ことから始めます。このファイルは普通は/etcに置かれます。構成を行うた めにこのファイルを編集してゲートウェイ、DNS サーバーの IP アドレス、およ びディスクレス機の Ethernet アドレスを記述しなければなりません。例を あげると:
global.prof:\
:sm=255.255.255.0:\
:ds=192.168.1.5:\
:gw=192.168.1.19:\
:ht=ethernet:\
:bf=linux:
machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:
ここで globa.prof は、ホスト記述用の雛形です(訳注:この後に続く 個々の機械に共通の事項を記述します)。また、
それぞれ記述します。
TFTP (Trivial File Transfer Protocol)は FTP と同様なファイル転送プロト コルです。しかし、このプロトコルは EPROM に焼き込めるくらい単純化されて います。 TFTP には2つの用途が有ります
/export/root/machine1
をもっています。/export を新しいルートと
して secure TFTP を使用する場合は、/export が / になるため、hd は /root/machine1
になります。
Slackware ならばパッケージ a、ap、n および x などが使用されることでしょ う。もちろん、もっとインストールしてもかまいません。しかし、ディ スクレス X 端末ならば上記の構成でも十分です。導入を行うためには 実動状態にある Linux が必要です。リモートマシン(訳注:ディスクレス機に ブート機能を提供する機械。この場合は SunOS 機)上に、ある程度のディ スク領域を確保し、ネットワークから読み書きできるよう export します。 export したディレクトリを(訳注:実動状態の Linux 機の)適当な場所 (例えば /mnt)にマウントします。そうして、導入先を / ではなく /mnt として(訳注: Linux 機の)setup ユーティリティーを使 用します。そうして先にあげたパッケージを導入して下さい。ディスク レス機を一台しか使用しないならばこのままで結構です。もし、2台 以上の Linux 機をディスクレスとして使用したいなら、このままではだ めです。ファイルやディレクトリーの中にはディスクレス機毎に固有の 情報を持つものがあるためです。この問題は /usr(このディレクトリは 機械固有情報を持っていない)を別の場所に移動し、おのおののディス クレス機にサブディレクトリを用意することによって解決できます。 たとえば、/export/linux/machine1 が /mnt にマウントされている場合、 最初の設定の後、ディレクトリ構造は以下のようになっています。
/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/machine1/usr
変更後は、以下のようになります。
/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/usr
ここで、おのおののディスクレス機用にサブディレクトリを用意します。 ディスクレス機がそれぞれ machine1,、machine2、machine3 等と呼ばれていると 仮定します。この場合、それぞれのディスクレス機の設定用に次のような bash スクリプトを使えます。
cd /export/linux
for x in machine2 machine3 ; do
mkdir $x; cd $x
(cd ../machine1; tar cf - *) | tar xvf -
done
Then do the following export:
そうして、以下の export を行います。
この作業を行うには以下の記述を見てください
書式は SunOS 4.1.3 の export ファイルのものです。
# This file is /etc/export
# for remote linux X terminals by Buci
# this line is only once
/export/root/usr -access=linuxnet
# these lines once for every host
/export/root/machine1 rw=machine1,root=machine1
/export/root/machine2 rw=machine2,root=machine2
/export/root/machine3 rw=machine3,root=machine3
exportfs -a を走らせることを忘れないで下さい。
さて、TFTP サーバーを構成する番です。secure TFTP を使う必要が無いので あれば話は簡単で、クライアントは /export ディレクトリーから起動します。
secure TFTPを使用する場合には、/tftpboot の下に /export/linux ディレクトリーを 作る(カーネルは一つ持ち、他のマシンようにはそのカーネルへの リンクを張る)か、/exportをsecure TFTP の起動ディレクトリーとします。あるいは、 別々の tftpboot ディレクトリを使用するな場合はカーネルを一つだけもち、 他のマシン用に(訳注:このカーネルへの)リンクをはります。設定を行うには 以下のように記述します。
mkdir -p /tftpboot/export/linux/machine1
cd /tftpboot/export/linux/machine1
cp /export/linux/machine1/<name of the kernel> .
Then type the following:
そして以下のように入力してください。
mkdir -p /tftpboot/export/linux/machine2
cd ../machine2
ln -s ../machine2/<name of the kernel>
最後に、
/sbin/mount nfs_server:/export/linux/usr /usr
を、
/export/linux/<machinex>/etc/rc.d/rc.S
の先頭に追加します
ここで <machinex> は machine1、machine2、等をあらわします。