原作: Martin Renters <martin@FreeBSD.org>
訳: 鈴木 康修 <yasu@hike.te.chiba-u.ac.jp>
netboot.com/netboot.rom によって、 ディスクのないクライアントでネットワーク経由で FreeBSD マシンのブートを行い FreeBSD を走らせることができます。 2.0 ではローカルなスワップを持つことができます。 NFS 経由のスワッピングもサポートされています。
サポートされているイーサネットカード: Western Digital/SMC 8003, 8013, 8216 とその互換ボード, NE1000/NE2000 とその互換カード (再コンパイルが必要)
サーバにするマシンを見つけます。 このマシンには、 FreeBSD 2.0のバイナリとbootpを 記憶するだけの十分なディスクスペースが必要です。 tftp と NFS も使えます。 テストしたマシン:
HP9000/8xx / HP-UX 9.04以降 (9.04以前では動きません)
Sun/Solaris 2.3. (bootpが必要)
クライアントにIP、gateway、netmaskを提供する bootpサーバをセットアップします。
diskless:\ :ht=ether:\ :ha=0000c01f848a:\ :sm=255.255.255.0:\ :hn:\ :ds=192.1.2.3:\ :ip=192.1.2.4:\ :gw=192.1.2.5:\ :vm=rfc1048:
クライアントにブート情報を提供する TFTP サーバを (bootp サーバと同じマシンに) セットアップします。 このファイルの名前は、 cfg.X.X.X.X (もしくは /tftpboot/cfg.X.X.X.X )で、 ここで X.X.X.X はクライアントの IP アドレスです。 このファイルの内容は netboot コマンドで有効です。 2.0では、 netboot は以下のようなコマンドを持ちます:
help | helpリストの表示 |
ip X.X.X.X |
クライアントのIPアドレスの表示/セット |
server X.X.X.X |
bootp/tftp サーバのアドレスの表示/セット |
netmask X.X.X.X |
netmaskの表示/セット |
hostname name | hostnameの表示/セット |
kernel name |
カーネル名の表示/セット |
rootfs ip:/fs |
root ファイルシステムの表示/セット |
swapfs ip:/fs |
swap ファイルシステムの表示/セット |
swapsize size |
diskless swapsize を KBytes単位でセット |
diskboot | ディスクからのブート |
autoboot | ブートプロセスの続行 |
trans on |off |
トランシーバのオン|オフ |
flags b c
d h s v |
ブートフラグの設定 |
完全にディスクレスな場合の一般的な cfg ファイルは以下のようになります:
rootfs 192.1.2.3:/rootfs/myclient swapfs 192.1.2.3:/swapfs swapsize 20000 hostname myclient.mydomain
ローカルに swap を持つマシンについては以下のようになります:
rootfs 192.1.2.3:/rootfs/myclient hostname myclient.mydomain
NFS サーバがクライアントにroot(必要ならswapも) ファイルシステムをexportしているか、 また、 クライアントがこれらのファイルシステムに ルートアクセスできるか確認します。 FreeBSDにおける一般的な /etc/exports ファイルは 以下のようになります:
/rootfs/myclient -maproot=0:0 myclient.mydomain /swapfs -maproot=0:0 myclient.mydomain
そして、 HP-UX側では以下のようになります:
/rootfs/myclient -root=myclient.mydomain /swapfs -root=myclient.mydomain
NFS経由でスワッピングを行う場合 (完全にディスクレスな場合の設定)、 クライアントが使用する swap ファイルを dd で作成します。 もし、 swapfs コマンドが上記の例のように 引数 /swapfsを持ちそのサイズが 20000 である場合、 myclientに対するスワップファイルは /swapfs/swap.X.X.X.X で呼び出されます。 ここで X.X.X.X はクライアントの IP アドレスです。 例:
# dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000
また、 スワッピングが開始されるとクライアントの スワップスペースはセンシティブな情報を含むようになるので、 不正なアクセスを防止するため、 このファイルへの 読み書きのアクセス制限がなされていることを確認して下さい:
# chmod 0600 /swapfs/swap.192.1.2.4
クライアントがそれぞれのrootファイルシステムとして使う ディレクトリにrootファイルシステムを展開します (上記の例では/rootfs/myclient)。
HP-UX システム: サーバはHP9000/800 シリーズのマシンで、 HP-UX 9.04 以降が必要です。 これ以前のバージョンでは NFS を経由するデバイスファイルが作成ができません。
/rootfs/myclient に /dev を 展開する際に、 いくつかのシステム (HPUX) では FreeBSD に合った デバイスファイルが作成されないので 注意してください。 その際には最初の起動時にシングルユーザモードに 移行して (ブートの段階でCtrl-Cを押す)、 /dev に移って sh ./MAKEDEV all として、 クライアントからこれを 修正してください。
クライアントで netboot.com を実行するか、 netboot.rom ファイルから EPROMを作成します。
今のところ、 これを行う公式に認められた方法はありませんが、 私はそれぞれのクライアントで /usr ファイルシステムと個々の / ファイルシステムを共有して使っています。 どなたかこれをきちんと行うやり方の提案がありましたら、 私に、 もしくは FreeBSD core team グループに知らせてください。
/sys/i386/boot/netboot/Makefile の中の設定を変更して コンパイルすることで、 netbootでNE1000/2000 カードをサポートします。 このファイルの先頭にあるコメントを見てください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で)
連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で)
送ってください。