フリーSolarisでここまでやれる! |
山森丈範 YAMAMORI Takenori ●yamamori |
WARNING: Unable to determine keyboard type ROM Rev. 2.2, 64 MB memory installed, Serial #XXXXXXX. Ethernet address 8:0:20:xx:xx:xx, Host ID: xxxxxxxx. Type b (boot), c (continue), or n (new command mode) > >n ok boot net -s Boot device: /sbus/le@0,c00000 File and args: -s 1ae00 hostname: cdrominst domainname: mydomain root server: server root directory: /cdrom/Solaris_2.7/Tools/Boot SunOS Release 5.7 Version Generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. Configuring devices... | INIT: SINGLE USER MODE # pwd /tmp/root # ls etc kernel var |
まずは NFS ルートを /a にマウントします.(サーバ上で,NFS ルートのディレクトリがあらかじめ作られていて,export されているものとします)
# mount 192.168.1.3:/diskless/solaris2.7/root/client /a
CD-ROM は,先の bootparams の install エントリーにより,すでに cdrominst マシンの /cdrom にマウントされています.これの pkgadd 形式のファイルのあるところに移動します.
# cd /cdrom/Solaris_2.7/Product
ここで pkgadd を行なえばいいのですが,なぜかこの時点で /var/sadm/install/admin/default のファイルが無く,そのままでは pkgadd がエラーになってしまいますので,
# pkgadd -R /a -d . -a /dev/null SUNWcsr
と,-a オプションで /dev/null を指定します.
SUNWcsr はルートのおおもとのパッケージです.SUNWcsr をインストールするとこの default ファイルができるので,次からは -a オプションは要りません.さらに,必要最小限のものとして,
# pkgadd -R /a -d . SUNWcar.c SUNWcsu SUNWkvm.c SUNWcsd SUNWcsl \ SUNWesu SUNWlibms
とインストールします.途中に出てくる質問に はすべて y で答えます.
また,sun4c 以外の場合は,上の SUNWcar.c, SUNWkvm.c をカーネルアーキテクチャーに合わせて読み替えて下さい.
ちなみに,SUNWcsl の中には libc.so.1 等がありますが,これらは,Solaris 2.6 以前では SUNWcsu に含まれていました.
server:/diskless/solaris2.7/root/client - / nfs - no - |
127.0.0.1 localhost loghost 192.168.1.3 server |
なお,クライアント自身のホスト名と IP アドレスは,ブート時に自動的に bootparam によって取得されるので,/etc/hosts やその他のファイルに設定する必要はありません.
#08:00:20:xx:xx:xx cdrominst 08:00:20:xx:xx:xx client |
そして,cdrominst 上で,
# reboot
とやります.すると,今度はホスト名 client として,本番 NFS ルートのマルチユーザで,login: プロンプトまで立ち上がります.
シリアルコンソールから root で loginし,すぐにパスワードを設定します.
現在,Solaris 7 の CD-ROM はまだブートサーバ上にマウントされています.それを client 上に NFS マウントします.
# mkdir /cdrom # mount -o ro server:/cdrom /cdrom # cd /cdrom/Solaris_2.7/Product
Solaris 7 から,pkgadd 時に内部で unzip コマンドが使われるようになったようです.そこでまず,unzip を含む SUNWswmt をインストールします.
# pkgadd -d . SUNWswmt
# pkgadd -d . SUNWnisr SUNWnisu # ypinit -c # /usr/lib/netsvc/yp/ypbind
# pkgadd -d . SUNWatfsr SUNWatfsu # /etc/init.d/autofs start
筆者は既にブートサーバ上で,auto.home 等の NIS マップを設定しているので,クライアントの NIS と automount がスタートした時点でこのクライアントに対し,rlogin などが可能になります.
Free Solaris 7 には ja や ja_JP.EUC の locale は付いていません.しかし,各種アプリケーションが LANG を参照するために,LANG=ja_JP.EUC などの状態で使用したいことが多いと思います.しかし,LANG=ja_JP.EUC にすると,/bin/sh で,
couldn't set locale correctly
というエラーメッセージが出て邪魔です.
これを消すために,en_US の locale を代用します.SUNWploc を pkgadd してから次のようにします.
# cd /usr/lib/locale # ln -s en_US ja # ln -s en_US ja_JP.EUC # cd /usr/lib/locale/en_US # ln -s en_US.so.2 ja.so.2 # ln -s en_US.so.2 ja_JP.EUC.so.2
なお,Free Solaris 7 でも,en_US.UTF-8 という unicode の locale は付いており,これを使って日本語を扱うことはできるようですが, これに対応しているのは CDE のアプリケーションのみのようです.
一般的な EUC の locale ベースの各種フリーウェアなどに対応するためには,後述の X_LOCALE 付きの X11R6.4 をインストールします.
デフォルトでは PST になっていると思います.
/etc/TIMEZONE
の,TZ=PST8PDT をコメントアウトして,
TZ=JST-9
と書きます.これで,日本時間になります.
terminfo に kterm のデータがなく不便なので,とりあえず xterm のものをコピーして使うことにします.
# mkdir /usr/share/lib/terminfo/k # cp -p /usr/share/lib/terminfo/x/xterm /usr/share/lib/terminfo/k/kterm
いずれ ncurses をインストールする時にできる kterm で置き換えるといいでしょう.その時は lynx の罫線化け防止のため,enacs のエントリーを削除した方がいいでしょう.
なお,ここで,念のため reboot しました.
# cd /cdrom/Solaris_2.7/Product # pkgadd -d . SUNWtoo SUNWbtool SUNWsprot \ SUNWhea SUNWscpu SUNWarc SUNWlibm \ SUNWdfb.c SUNWdfbh SUNWcg6.c SUNWcg6h
以上のものをインストールしました.
/usr/include, /usr/ccs/bin
や,フレームバッファー関係のものが含まれています.
ここまでで,約57Mbyteのハードディスクを使用しました.