以下に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.