Diskless operation

原作: &a.martin;

訳: &a.yasu; netboot.com/netboot.romによって、 ディスクのないクライアントで ネットワーク経由でFreeBSDマシンのブートを行い FreeBSDを走らせることができます。 2.0ではローカルなスワップを持つことができます。 NFS経由のスワッピングもサポートされています。 サポートされているイーサネットカード: Western Digital/SMC 8003, 8013, 8216 とその互換ボード, NE1000/NE2000 とその互換カード (再コンパイルが必要) セットアップの手順

サーバにするマシンを見つけます。 このマシンには、FreeBSD 2.0のバイナリとbootpを 記憶するだけの十分なディスクスペースが必要です。 tftp と NFS も使えます。 テストしたマシン: HP9000/8xx / HP-UX 9.04以降 (9.04以前では動きません) Sun/Solaris 2.3. (bootpが必要) クライアントにIP,gateway,netmaskを提供する bootpサーバをセットアップします。 diskless:\ :ht=ether:\ :ha=0000c01f848a:\ :sm=255.255.255.0:\ :hn:\ :ds=192.1.2.3:\ :ip=192.1.2.4:\ :gw=192.1.2.5:\ :vm=rfc1048: クライアントにブート情報を提供するTFTPサーバを (bootpサーバと同じマシンに)セットアップします。 このファイルの名前は、cfg.X.X.X.X (もしくは /tftpboot/cfg.X.X.X.X)で、 ここでX.X.X.X はクライアントのIPアドレスです。 このファイルの内容は netbootコマンドで有効です。 2.0では、netboot は以下のようなコマンドを持ちます: help - helpリストの表示 ip - クライアントのIPアドレスの表示/セット server - bootp/tftp サーバのアドレスの表示/セット netmask - netmaskの表示/セット hostname - hostnameの表示/セット kernel - カーネル名の表示/セット rootfs - root ファイルシステムの表示/セット swapfs - swap ファイルシステムの表示/セット swapsize - diskless swapsize を Kbytes単位でセット diskboot - ディスクからのブート autoboot - ブートプロセスの続行 trans - トランシーバのオン|オフ flags [bcdhsv] - ブートフラグの設定 完全にディスクレスな場合の一般的なcfgファイルは以下のようになります: rootfs 192.1.2.3:/rootfs/myclient swapfs 192.1.2.3:/swapfs swapsize 20000 hostname myclient.mydomain ローカルにswapを持つマシンについては以下のようになります: rootfs 192.1.2.3:/rootfs/myclient hostname myclient.mydomain NFS サーバがクライアントにroot(必要ならswapも) ファイルシステムをexportしているか、また、 クライアントがこれらのファイルシステムに ルートアクセスできるか確認します。 FreeBSDにおける一般的な /etc/exports ファイルは 以下のようになります: /rootfs/myclient -maproot=0:0 myclient.mydomain /swapfs -maproot=0:0 myclient.mydomain そして、HP-UX側では以下のようになります: /rootfs/myclient -root=myclient.mydomain /swapfs -root=myclient.mydomain NFS経由でスワッピングを行う場合 (完全にディスクレスな場合の設定)、 クライアントが dd で使用する swap ファイルを作成します。 もし、swapfs コマンドが上記の例のように 引数 /swapfsを持ちそのサイズが 20000 である場合、 myclientに対するスワップファイルは /swapfs/swap.X.X.X.X で呼び出されます。 ここで X.X.X.X はクライアントのIPアドレスです。 例: # dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000 また、スワッピングが開始されるとクライアントのスワップスペースは センシティブな情報を含むようになるので、不正なアクセスを防止するため、 このファイルへの読み書きのアクセス制限がなされていることを確認して下さい: # chmod 0600 /swapfs/swap.192.1.2.4 クライアントがそれぞれのrootファイルシステムとして使う ディレクトリにrootファイルシステムを展開します。 (上記の例では/rootfs/myclient). HP-UX システム: サーバはHP9000/800 シリーズのマシンで、 HP-UX 9.04 以降が必要です。 これ以前のバージョンではNFSを経由するデバイスファイルが 作成ができません。 /rootfs/myclient/dev を 展開する際に、いくつかのシステム(HPUX)ではFreeBSDに合った デバイスファイルが作成されないので注意してください。 その際には最初の起動時にシングルユーザモードに移行して (ブートの段階でCtrl-Cを押す)、/dev に移って "sh ./MAKEDEV all" として、クライアントからこれを 修正してください。 クライアントで netboot.com を実行するか、 netboot.rom ファイルから EPROMを作成します。 / および /usr ファイルシステムを共有して使用する

今のところ、これを行う公式に認められた方法はありませんが、 私はそれぞれのクライアントで /usr ファイルシステムと 個々の / ファイルシステム を共有して使っています。 どなたかこれをきちんと行うやり方の提案がありましたら、 私に、もしくは &a.core; グループに知らせてください。 特定の設定についてnetbootをコンパイルする

/sys/i386/boot/netboot/Makefile の中の設定を変更して コンパイルすることで、netbootでNE1000/2000 カードをサポートします。 このファイルの先頭にあるコメントを見てください。