diskless(8) FreeBSD 一般コマンドマニュアル

diskless

前のページ 上に戻る 次のページ

diskless


     マシンのためや、ローカルのファイルシステムの再インストールまたは修復中に
     一時的に利用するために有用です。このファイルは、クライアントがネットワー
     クを介してブートする時に、クライアントとサーバとの間で行われる通信の一般
     的な解説を提供します。


操作

     ネットワークを介してシステムをブートする時に、クライアントとサーバの間で
     3 フェーズのやりとりがあります:

     1.   ステージ 1 のブートストラップがブートプログラムを読み込みます。
     2.   ブートプログラムがカーネルを読み込みます。
     3.   カーネルがルートを NFS マウントします。

     これらの各フェーズについて、以降で詳しく記述します。

     フェーズ 1 では、ステージ 1 のブートストラップコードがブートプログラムを
     読み込みます。このブートプログラムは、普通ネットワークカードを制御できま
     す。ブートプログラムを、BIOS や、ネットワークカード上の BOOT ROM (PXE,
     etherboot, netboot) に格納することもできます。また、ディスクユニット
     (etherboot, netboot 等) からロードさせることもできます。

     フェーズ 2 では、ブートプログラムがカーネルを読み込みます。このフェーズの
     操作はブートプログラムの設計に依存します。普通、ブートプログラムは BOOTP
     プロトコルまたは DHCP プロトコルを用い、クライアントの IP アドレスとその
     他のブート情報を取得します。ブート情報は、 NFS サーバ、ルータ、ネームサー
     バの IP アドレス、ロードするカーネル名を含みます (これに限らず他の情報が
     含まれることもあります)。その後、カーネルがロードされます。これには、
     (etherboot や netboot の場合のように) NFS を使って直接ロードされる場合
     と、 pxeboot と呼ばれる中間ローダを通じて、TFTP や NFS を使ってロードされ
     る場合とがあります。

     フェーズ 3 では、カーネルが DHCP や BOOTP を用いて設定情報を獲得し、ルー
     トファイルシステムのマウントに進み、動作を開始します。ディスクレスシステ
     ムの開始処理中に行なわれるいくつかの動作は、 /etc/rc.diskless1/etc/rc.diskless2 とに列挙されています。


設定

     ディスクレスクライアントを実行させるためには、次に示すものが必要です。

     o   NFS サーバ。これは、適切なパーミッションを付けてルートパーティション
         と /usr パーティションをエクスポートします。いくつかのシステムファイ
         ルにアクセスできるようにするために、ルートパーティションが -maproot=0
         でエクスポートされている限り、スクリプト rc.diskless{1,2} は読み込み
         専用パーミッションで動作します。例として /etc/exports は次に示す行を
         含みます。

               <ROOT> -maproot=0 -alldirs <list of diskless clients>
               /usr -alldirs <list of diskless clients>

         ここで <ROOT> は、ルートパーティションのサーバ上でのマウントポイント
         です。スクリプト /usr/share/examples/diskless/clone_root を使い、共用
         可能な読み込み専用ルートパーティションを生成することができます。しか
               <CLIENT>:ha=0123456789ab:tc=.default

         <SERVER>, <GATEWAY>, <CLIENT> の意味は明らかでしょう。

     o   ルートパーティション上に、ディレクトリ /conf/default/etc を作成し、こ
         こに /etc の内容のコピーを置きます。 /conf/default/etc 中のファイルと
         サブディレクトリが、ディスクレス環境の /etc メモリファイルシステムの
         ブートストラップとして使用されます。 /etc 全体をコピーし、上書きしな
         いでください。

     o   更に、 /etc 中のファイルに対するネットワーク毎またはホスト毎の上書き
         設定は、 /conf/${i}/etc ディレクトリを作成することにより、可能となり
         ます。ここで、 i は、クライアントのサブネットブロードキャストアドレ
         ス、またはクライアントの IP アドレスです。

         /etc/rc の主要な部分の実行 (これには、 rc.conf の読み込みも含まれま
         す) の前に、 /etc/rc.diskless.1 によって、ファイルが上に記したディレ
         クトリから /etc にコピーされ ( /etc にあったそれ以前の内容は上書きさ
         れます)、最も汎用のものから開始されます。

         最低でも、 /conf/default/etc/fstab に次の内容を含める必要があります。

               <SERVER>:<ROOT> /     nfs    ro 0 0
               <SERVER>:/usr   /usr  nfs    ro 0 0
               proc            /proc procfs rw 0 0

         また、 /conf/default/etc/rc.conf を変更し、ディスクレスクライアント用
         のスタートアップオプションを含むようにしたバージョンを用意する必要も
         あります。

         スタートアップコードで既に設定されているため、 hostnameifconfig_*
         を指定する必要はまずないでしょう。一方、サーバのローカルスタートアッ
         プファイルを使用しないようにするため、 local_startup="" を設定する必
         要があるでしょう。最後になりますが、複数のディスクレスクライアントで
         同じ設定ファイルを共有する場合、 `hostname` の値をスイッチ変数に使う
         case 文を用いて、マシン固有の設定を行なうようにすると良いかもしれませ
         ん。

     o   カーネルを構築します。その際、設定ファイル ( /sys/i386/conf/DISKLESS
         など) には、少なくとも次のオプションを含めておきます。

               options MFS
               options BOOTP
               options BOOTP_NFSROOT
               options BOOTP_COMPAT

         ファイアウォールを使用する場合、デフォルトをオープンにしておかねばな
         らないことは覚えておいて下さい。オープンにしておかないと、カーネルで
         bootp パケットの読み書きができなくなります。


セキュリティ上の問題

     暗号化されない NFS を使用してルートパーティションとユーザパーティションを

FreeBSD 4.4                     April 18, 2001                     FreeBSD 4.4

ABELNET VPSサービス