NetBSD/hpcmips DISKLESS 設定方法。 hpcmips では、いわゆる DISKLESS で立ち上げることができます。 DISKLESS 用に作ったカーネルを立ち上げると、 カーネルが自力で次のことを行います。 1. pcmcia Ethernetcard を初期化 2. BOOTP/DHCP で 自分の情報を問い合わせ 3. 取り出した情報を元に、/ を NFS マウント 余談ですが、これほど複雑なことをして立ち上げることができる OS は、 NetBSD 以外に知りません。 この立ち上げ形式だと、フルセットの UNIX を開発環境として使える ことになります。 設定方法 1. config options NFS_BOOT_DHCP config netbsd root on ? type ? file-system NFS # Sun NFS-compatible filesystem (client) を 設定するだけです。( 後ろの2つは GENERIC ですでに入っています。) 2. server マシン ここでは、FreeBSD-2.x の設定方法を書きます。 2-a) bootpd BOOTP/DHCP サーバを全く動かしていないなら、OS 付属の bootpd の方が設定が 簡単です。 たとえば、etc/bootptab に次のように書いて、 jade:\ :ht=ether:\ :ha=0080c88132e7:\ :sm=255.255.255.0:\ :dn="at.home":\ :hn:\ :ds=10.203.0.2:\ :ip=10.203.0.5:\ :gw=10.203.0.2:\ :sw=10.203.0.9:rp="/work/hpcmips/root":\ :vm=rfc1048: /usr/libexec/bootpd を立ち上げるだけです。 2-b) wide-dhcp bootpd と dhcp daemon は 1台のマシンで同時に立ち上げられないので、 wide-dhcp での設定例も書いておきます。 wide-dhcp では、!swsv, !rpth を使うのがコツです。 --- ここから # define a global entry which specifies the stuff every host uses. global:!snmk=255.255.255.0:tmof=32400: # define different master entries for each subnet. . . athome:tblc=global:\ :dht1=500:dht2=850:\ :rout=10.203.0.2:\ :brda=10.203.0.2:\ :dnsv=10.203.0.2: jade:tblc=athome:\ :ipad=10.103.0.5:\ :hstn="jade.at.home":\ :dnsd="at.home":\ :!swsv=10.203.0.9:!rpth="/work/hpcmips/root":\ :clid="1:0x0080c88132e7": ----- ここまで 3) NFS server の設定 まず、/etc/rc.conf に、 nfs_server_enable="YES" # This host is an NFS server (or NO). portmap_enable="YES" # Run the portmapper service (or NO). mountd_flags="-r" # Flags to mountd (if NFS server enabled). の設定をします。 つぎに、/etc/exports を書きます。 --- ここから /work/hpcmips/root -maproot=0 -alldirs jad --- ここまで FreeBSD-2.2.7 だと、/var/log/messages に mountd[864]: Bad exports list line /work/hpcmips/root -maproot mountd[872]: Could not remount /work/hpcmips/root: Invalid argument といったメッセージが出ます。 私は、/sbin/mountd のソースを取って来て、 mountd.c の 1700 行目あたり #if 0 if (opt_flags & OP_ALLDIRS) { syslog(LOG_ERR, "Could not remount %s: %m", dirp); return (1); } #endif として この部分を外してしまいました。 ( -alldirs をいれるとかならず、ここを通って mount できないように 思えます )