diff --git a/ja_JP.eucJP/man/man8/diskless.8 b/ja_JP.eucJP/man/man8/diskless.8 index 5adfe6300c..10c05c3cb8 100644 --- a/ja_JP.eucJP/man/man8/diskless.8 +++ b/ja_JP.eucJP/man/man8/diskless.8 @@ -1,343 +1,213 @@ .\" %NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp % +.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.6.2.3 2001/04/20 23:15:25 luigi 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.2 2000/12/29 10:18:06 ru Exp % .\" -.Dd October 2, 1994 +.Dd April 18, 2001 .Dt DISKLESS 8 .Os .Sh 名称 .Nm diskless .Nd ネットワークを介してシステムをブートする .Sh 解説 ネットワークを介してマシンをブートする能力は、 .Em diskless もしくは .Em dataless マシンのためや、ローカルのファイルシステムの再インストールまたは 修復中に一時的に利用するために有用です。 このファイルは、クライアントがネットワークを介してブートする時に、 クライアントとサーバとの間で行われる通信の一般的な解説を提供します。 -一般的な解説の後に、ディスクレスの Sun クライアントのためのサーバ設定 -を行うための詳細な指示を説明します。 .Sh 操作 ネットワークを介してシステムをブートする時に、 クライアントとサーバの間で 3 フェーズのやりとりがあります: .Pp .Bl -enum -compact .It -PROM (もしくはステージ 1 のブートストラップ) がブートプログラムを +ステージ 1 のブートストラップがブートプログラムを 読み込みます。 .It ブートプログラムがカーネルを読み込みます。 .It カーネルがルートを NFS マウントします。 .El .Pp -これかの各フェーズについて、以降で詳しく記述します。 +これらの各フェーズについて、以降で詳しく記述します。 .Pp -フェーズ 1 では、PROM がブートプログラムを読み込みます。 -PROM の設計の種類はたくさんありますので、 -このフェーズは本質的にマシンに依存しています。 -Sun のマシンは -クライアントの -.Tn IP -アドレスを決定するために -.Tn RARP -を利用し、その後 -.Tn RARP -リプライを送ったところからブートプログラムをダウンロードするために -.Tn TFTP -を使います。 -HP 300 シリーズのマシンでは、ブートプログラムをダウンロードするために -.Tn HP リモートメンテナンスプロトコル -を利用します。 -典型的なパーソナルコンピュータはネットワークブートプログラムを -ディスケットもしくはネットワークカードの特別な PROM をつかって読み込むかも -しれません。 +フェーズ 1 では、ステージ 1 のブートストラップコードが +ブートプログラムを読み込みます。このブートプログラムは、 +普通ネットワークカードを制御できます。 +ブートプログラムを、BIOS や、ネットワークカード上の BOOT ROM +(PXE, etherboot, netboot) に格納することもできます。また、 +ディスクユニット (etherboot, netboot 等) からロードさせることもできます。 .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 +普通、ブートプログラムは +.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 設定 -クライアントがネットワークを介してブートするためには、 -サーバは正しく設定されていなければなりません。 -この例では、 どのように Sun クライアントが設定されれば良いかを示します。 -他のクライアントの設定も似たようなものです。 -.Pp -クライアントのホスト名 (hostname) を "myclient" -と仮定します。 -.Pp -.Bl -enum -.It -.Pa /etc/ethers -に適切なクライアントのイーサネットアドレスのエントリを追加します: -.Bd -literal -offset indent -compact -8:0:20:7:c5:c7 myclient -.Ed -これは、 -.Xr rarpd 8 -が使用します。 -.It -.Pa /etc/hosts -もしくは DNS データベースに myclient のための -IP アドレスを割り当てます: -.Bd -literal -offset indent -compact -192.197.96.12 myclient -.Ed -.It -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 -を参照して下さい。 +.Bl -bullet -compact .It -SPARC マシンをブートする場合、 -( -.Pa /usr/mdec/boot -のような) -適当なディスクレスブートローダのコピーを -.Pa /tftpboot -ディレクトリにインストールします。 -ブートプログラムが、16 進のクライアントの IP アドレスとドットと -アーキテクチャ名からなるファイル名 (全て英語の大文字) で -アクセスできるようにリンクを作成します。 -例えば以下のようになります: -.Bd -literal -offset indent -compact -# cd /tftpboot -# ln -s boot C0C5600C.SUN4 +NFS サーバ。これは、適切なパーミッションを付けて +ルートパーティションと /usr パーティションをエクスポートします。 +いくつかのシステムファイルにアクセスできるようにするために、 +ルートパーティションが -maproot=0 でエクスポートされている限り、 +スクリプト rc.diskless{1,2} は読み込み専用パーミッションで動作します。 +例として +.Pa /etc/exports +は次に示す行を含みます。 +.Bd -literal -offset indent + -maproot=0 -alldirs +/usr -alldirs .Ed .Pp -Sun3 のマシンに対しては、この名前は C0C5600C となるようにします -(Sun3 の PROM はアーキテクチャ名を付加しません)。 -使われる名前はアーキテクチャに依存します。 -これは、単純にブートクライアントの PROM が何を望んでいるかに -一致させます。 -クライアントの PROM が期待されるファイルを読み込むことに -失敗する場合には、 -クライアントがどんなファイル名を読み込もうとしているのかを知るために -.Xr tcpdump 1 -を使うことができます。 +ここで は、ルートパーティションのサーバ上でのマウントポイントです。 +スクリプト +.Pa /usr/share/examples/diskless/clone_root +を使い、共用可能な読み込み専用ルートパーティションを +生成することができます。 +しかし、同様に、サーバ自身が使用するルートディレクトリを +(読み込み専用で) エクスポートさせると決めることもできます。 .Pp -HP 300 シリーズのマシンをブートする場合、 -ネットワークブートプログラム -.Pa SYS_UBOOT -(これは、インストール前に -.Pa uboot.lif -から呼び出されます -) がディレクトリ -.Pa /usr/mdec/rbootd -にインストールされているようにします。 .It -myclient をブートパラメータデータベース -.Pa /etc/bootparams -に追加します: -.Bd -literal -offset indent -compact -myclient root=server:/export/myclient/root +bootp または dhcp サーバ。bootpd は +.Pa /etc/inetd.conf +の +.Pa bootps +行のコメントを外すことで使用可能にすることができます。 +.Pa /etc/bootptab +の例は次のようになります。 +.Bd -literal -offset indent + .default:\ + hn:ht=1:vm=rfc1048:\ + :sm=255.255.255.0:\ + :sa=:\ + :gw=:\ + :rp=":": + +:ha=0123456789ab:tc=.default .Ed .Pp -注: スワップファイルをマウント可能とするには、mountd が -.Fl r -フラグ付きで開始されていることを確認することが必要です。 -.It -myclient のためのスワップファイルを作成します: -.Bd -literal -offset indent -compact -# mkdir /export/myclient -# cd /export/myclient -# dd if=/dev/zero of=swap bs=16k count=1024 -.Ed -ここでは、16 メガバイトのスワップファイルを作成しました。 -.It -myclient の -.Pa / -ファイルシステムをサーバ上に作成します。 -これがどのように行われるかはクライアントのアーキテクチャと -NetBSD ディストリビューションのバージョンに依存します。 -サーバのルートファイルシステムをコピーし変更するように -単純であるか、おそらく標準バイナリディストリビューションから -これらのファイルを入手する必要があるかも知れません +SERVER, GATEWAY, CLIENT の意味は明らかでしょう。 .Pp -SunOS とはちがって、クライアントのスワップのためにマウントポイントを -作成する必要があることに注意が必要です: -.Bd -literal -offset indent -compact -# mkdir /export/myclient/root/swap -.Ed .It -.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 +ルートパーティション上に、ディスクレスクライアント用の設定ファイルを +生成します。これらは、 +.Pa /cont/${i}/etc +に置きます。ここで、${i} は、"default"、またはクライアントの +サブネットブロードキャストアドレス、またはクライアントの +IP アドレスです。 +.Pp +/etc/rc の主要な部分の実行 (これには、rc.conf の読み込みも含まれます) +の前に、/etc/rc.diskless.1 によって、ファイルが +上に記したディレクトリから /etc にコピーされ +(/etc にあったそれ以前の内容は上書きされます)、 +最も汎用のものから開始されます。 +.Pp +最低でも、 +.Pa /conf/default/etc/fstab +に次の内容を含める必要があります。 +.Bd -literal -offset indent +: / nfs ro 0 0 +:/usr /usr nfs ro 0 0 +proc /proc procfs rw 0 0 .Ed .Pp -サーバとクライアントが同じアーキテクチャである場合、 -クライアントはサーバの -.Pa /usr -を共有することができます (これは上記のように実現します)。 -そうでない場合、クライアントのための -.Pa /usr -パーティションを別の場所に正しく作成する必要があります。 +また、 +.Pa /conf/default/etc/rc.conf +を変更し、ディスクレスクライアント用のスタートアップオプションを +含むようにしたバージョンを用意する必要もあります。 .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 -.It -最低限、 -.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 +スタートアップコードで既に設定されているため、 +hostname や ifconfig_* を指定する必要はまずないでしょう。 +一方、サーバのローカルスタートアップファイルを使用しないようにするため、 +local_startup="" を設定する必要があるでしょう。 +最後になりますが、 +複数のディスクレスクライアントで同じ設定ファイルを共有する場合、 +`hostname` の値をスイッチ変数に使う case 文を用いて、 +マシン固有の設定を行なうようにするといいかもしれません。 .Pp -上記の "le0" はクライアントがブートのために使う -ネットワークインタフェース名に置き換えなければなりません。 .It -クライアントの -.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 +カーネルを構築します。その際、設定ファイル +(/sys/i386/conf/DISKLESS など) には、少なくとも +次のオプションを含めておきます。 +.Bd -literal -offset indent +options MFS +options BOOTP +options BOOTP_NFSROOT +options BOOTP_COMPAT .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 によって読み込まれるブートプログラムの場所 +ファイアウォールを使用する場合、デフォルトをオープンにしておかねば +ならないことは覚えておいて下さい。オープンにしておかないと、 +カーネルで bootp パケットの読み書きができなくなります。 .El +.Sh セキュリティ上の問題 +暗号化されない NFS を使用してルートパーティションと +ユーザパーティションをマウントすると、暗号化キーなどの +情報が洩れるかもしれないことに注意して下さい。 +.Pp +.Sh バグ +このマニュアルページはおそらく不完全です。 +.Pp +FreeBSD はときどきルートパーティションに書き込みを要求します。 +ですから、スタートアップスクリプトでは、元の内容を保存する間、 +MFS ファイルシステムをいくつかの位置 (/etc や /var など) に +マウントします。この処理はすべての場合を扱えないかもしれません。 .Sh 関連項目 -.Xr bootparams 5 , .Xr ethers 5 , .Xr exports 5 , -.Xr bootparamd 8 , +.Xr bootpd 8 , .Xr mountd 8 , .Xr nfsd 8 , -.Xr rarpd 8 , -.Xr rbootd 8 , +.Xr pxeboot 8 , .Xr reboot 8 , -.Xr tftpd 8 +.Xr tftpd 8 , +.Xr ports/net/etherboot