Diskless Cobaltを作るための情報


以下に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 で管理されているので別途設定が必要
です。

複数台のCobaltを扱うために

デフォルトの 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.


This page is administrated by
Cobalt Users Group. (usersgroup@cobaltqube.org)
All rights are reserved.
[BACK]