doc/ja_JP.eucJP/man/man8/diskless.8
Kazuo Horikawa ae4bdfbd36 Update to 4.2-20001215-STABLE base
(following entries are not updated by this commit: crunchgen.1 groff.1
 grohtml.1 grolj4.1 grops.1 grotty.1 pic.1 troff.1 groff_font.5 magic.5
 groff_mm.7 re_format.7 disklabel.8)
2000-12-19 01:35:02 +00:00

351 lines
10 KiB
Groff

.\" %NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp %
.\"
.\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.6.2.1 2000/12/14 07:54:12 ru Exp %
.\"
.Dd October 2, 1994
.Dt DISKLESS 8
.Os
.Sh 名称
.Nm diskless
.Nd ネットワークを介してシステムをブートする
.Sh 解説
ネットワークを介してマシンをブートする能力は、
.Em diskless
もしくは
.Em dataless
マシンのためや、ローカルのファイルシステムの再インストールまたは
修復中に一時的に利用するために有用です。
このファイルは、クライアントがネットワークを介してブートする時に、
クライアントとサーバとの間で行われる通信の一般的な解説を提供します。
一般的な解説の後に、ディスクレスの Sun クライアントのためのサーバ設定
を行うための詳細な指示を説明します。
.Sh 操作
ネットワークを介してシステムをブートする時に、
クライアントとサーバの間で3フェーズのやりとりがあります:
.Pp
.Bl -tag -width 1.2 -compact
.It 1.
PROM (もしくはステージ 1 のブートストラップ) がブートプログラムを
読み込みます。
.It 2.
ブートプログラムがカーネルを読み込みます。
.It 3.
カーネルがルートを NFS マウントします。
.El
.Pp
これかの各フェーズについて、以降で詳しく記述します。
.Pp
フェーズ 1 では、 PROM がブートプログラムを読み込みます。
PROM の設計の種類はたくさんありますので、
このフェーズは本質的にマシンに依存しています。
Sun のマシンは
クライアントの
.Tn IP
アドレスを決定するために
.Tn RARP
を利用し、その後
.Tn RARP
リプライを送ったところからブートプログラムをダウンロードするために
.Tn TFTP
を使います。
HP 300 シリーズのマシンでは、ブートプログラムをダウンロードするために
.Tn HP リモートメンテナンスプロトコル
を利用します。
典型的なパーソナルコンピュータはネットワークブートプログラムを
ディスケットもしくはネットワークカードの特別な PROM をつかって読み込むかも
しれません。
.Pp
フェーズ 2 では、ブートプログラムがカーネルを読み込みます。
このフェーズの操作はブートプログラムの設計に依存します。
(ここで記述する設計は Sun と NetBSD/hp300 で使われているものです。)
ブートプログラムは以下を行います:
.Pp
.Bl -tag -width 2.2 -compact
.It 2.1
.Tn RARP
を使ってクライアントの IP アドレスを入手します。
.It 2.2
.Tn RPC / BOOTPARAMS / WHOAMI
要求をクライアントの IP アドレスとともにブロードキャストして、
クライアント名とサーバの
.Tn IP
アドレスを入手します。
.It 2.3
.Tn RPC / BOOTPARAMS / GETFILE
要求をクライアント名とともに使うことで、
クライアントのルートのサーバにおけるパスを入手します。
.It 2.4
クライアントのルートに対するサーバのパスを指定して
.Xr mountd 8
を呼ぶことで、ルートファイルハンドルを入手します。
.It 2.5
ルートファイルハンドル上で
.Tn NFS
ルックアップを呼ぶことで、カーネルのファイルハンドルを入手します。
.It 2.6
カーネルファイルハンドルに対して
.Tn NFS
読み出しをつかって、カーネルを読み込みます。
.It 2.7
カーネルのエントリポイントに制御を移します。
.El
.Pp
フェーズ 3 では、カーネルはルートを NFS マウントします。
カーネルは、ブートプログラムによって行われた多くの作業を繰り返します。
なぜなら、ブートプログラムが集めた情報をカーネルに受け渡す
標準的な方法が無いからです。
カーネルで利用される工程は以下のようなものです:
.Pp
.Bl -tag -width 2.2 -compact
.It 3.1
カーネルは、上記の 2.1 と 2.2 で記述されたのと同じ工程を使うことで、
ブートサーバを見付けます。
.It 3.2
カーネルは、上記の 2.3 から 2.5 で記述されたのと同じ工程を使うことで
ルートのための
.Tn NFS
ファイルハンドルを入手します。
.It 3.3
カーネルは、ルートディレクトリが最後に更新された時間を入手するために
.Tn NFS
属性入手機能 (getattr function) を呼び出し、システム時計を調べるために
これを使います。
.El
.Sh 設定
クライアントがネットワークを介してブートするためには、
サーバは正しく設定されていなければなりません。
この例では、 どのように Sun クライアントが設定されれば良いかを示します。
他のクライアントの設定も似たようなものです。
.Pp
クライアントのホスト名 (hostname) を "myclient"
と仮定します。
.Pp
.Bl -tag -width 2.1 -compact
.It 1.
.Pa /etc/ethers
に適切なクライアントのイーサネットアドレスのエントリを追加します:
.Bd -literal -offset indent -compact
8:0:20:7:c5:c7 myclient
.Ed
これは、
.Xr rarpd 8
が使用します。
.Pp
.It 2.
.Pa /etc/hosts
もしくは DNS データベースに myclient のための
IP アドレスを割り当てます:
.Bd -literal -offset indent -compact
192.197.96.12 myclient
.Ed
.Pp
.It 3.
Sun のマシンをブートする場合、
.Pa /tftpboot
ディレクトリで
.Xr tftpd 8
を実行するために
.Pa /etc/inetd.conf
が設定されているようにします。
.Pp
HP 300 シリーズのマシンをブートする場合、
ブートプログラムがクライアントに転送されるように
.Pa /etc/rbootd.conf
が正しく設定されているようにします。
エントリは以下のようになるでしょう:
.Bd -literal -offset indent -compact
08:00:09:01:23:E6 SYS_UBOOT # myclient
.Ed
.Pp
さらなる情報は、
.Xr rbootd 8
を参照して下さい。
.Pp
.It 4.
SPARC マシンをブートする場合、
(
.Pa /usr/mdec/boot
のような)
適当なディスクレスブートローダのコピーを
.Pa /tftpboot
ディレクトリにインストールします。
ブートプログラムが、16 進のクライアントの IP アドレスとドットと
アーキテクチャ名からなるファイル名 (全て英語の大文字) で
アクセスできるようにリンクを作成します。
例えば以下のようになります:
.Bd -literal -offset indent -compact
# cd /tftpboot
# ln -s boot C0C5600C.SUN4
.Ed
.Pp
Sun3 のマシンに対しては、この名前は C0C5600C となるようにします
(Sun3 の PROM はアーキテクチャ名を付加しません)。
使われる名前はアーキテクチャに依存します。
これは、単純にブートクライアントの PROM が何を望んでいるかに
一致させます。
クライアントの PROM が期待されるファイルを読み込むことに
失敗する場合には、
クライアントがどんなファイル名を読み込もうとしているのかを知るために
.Xr tcpdump 1
を使うことができます。
.Pp
HP 300 シリーズのマシンをブートする場合、
ネットワークブートプログラム
.Pa SYS_UBOOT
(これは、インストール前に
.Pa uboot.lif
から呼び出されます
) がディレクトリ
.Pa /usr/mdec/rbootd
にインストールされているようにします。
.It 5.
myclient をブートパラメータデータベース
.Pa /etc/bootparams
に追加します:
.Bd -literal -offset indent -compact
myclient root=server:/export/myclient/root
.Ed
.Pp
注: スワップファイルをマウント可能とするには、mountd が
.Fl r
フラグ付きで開始されていることを確認することが必要です。
.It 6.
myclient のためのスワップファイルを作成します:
.Bd -literal -offset indent -compact
# mkdir /export/myclient
# cd /export/myclient
# dd if=/dev/zero of=swap bs=16k count=1024
.Ed
ここでは、16 メガバイトのスワップファイルを作成しました。
.Pp
.It 7.
myclient の
.Pa /
ファイルシステムをサーバ上に作成します。
これがどのように行われるかはクライアントのアーキテクチャと
NetBSD ディストリビューションのバージョンに依存します。
サーバのルートファイルシステムをコピーし変更するように
単純であるか、おそらく標準バイナリディストリビューションから
これらのファイルを入手する必要があるかも知れません
.Pp
SunOS とはちがって、クライアントのスワップのためにマウントポイントを
作成する必要があることに注意が必要です:
.Bd -literal -offset indent -compact
# mkdir /export/myclient/root/swap
.Ed
.Pp
.It 8.
.Pa /etc/exports
にある必要とされるファイルシステムを公開します:
.Bd -literal -offset indent -compact
/usr -ro myclient
# for SunOS:
# /export/myclient -rw=myclient,root=myclient
# for NetBSD:
/export/myclient -maproot=root -alldirs myclient
.Ed
.Pp
サーバとクライアントが同じアーキテクチャである場合、
クライアントはサーバの
.Pa /usr
を共有することができます (これは上記のように実現します)。
そうでない場合、クライアントのための
.Pa /usr
パーティションを別の場所に正しく作成する必要があります。
.Pp
もしサーバが sparc の場合でクライアントが sun3 の場合、
.Pa /export/usr.sun3
を作成し中身も作り、その後以下の
.Pa /etc/exports
行を作成します:
.Bd -literal -offset indent -compact
/export/usr.sun3 -ro myclient
/export/myclient -rw=myclient,root=myclient
.Ed
.Pp
.It 9.
最低限、
.Pa /export/myclient/root
にある以下のファイルをコピーしカスタマイズします:
.Bd -literal -offset indent -compact
# cd /export/myclient/root/etc
# cp fstab.nfs fstab
# cp /etc/hosts hosts
# echo myclient > myname
# echo 192.197.96.12 > hostname.le0
.Ed
.Pp
上記の "le0" はクライアントがブートのために使う
ネットワークインタフェース名に置き換えなければなりません。
.Pp
.It 10.
クライアントの
.Pa /etc/fstab
(これはつまり
.Pa /export/myclient/root/etc/fstab
です)
にあるクリティカルなマウントポイントとスワップファイルを
正しく設定します。
つまり以下のようにします:
.Bd -literal -offset indent -compact
myserver:/export/myclient/root / nfs rw 0 0
myserver:/usr /usr nfs rw 0 0
myserver:/export/myclient/swap none swap sw,nfsmntpt=/swap
.Ed
.Pp
.Pa /etc/fstab
にスワップファイルを指定しなければならないことに注意してください。
指定しないとスワップが使用されません。
.El
.Sh 関連ファイル
.Bl -tag -width /usr/mdec/rbootd -compact
.It Pa /etc/ethers
わかっているクライアントのイーサネットアドレス
.It Pa /etc/bootparams
クライアントのルートパス名
.It Pa /etc/exports
公開された NFS マウントポイント
.It Pa /etc/rbootd.conf
HP リモートブートデーモンのための設定ファイル
.It Pa /tftpboot
Sun PROM によって読み込まれるブートプログラムの場所
.It Pa /usr/mdec/rbootd
HP ブート ROM によって読み込まれるブートプログラムの場所
.El
.Sh 関連項目
.Xr bootparams 5 ,
.Xr ethers 5 ,
.Xr exports 5 ,
.Xr bootparamd 8 ,
.Xr mountd 8 ,
.Xr nfsd 8 ,
.Xr rarpd 8 ,
.Xr rbootd 8 ,
.Xr reboot 8 ,
.Xr tftpd 8