265 lines
7.9 KiB
Groff
265 lines
7.9 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
|
|
.\" Updated by Luigi Rizzo
|
|
.\" 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.8 2002/02/15 06:35:46 luigi Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd April 18, 2001
|
|
.Dt DISKLESS 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm diskless
|
|
.Nd ネットワークを介してシステムをブートする
|
|
.Sh 解説
|
|
ネットワークを介してマシンをブートする能力は、
|
|
.Em diskless
|
|
もしくは
|
|
.Em dataless
|
|
マシンのためや、ローカルのファイルシステムの再インストールまたは
|
|
修復中に一時的に利用するために有用です。
|
|
このファイルは、クライアントがネットワークを介してブートする時に、
|
|
クライアントとサーバとの間で行われる通信の一般的な解説を提供します。
|
|
.Sh 操作
|
|
ネットワークを介してシステムをブートする時に、
|
|
クライアントとサーバの間で 3 フェーズのやりとりがあります:
|
|
.Pp
|
|
.Bl -enum -compact
|
|
.It
|
|
ステージ 1 のブートストラップがブートプログラムを
|
|
読み込みます。
|
|
.It
|
|
ブートプログラムがカーネルを読み込みます。
|
|
.It
|
|
カーネルがルートを NFS マウントします。
|
|
.El
|
|
.Pp
|
|
これらの各フェーズについて、以降で詳しく記述します。
|
|
.Pp
|
|
フェーズ 1 では、ステージ 1 のブートストラップコードが
|
|
ブートプログラムを読み込みます。このブートプログラムは、
|
|
普通ネットワークカードを制御できます。
|
|
ブートプログラムを、BIOS や、ネットワークカード上の BOOT ROM
|
|
(PXE, etherboot, netboot) に格納することもできます。また、
|
|
ディスクユニット (etherboot, netboot 等) からロードさせることもできます。
|
|
.Pp
|
|
フェーズ 2 では、ブートプログラムがカーネルを読み込みます。
|
|
このフェーズの操作はブートプログラムの設計に依存します。
|
|
普通、ブートプログラムは
|
|
.Tn BOOTP
|
|
プロトコルまたは
|
|
.Tn DHCP
|
|
プロトコルを用い、クライアントの IP アドレスと
|
|
その他のブート情報を取得します。ブート情報は、
|
|
NFS サーバ、ルータ、ネームサーバの IP アドレス、
|
|
ロードするカーネル名を含みます (これに限らず他の情報が含まれる
|
|
こともあります)。
|
|
その後、カーネルがロードされます。これには、
|
|
(etherboot や netboot の場合のように) NFS を使って直接ロードされる場合と、
|
|
pxeboot と呼ばれる中間ローダを通じて、TFTP や NFS を使ってロードされる
|
|
場合とがあります。
|
|
.Pp
|
|
フェーズ 3 では、カーネルが DHCP や BOOTP を用いて設定情報を獲得し、
|
|
ルートファイルシステムのマウントに進み、動作を開始します。
|
|
ディスクレスシステムの開始処理中に行なわれるいくつかの動作は、
|
|
.Pa /etc/rc.diskless1
|
|
と
|
|
.Pa /etc/rc.diskless2
|
|
とに列挙されています。
|
|
.Sh 設定
|
|
ディスクレスクライアントを実行させるためには、次に示すものが必要です。
|
|
.Bl -bullet
|
|
.It
|
|
NFS サーバ。これは、適切なパーミッションを付けて
|
|
ルートパーティションと /usr パーティションをエクスポートします。
|
|
いくつかのシステムファイルにアクセスできるようにするために、
|
|
ルートパーティションが
|
|
.Fl maproot Ns =0
|
|
でエクスポートされている限り、
|
|
スクリプト
|
|
.Pa rc.diskless{1,2}
|
|
は読み込み専用パーミッションで動作します。
|
|
例として
|
|
.Pa /etc/exports
|
|
は次に示す行を含みます。
|
|
.Bd -literal -offset indent
|
|
<ROOT> -maproot=0 -alldirs <list of diskless clients>
|
|
/usr -alldirs <list of diskless clients>
|
|
.Ed
|
|
.Pp
|
|
ここで
|
|
.Aq ROOT
|
|
は、ルートパーティションのサーバ上でのマウントポイントです。
|
|
スクリプト
|
|
.Pa /usr/share/examples/diskless/clone_root
|
|
を使い、共用可能な読み込み専用ルートパーティションを
|
|
生成することができます。
|
|
しかし、同様に、サーバ自身が使用するルートディレクトリを
|
|
(読み込み専用で) エクスポートさせると決めることもできます。
|
|
.It
|
|
.Tn BOOTP
|
|
または
|
|
.Tn DHCP
|
|
サーバ。
|
|
.Xr bootpd 8
|
|
は
|
|
.Pa /etc/inetd.conf
|
|
の
|
|
.Em bootps
|
|
行のコメントを外すことで使用可能にすることができます。
|
|
.Pa /etc/bootptab
|
|
の例は次のようになります。
|
|
.Bd -literal -offset indent
|
|
.default:\\
|
|
hn:ht=1:vm=rfc1048:\\
|
|
:sm=255.255.255.0:\\
|
|
:sa=<SERVER>:\\
|
|
:gw=<GATEWAY>:\\
|
|
:rp="<SERVER>:<ROOT>":
|
|
|
|
<CLIENT>:ha=0123456789ab:tc=.default
|
|
.Ed
|
|
.Pp
|
|
.Aq SERVER ,
|
|
.Aq GATEWAY ,
|
|
.Aq CLIENT
|
|
の意味は明らかでしょう。
|
|
.Pp
|
|
.It
|
|
正しく初期化されたルートパーティション。
|
|
サーバのルートパーティションを参照して、スクリプト
|
|
.Pa /usr/share/examples/diskless/clone_root
|
|
を使用すれば、作成に役立つでしょう。
|
|
.Pp
|
|
ルートとしてエクスポートされるパーティション上にディレクトリ
|
|
.Pa /conf/base/etc
|
|
を作成し、ここに
|
|
.Pa /etc
|
|
の内容のコピーを置きます。
|
|
.Pa /conf/base/etc
|
|
中のファイルとサブディレクトリが、ディスクレス環境の
|
|
.Pa /etc
|
|
メモリファイルシステムのブートストラップとして使用されます。
|
|
.Pp
|
|
更に、
|
|
.Pa /etc
|
|
中のファイルに対するネットワーク毎またはホスト毎のグローバル上書き設定は、
|
|
.Pa /conf/${i}/etc
|
|
ディレクトリを作成することにより、可能となります。
|
|
ここで、
|
|
.Va i
|
|
は、文字列 "default"、
|
|
クライアントの
|
|
サブネットブロードキャストアドレス、またはクライアントの
|
|
IP アドレスです。
|
|
.Pp
|
|
.Pa /etc/rc
|
|
の主要な部分の実行 (これには、
|
|
.Pa rc.conf
|
|
の読み込みも含まれます)
|
|
の前に、
|
|
.Pa /etc/rc.diskless.1
|
|
によって、ファイルが
|
|
上に記したディレクトリから
|
|
.Pa /etc
|
|
にコピーされ (
|
|
.Pa /etc
|
|
にあったそれ以前の内容は上書きされます)、
|
|
最も汎用のものから開始されます。
|
|
.Pp
|
|
最低でも、
|
|
.Pa /conf/default/etc/fstab
|
|
に次の内容を含める必要があります。
|
|
.Bd -literal -offset indent
|
|
<SERVER>:<ROOT> / nfs ro 0 0
|
|
<SERVER>:/usr /usr nfs ro 0 0
|
|
proc /proc procfs rw 0 0
|
|
.Ed
|
|
.Pp
|
|
また、
|
|
.Pa /conf/default/etc/rc.conf
|
|
を変更し、ディスクレスクライアント用のスタートアップオプションを
|
|
含むようにしたバージョンを用意する必要もあります。
|
|
.Pp
|
|
スタートアップコードで既に設定されているため、
|
|
.Va hostname
|
|
や
|
|
.Va ifconfig_*
|
|
を
|
|
.Pa rc.conf
|
|
に指定する必要はまずないでしょう。
|
|
一方、サーバのローカルスタートアップファイルを使用しないようにするため、
|
|
.Va local_startup Ns = Ns Qq
|
|
を設定する必要があるでしょう。
|
|
最後になりますが、
|
|
複数のディスクレスクライアントで同じ設定ファイルを共有する場合、
|
|
.Li `hostname`
|
|
の値をスイッチ変数に使う
|
|
.Ic case
|
|
文を用いて、
|
|
マシン固有の設定を行なうようにすると良いかもしれません。
|
|
.Pp
|
|
.It
|
|
NFS または TFTP でロードされるディスクレスクライアント用のカーネル。
|
|
これには、少なくとも次のオプションを含めておきます。
|
|
.Bd -literal -offset indent
|
|
options MFS
|
|
options BOOTP
|
|
options BOOTP_NFSROOT
|
|
options BOOTP_COMPAT
|
|
.Ed
|
|
.Pp
|
|
ファイアウォールを使用する場合、デフォルトをオープンにしておかねば
|
|
ならないことは覚えておいて下さい。オープンにしておかないと、
|
|
カーネルで bootp パケットの読み書きができなくなります。
|
|
.El
|
|
.Sh セキュリティ上の問題
|
|
暗号化されない NFS を使用してルートパーティションと
|
|
ユーザパーティションをマウントすると、暗号化キーなどの
|
|
情報が洩れるかもしれないことに注意して下さい。
|
|
.Sh バグ
|
|
このマニュアルページはおそらく不完全です。
|
|
.Pp
|
|
.Fx
|
|
はときどきルートパーティションに書き込みを要求します。
|
|
ですから、スタートアップスクリプトでは、元の内容を保存する間、
|
|
MFS ファイルシステムをいくつかの位置 (
|
|
.Pa /etc
|
|
や
|
|
.Pa /var
|
|
など) に
|
|
マウントします。この処理はすべての場合を扱えないかもしれません。
|
|
.Sh 関連項目
|
|
.Xr ethers 5 ,
|
|
.Xr exports 5 ,
|
|
.Xr bootpd 8 ,
|
|
.Xr mountd 8 ,
|
|
.Xr nfsd 8 ,
|
|
.Xr pxeboot 8 ,
|
|
.Xr reboot 8 ,
|
|
.Xr tftpd 8 ,
|
|
.Xr ports/net/etherboot
|