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 カードをサポートします。
このファイルの先頭にあるコメントを見てください。