こんばんは.齋藤です.
In article Message-ID:<20030402.085635.91326053.snozawa@xxxxxxxxxxxxxxxxxxxxx>
Satoshi I.Nozawa wrote:
= のざわです。
=
= > こんにちは.齋藤です.
=
= > 私の得た結論は,/etc/sysconfig/network-scripts/ifcfg-eth0 を
= > 削除するというものです.このファイルにBOOTPROTO=dhcp と書かれて
=
= 削除しても認識するんですか。いや純粋に興味あります。こんな方法があった
= とは、驚きとともに、参考にしようと思います。
boot loader のGRUB にNIC のモジュールを組み込んでいる
ため,最初のOS load の時点ですでにNIC はactive になっており,
かつ,DHCP によりIP が割り当てられるので,OS 起動後にIP を
もう一度割り当てる必要はないのでは,という予測の下に試してみて
うまくいきました./etc/rc.d/init.d/network では,
/etc/sysconfig/network-scripts/ifcfg-* が存在していればその
設定を有効にするというようにしているので,diskless マシンに
おいては,なければないでどうということはない,と考えました.
ただ,(手動でやってもよいのですが)gateway やNIS domain 名の
設定をやって欲しいので,下記のようにしています.↓↓
= > /etc/rc.d/init.d/network が実行されるときにもう一度DHCP に
=
= は何を書いていますか。
=
= NETWORKING=yes
= HOSTNAME=localhost.localdomain
= NISDOMAIN=nis-domain
=
= という感じですが、eth0 の指定はどうされていますか。モジュールでなくカー
= ネルに組み込んでいても、関係ないのか。
NIC 用のドライバは,カーネルに組み込むように再構築しています.
先に紹介したWeb page でも組み込むように,とアドバイスしてありま
すし,/lib/modules 以下がきちんと読み込まれるのか,ちょっと不安
だったからです(module の状態で試したことはまだありません).
/etc/rc.d/sysconfig/network には
NETWORKING=yes
GATEWAY=172.22.3.6
NISDOMAIN=himitsu
とだけ書いています.ホスト名を設定するために,
/etc/rc.d/rc.sysinit の中で
――――― ここから ―――――――――――――――――――――――――
...
# Read in config data.
if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
else
NETWORKING=no
fi
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
fi
hostname $(cat /etc/hosts |\ #←追加
grep $(ifconfig eth0 | grep inet | cut -d: -f2 | cut -d' ' -f1) |\ #←追加
awk '{ print $2 }') #←追加
HOSTNAME=$(hostname) #←追加
...
――――― ここまで ―――――――――――――――――――――――――
としています.diskless client の/etc/hosts は,
diskless サーバ上で
ypcat hosts | sort | uniq
の結果をdiskless client 用のhosts ファイルに書き込んでいます.
/etc/rc.d/rc.sysinit を実行している段階でホスト名が設定される
ことから,その直前で/etc/rc.d/init.d/ypbind start を記述しても
動作が怪しそうなので,上記のようにしています.
他の情報も同様にしてサーバマシン上で更新すればdiskless
client でNIS を使わなくても済むのかもしれませんが,アカウント
情報が必要なのはdiskless マシンだけではないことから,管理が
ややこしくなりそうなので,NIS を使うようにしています.
--
Yasuyuki SAITO