Solaris 9をディスクレスにする |
| YAMAMORI Takenori ●yamamori |
SunOS 4.1.4 を、RARP, TFTP, bootparam, NFS (NIS) サーバとし、 Solaris 9 (sun4m) をディスクレスクライアントとします。 インストール時には、Solaris 9 はローカルの SCSI CD-ROM から起動し、 インストーラの Xの画面 (Solaris 9 では twm の画面になった) 上で、 インストール作業を手作業で行ないます。 サーバから root と /usr ファイルシステムを NFS マウントし、 CD-ROM から、必要なパッケージを pkgadd していきます。
サーバである SunOS 4.1.4 側で、以下のような各種設定を行ないます。
(ここで例に用いているホスト名とIPアドレス) サーバホスト名: server サーバIPアドレス: 192.168.1.7 クライアントホスト名: sol9host クライアントIPアドレス: 192.168.1.86 *クライアント(Solaris 9)のホスト名をサーバの/etc/hostsに登録 /etc/hosts に、 192.168.1.86 sol9host のように追加。 *bootparamサーバのための設定 /etc/bootparams に次のように設定を記述 sol9host \ root=server:/diskless/solaris9/root/sol9host *RARPサーバのための設定 /etc/ethers に次のようにクライアントの MACアドレスを記述 08:00:20:XX:XX:XX sol9host *NIS make NISを使っている場合、ここでNIS makeする必要があります。 # cd /var/yp; make *TFTPサーバのための設定 $ addr -p 192.168.1.86 ← bind付属のaddrコマンドを利用して、16進IPを求める Input: "192.168.1.86" Network: [af2 len4] c0 a8 01 56 Presentation: "192.168.1.86" # cd /tftpboot; ln -s inetboot-sol9 C0A80156.SUN4M ← シンボリックリンクのみ *NFS exportするディレクトリの作成 # mkdir -p /diskless/solaris9/root/sol9host/usr ← root(と /usr の mount point) # mkdir /diskless/solaris9/usr ← /usr *NFS exportする /etc/exports に、 /diskless -root=sol9host のような行を追加して、 # exportfs -a とします。
これでサーバ側の準備は整いました。この時点では、最初に TFTP で読み込む inetbootファイルを配置しておらず、/tftpboot/C0A80156.SUN4M はブロークンなシンボリックリンクのままです。inetboot はクライアントのインストール後にNFSサーバの exportされたディレクトリ上から直接コピーするようにします。
ここで、クライアントの sol9host を、ok boot cdrom で起動します。 CD-ROMは、Solaris 9 Software 1 of 2 を使います。 Installation(Web Start)の CD-ROM ではないので間違えないようにしてください。
しばらくすると、Xの画面が立ち上がります。Solaris 9 からは twm の画面です。 ここで、インストーラ自体は進めずに無視し、 マウスの右ボタンで「Terminal」(xterm)を開いて手動で操作します。(下図)
●Solaris 9 Software 1 of 2 から起動した「対話式インストーラ」(twmになった)
この状態で、sol9host は自動的に自分のIPアドレス、ホスト名、NISドメイン名などの 情報を取得し、すでにネットワークが使えるようになっています。 サーバのホスト名の名前解決も可能です。
ここで、次のように作業を行ないます。
*サーバから、/ と /usr を /a というディレクトリに NFS マウント
client# mount server:/diskless/solaris9/root/sol9host /a
client# mount server:/diskless/solaris9/usr /a/usr
*CD-ROMのパッケージのインストール
CD-ROMのパッケージのあるディレクトリに移動し、
pkgadd コマンドで最小限のパッケージをインストールします。
「-R /a」オプションを付けて root を /a に変更するのがポイントです。
なお、初回の pkgadd 実行時のみ、「-a /dev/null」を付ける必要があります。
# cd /cdrom/Solaris_9/Product
# pkgadd -d . -R /a -a /dev/null SUNWcsr
# pkgadd -d . -R /a SUNWcar.m
:
:
*最小限のパッケージ
最小限のパッケージは次の通りです
SUNWcsr / 基本パッケージ
SUNWcar.m /platform
SUNWcsd /dev /devices
SUNWnfscr NFS root のため必要 (Solaris 9で追加されたので注意!) ※注1
SUNWcsu /usr 基本パッケージ
SUNWcsl libc
SUNWkvm.m /usr/platform (inetboot もこの中にある)
SUNWesu awk など(rc スクリプトで awk を使用している) ※注2
SUNWlibms libm (awk がリンクしている)
-- 以上が最小限パッケージ ---
ただし、実際には以下のパッケージもインストールしました
SUNWswmt unzip (今後のpkgaddなどで必要になる)
SUNWnisr NIS を使うために必要
SUNWnisu NIS を使うために必要
SUNWatfsr automount を使うために必要
SUNWatfs automount を使うために必要
以上で、わずか約50MBのコンパクトなSolaris 9になります。
※注1
SUNWnfscr パッケージを忘れると、クライアントマシンのブート時に
Cannot load misc/nfs_dlboot というエラーが出て起動しません。
※注2
SUNWesu の pkgadd 時に、perl のパッケージである
SUNWpl5u SUNWpl5v が必要との依存警告が出ますが、
とりあえず無視して構いません。
*インストール後のクライアントの/etcの設定 pkgaddで必要なパッケージを展開したら、 最低限、次の設定を行ないます。 /a/etc/vfstab に次のように記述を追加 server:/diskless/solaris9/root/sol9host - / nfs - no - server:/diskless/solaris9/usr - /usr nfs - no - /dev/dsk/c0t6d0s0 - /cdrom hsfs - no ro /a/etc/hosts に次のように記述を追加 192.168.1.7 server # サーバのホスト名とIPアドレスだけで構いません。(その他はNISで解決) /a/etc/TIMEZONE にタイムゾーン設定 TZ=JST-9 *inetbootファイルの取り出し サーバ側で、NFS export されたクライアント用のファイルシステム上から、 inetbootファイルを取り出し、/tftpboot ディレクトリに配置します。 server# cp -p /diskless/solaris9/usr/platform/sun4m/lib/fs/nfs/inetboot \ /tftpboot/inetboot-sol9 これで、先ほどの /tftpboot/C0A80156.SUN4M というシンボリックリンクがブロークンではなくなります。
以上で、もうディスクレスSolaris 9 のインストールは終了です。 クライアントマシンを、ok boot net でブートするとちゃんと立ち上がるはずです。
このあと、クライアントマシン側で ypinit -c を実行すると NIS クライアントになります。 $HOME などの automount も可能です。 その他のパッケージは、それが本当に必要になった時に適宜追加していけばよいでしょう。