さらに、クライアントのカーネルを再コンパイルしたいと思われるかもしれません。 DISKLESS コンフィグファイルを使うと、小さい (SCSI、 HP-IB、 NFS サーバーなどを含まない) カーネルが作られ、 ロードが早くでき、また RAM を節約できるようになります。 これについての詳しい情報は NetBSD カーネル FAQ の カーネルの作り方 にあります。
このほか、ネットワーク経由でのロードを速くするため、 (遅いクライアントであっても) nfs サーバー上のカーネルを gzip で圧縮するという方法もあります。 このカーネルの名前が netbsd でなくても、クライアントはブートしますが、 これは netbsd という名前のファイルが nfs サーバー上になかったので 次のカーネル名を試したら、それが単に netbsd.gz だった、というだけのことです。 NetBSD のブートローダーは、ロードと実行が成功するまで、以下のファイルを順に ロードしようとします:
netbsd netbsd.gz netbsd.bak netbsd.bak.gz netbsd.old netbsd.old.gz onetbsd onetbsd.gz
NetBSD での仕上げ
OpenBSD での仕上げ
FreeBSD での仕上げ
Mac OS X と Darwin での仕上げ
Linux での仕上げ
SunOS での仕上げ
Solaris での仕上げ
NEWS-OS での仕上げ
NEXTSTEP での仕上げ
HP-UX 9 での仕上げ
HP-UX 10 での仕上げ
rbootd=YES rbootd_flags=""
mopd=YES mopd_flags="-a"
rarpd=YES rarpd_flags="-a" bootparamd=YES bootparamd_flags=""
dhcpd=YES dhcpd_flags="-q"
nfs_server=YES # enable server daemons mountd_flags="" nfsd_flags="-6tun 4"
おめでとうございます、これで終わりです !
rbootd=""
mopd_flags="-a"
rarpd="-a" bootparamd=""
dhcpd_flags="-q"
nfs_server=YES
おめでとうございます、これで終わりです !
echo -n ' rbootd' /usr[/local]/libexec/rbootd echo -n ' bootparamd' /usr/sbin/bootparamd
echo -n ' mopd' /usr/local/sbin/rbootd echo -n ' bootparamd' /usr/sbin/bootparamd
rarpd_enable="YES" rarpd_flags="-a -s"
mount -t nfs -a -o -I=1024,-r=1024,-w=1024 nfsserver:/export/client/root/ /
また、いくつかの FreeBSD バージョンでは NFS3 に問題があります。 nfs を試したときに問題がある場合は、 mountd の起動時に -r2 フラグを含めるようにしてください。
/etc/rc.conf (古いバージョンでは /etc/sysconfig
) を編集して、下記の行が設定されていることを確かめます:
nfs_server_enable="YES" mountd_flags="-[2]r"
!rbootd *.* /var/log/bootlog !rarpd *.* /var/log/bootlog
おめでとうございます、これで終わりです !
/etc/hostconfig では、組み込まれているサービスのうちどれが自動的に 起動するかを記述します。ネイティブの bootpd が起動しないようにするため (これはネットブートに使えませんし dhcpd と衝突します)、 以下の行を設定しておきます:
CONFIGSERVER=-NO- NETBOOTSERVER=-NO-
SystemStarter HOWTO が、スタートアップファイル群の作成方法を学ぶうえでの よい参考資料となるでしょう。
{ Description = "NetBoot services for NetBSD clients"; Provides = ("DHCPD", "bootparams", "rbootd"); Requires = ("NetInfo", "Network"); OrderPreference = "None"; Messages = { start = "Starting NetBSD NetBoot services"; stop = "Stopping NetBSD NetBoot services"; }; }
#!/bin/sh . /etc/rc.common ## # Start up NetBSD NetBoot services ## ConsoleMessage "Starting NetBSD NetBoot Services" ## # Start NetBSD NetBoot services ## /usr/libexec/rbootd bootparamd dhcpd -q
おめでとうございます、これで終わりです !
mount -t nfs -a -o -I=1024,-r=1024,-w=1024 nfsserver:/export/client/root/ /
また、いくつかの linux の実装は NFS3 に問題があります。 nfs を試したときに問題がある場合は、 rpc.mountd の起動時に --no-nfs-version 3 フラグを含めるようにしてください。
linux によって、デーモンの起動方法は異なります。 下記からお使いのディストリビューションを選び、それぞれの指針に従ってください。
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/bin/rbootd ]; then echo -n ' rbootd'; /usr/local/bin/rbootd > /dev/null fi
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/sbin/mopd ]; then echo -n ' mopd'; /usr/local/sbin/mopd > /dev/null fi
echo -n ' arp' /sbin/arp -s client CC:CC:CC:CC:CC:CC /sbin/rarp -s client CC:CC:CC:CC:CC:CC if [ -f /usr/[local]/sbin/rpc.bootparamd ]; then echo -n ' rpc.bootparamd'; /usr/[local]/sbin/rpc.bootparamd > /dev/null fi echo '.'
echo -n ' dhcpd' if [ -f /usr/[local]/sbin/dhcpd ]; then /usr/[local]/sbin/dhcpd -q fi echo '.'
if [ -f ${NET}/rpc.portmap ]; then # Start the NFS server daemons. if [ -f ${NET}/rpc.mountd ]; then echo -n " mountd" ${NET}/rpc.mountd fi if [ -f ${NET}/rpc.nfsd ]; then echo -n " nfsd" ${NET}/rpc.nfsd fi fi # Done starting various SUN RPC servers.
おめでとうございます、これで終わりです !
VAX Network Booting HOWTO には、 Red Hat linux 用の SysV 風のスクリプト 設定方法についての議論があります。
もしこれについて面倒な思いをしたくなければ、単に /etc/rc.d/rc.local にデーモンを追加することができます。
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/bin/rbootd ]; then echo -n ' rbootd'; /usr/local/bin/rbootd > /dev/null fi
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/sbin/mopd ]; then echo -n ' mopd'; /usr/local/sbin/mopd > /dev/null fi
echo -n ' arp' /sbin/arp -s client CC:CC:CC:CC:CC:CC /sbin/rarp -s client CC:CC:CC:CC:CC:CC if [ -f /usr/[local]/sbin/rpc.bootparamd ]; then echo -n ' rpc.bootparamd'; /usr/[local]/sbin/rpc.bootparamd > /dev/null fi echo '.'
echo -n ' dhcpd' if [ -f /usr/[local]/sbin/dhcpd ]; then /usr/[local]/sbin/dhcpd -q fi echo '.'
daemon rpc.mountd --no-nfs-version 3
おめでとうございます、これで終わりです !
VAX Network Booting HOWTO には、 Red Hat linux 用の SysV 風のスクリプト 設定方法についての議論があります。重要な相違点は、 Red Hat は /etc/rc.d/init.d/ を使い、 Debian は /etc/init.d/ を使うということだけです。
注意: Debian の rbootd パッケージは、インストール時に rbootd および bootparam 用の SysV init スクリプトをインストールします。
もしこれについて面倒な思いをしたくなければ、単に /etc/rc.local にデーモンを追加することができます。
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/bin/rbootd ]; then echo -n ' rbootd'; /usr/local/bin/rbootd > /dev/null fi
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemons:' if [ -f /usr/local/sbin/mopd ]; then echo -n ' mopd'; /usr/local/sbin/mopd > /dev/null fi
/sbin/arp -s client CC:CC:CC:CC:CC:CC /sbin/rarp -s client CC:CC:CC:CC:CC:CC if [ -f /usr/[local]/sbin/rpc.bootparamd ]; then /usr/[local]/sbin/rpc.bootparamd > /dev/null fi echo '.'
echo -n ' dhcpd' if [ -f /usr/[local]/sbin/dhcpd ]; then /usr/[local]/sbin/dhcpd -q fi echo '.'
おめでとうございます、これで終わりです !
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemon:' if [ -f /usr/local/sbin/sun-rbootd ]; then echo ' rbootd.'; /usr/local/sbin/sun-rbootd -a > /dev/null fi
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemon:' if [ -f /usr/local/sbin/dhcpd ]; then echo ' dhcpd.'; /usr/local/sbin/dhcpd -q fi
おめでとうございます、これで終わりです !
後日、これらのサービスを削除することにした場合は、下記を忘れずに実行します
# rm -rf /tftpboot
/etc/dfs/dfstab 中の share 行の削除
おめでとうございます、これで終わりです !
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemon:' if [ -f /usr/local/bin/rbootd ]; then echo ' rbootd.'; /usr/local/sbin/sun-rbootd -a > /dev/null fi
if [ -f /usr/etc/rpc.bootparamd ]; then /usr/etc/rpc.bootparamd & (echo -n ' bootparamd' >/dev/console) fi if [ -f /etc/rarpd ]; then /etc/rarpd; (echo -n ' rarpd' >/dev/console) fi
おめでとうございます、これで終わりです !
NETMASTER=-YES-
おめでとうございます、これで終わりです !
# if /usr/bin/rtprio 64 /etc/rbootd $RBOOTD_DEVICES; then # echo "remote boot daemon started" [...] # if /usr/bin/rtprio 64 /etc/rbootd; then # echo "remote boot daemon started"そして、起動ファイルのいずれか (できれば /etc/netlinkrc) を編集して、下記の行を追加します:
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemon:' if [ -f /usr/local/sbin/sun-rbootd ]; then echo ' rbootd.'; /usr/local/sbin/sun-rbootd -a > /dev/null fi
#Start the daemons to netboot a NetBSD client echo -n 'Starting diskless server daemon:' if [ -f /usr/local/sbin/dhcpd ]; then echo ' dhcpd.'; /usr/local/sbin/dhcpd -q fi
おめでとうございます、これで終わりです !
おめでとうございます、これで終わりです !
|
|