Solaris 9をディスクレスにする

YAMAMORI Takenori ●yamamori

SunOS 4.1.4をサーバとして、Solaris 9をディスクレスマシンとしてインストールしてみました。その手順を以下に示します。
●Solaris 9をディスクレスにする

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 していきます。

※注
CD-ROMドライブのないマシンにインストールする場合は、 「Free Solaris でここまでやれる」 を参考にしてください。

○サーバ側の準備設定

サーバである 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になった)
sol9inst-s.gif

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



参考ページ: Solaris 7 をディスクレスでインストールしています (Free Solaris でここまでやれる)
To『Solaris 9をディスクレスにする』[index]


To 謎の処理系 SunOS 4.1.4 with Linux/FreeBSD[Home]
yamamori