以下にDiskless Cobaltを構成する方法をまとめておきます。
今回は NetBoot を成功していることを前提にしてありますので NetBootの FAQ ページを参考に NetBoot の設定を行ってください。
Disk less コバQの作り方を投稿します。 1. 用意する材料 Cobalt {Qube,RaQ} 1台 Unix搭載機 1台 kernelのソース 1個 最新版は ftp://ftp.cobaltnet.com/pub/experimental/kernel-2.0.34C49_SK-2.src.rpm 今回は材料入手の都合もあって2700Jを1台とRedHat 6.0搭載機を用意し kernelのソースはkernel-2.0.34C42_SK.src.rpmを使用しました。 2. 下処理 [coba-d:00678]を参考にNetBootの設定を行ってください 3. 調理方法 3.1 カーネルコンパイル (1) カーネルソースを以下のコマンドで展開します。 rpm -ivh kernel-2.0.34C42_SK.src.rpm cd /usr/src/redhat/SOURCES cp linux-2.0.34-cobalt.tar.gz /usr/src cd /usr/src mv linux linux-2.0.33 tar zxvf linux-2.0.34-cobalt.tar.gz mv linux linux linux-2.0.34C42_SK ln -s linux-2.0.34C42_SK linux (2) nfsroot用カーネルをコンパイルします。 make config する場合は以下の設定を選択しておいてください。 CONFIG_ROOT_NFS = y CONFIG_RNFS_BOOTP = y 今回は2700用nfsrootの設定ファイルがあるのでそのまま使用します。 以下のコマンドでコンパイルしてください。 cd /usr/src/linux cp config_nfsroot arch/mips/defconfig make oldconfig make dep make strip vmlinux gzip vmlinux (3)出来上がった vmlinux.gz を NFS サーバ側の /nfsroot/boot/vmlinux.gz として参照できるようにしておいてください。 3.2 環境設定 (1)コバQの / 以下を NFS サーバ側の /nfsroot にコピーします。 例:コバQでサーバ側の /nfsroot を mount してコピーする mount -t nfs サーバ:/nfsroot /mnt cd / cp -rap bin boot dev etc home lib mnt proc root sbin tmp ¥ usr var /mnt (2)サーバ側の /nfsroot/boot/vmlinux.gz を 3.1 でコンパイルした vmlinux.gz に入れ替えます。 (3)サーバ側の /nfsroot/etc/fstab を以下のように書き換えます。 192.168.1.254:/nfsroot / nfs defaults,rsize=8192,wsize=8192 1 1 none /proc proc defaults 0 0 注:サーバ側のIPアドレスを192.168.1.254と仮定してありますご自分の 環境にあわせて実行してください。 (4)サーバ側の /nfsroot/etc/rc.d/rc3.d/S10networkを実行しないようにします。 cd /nfsroot/etc/rc.d/rc3.d mv S10network _S10network (5)以上で調理終了です。コバQの右ボタンと左ボタンを押しながら電源を投入し てください。 実際の運用では /var と /home は QUATA で管理されているので別途設定が必要 です。
デフォルトの disk less コバQでは必ず /nfsroot を使用するため複数のコバQ をdisk less化するには使いにくくなっています。 そこで BOOTP で nfsroot のマウント先を指定できるようにするkernelパッチを 当ててみました。 (1) カーネルへのパッチ 以下のようにカーネルソースを変更して再コンパイルを行ってください。 linux/nfs/nfsroot.c の 1087 行目 if (nfs_path=[0] == '¥0' || strncmp(name,"default",7)) を if (nfs_path=[0] == '¥0') に変更します。 (2) DHCPサーバの設定変更 サーバ側の /etc/dhcpd.conf を以下の設定に変更してください。 設定変更後 dhcpd を再起動してください。 shared-network hogehoge { subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.1 192.168.1.1; option domain-name-servers 192.168.1.254; option domain-name "hogehoge.co.jp" option routers 192.168.1.254; } host cobalt { hardware ethernet 00:10:e0:01:02:03; fixed-address 192.168.1.1; option root-path "/tftpboot/%s" } } 上記の %s はコバQのIPアドレスに自動変換されます。 (3) /etc/fstab 設定変更 コバQの / 以下をサーバ側の /tftpboot/コバQのIPアドレス 以下にコピーし part1の原稿を参考に設定を変更してください。 以上で作業終了です。 注意点 Net Boot で使用されるカーネルはあくまで /nfsroot/boot/vmlinux.gz ですので 2700J,2800J混在環境ではうまく動かない可能性があります。 その場合は 2700J と 2800J のサブネットを分けてそれぞれサーバを立ててあげ てください。
July. 1999.
Thanks for Hatayama.