ae4bdfbd36
(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)
351 lines
10 KiB
Groff
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
|