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 も可能です。 その他のパッケージは、それが本当に必要になった時に適宜追加していけばよいでしょう。