Solaris8+Recommended インストール

●Solaris8(2/02)インストール

もうすでにSolaris9もリリースされています。Solaris10もありますね。
しかしここではSolaris8のインストールを紹介!
というか更新するのが面倒なだけだったり・・・
基本同じです。
RAIDソフトのSDSはSolaris9から標準で付いてるので
別途パッケージを入れなくても良いです。

OSのインストールはまずSolaris8そのもののインストール
その他、Recommendedパッチの適用
inetdとデーモンの不要なものの設定
各種ネットワークに関係する設定
やっておくと便利なもの
その他


といったところがOSのインストールですね。

一応かなりの安定度を誇るSolaris8なのでこのページを少しの間残しておきます。


インストールした環境
ULTRA10(UltraSPARCUi 440MHz)
Ethernet address 8:0:20:b1:0:a5
HostID 80b100a5
※このイーサネットアドレスとHostIDは必ず控えておきましょう!
  NVRAMが電池切れになったときに必ず必要です。

ハードディスクは20GB(OS部分),60GBx2本(ミラーリングで60GBのデータ部分)
→詳細は後ほど紹介

【Solaris8のインストール】
インストールするOSのver: Solaris8(2/02)
言語: Japanese
ロケール: Locale Japanese EUC(ja)
ネットワークへの接続: yes
DHCP: No
ホスト名: home3
IPアドレス: 192.168.128.4/24
IPv6: yes ※IPv6対応のソフトは今のところ実稼動させているという話は聞いたことがないですが・・・
Kerberos: No
ネームサービス: No
時間帯: Japan
ソフトウェアの選択: Entire Distribution (64bitサポート)
パーティション: c0t0d0(20GB)
/ 700M
/var 2000M
/swap 1000M
/usr 2500M
/usr/local 7000M
/opt 1000M
/export/home 約5420MB(残り全部)
※あんまり/optはきりたくないのですが・・・
 /optをきらずに「#mkdir /usr/local/opt;ln -s /usr/local/opt /opt」
 なんてしてもいいかも。人それぞれなんで正解はないので適当でいきましょう!
 一応今回はきることにします。

-----ミラーリング----
c0t1d0(60GB) c0t3d0(60GB)
/data1 28.63GB
/data2 28.62GB
メタデバイス用   10MB
rootのパスワード: ******
実際の流れ
1.電源投入

2.stop+AキーでPROMモニターモード
Solaris8のインストールメディア(Solaris8SOFTWARE1/2)挿入
ok boot cdrom

・言語選択
 4. Japanese
・ロケール選択
 0.Locale Japanese EUC(ja)

openwindow起動

ネットワークに接続
 yes
DHCPを使用
 No
ホスト名
 home3
IPアドレス
 192.168.128.4
システムはサブネットの一部
 yes
ネットマスク
 255.255.255.0
IPv6を使用
 yes
Kerberosセキュリティ構成
 No
ネームサービス
 None
時間帯の指定
 Japan
Solarisの対話式インストール
 初期
ソフトウェアの選択
 Entire Distribution plus OEM support
 64bitサポート
ディスクのカスタマイズ
c0t0d0(20GB)
/ 700M
/var 2000M
/swap 1000M
/db  13MB
/usr 2500M
/usr/local 8000M
/export/home 約5500MB(残り全部)
-----ミラーリング(詳細は後ほど)----
c0t1d0(60GB) c0t3d0(60GB)
後ほどDiskSuiteでミラーリングするため
ここでは何もパーティションは設定しません

インストール開始

一回リブート
ルートのパスワード設定
30分間アイドルがあれば電源を切るかどうかのpowerdの設定
 No
システムを起動するたびにpowerdの設定を聞くかどうか
 No

インストールつづき開始
CDROMの入れ替え(sSolaris8SOFTWARE2/2)挿入
CDROMの入れ替え(Language)挿入
リブート

・Solaris8DOCUMENTATION
 cdrom挿入
 自動でウィザードが上がるのでインストール
 ※answerbookはインストールしておくと調べ物をしたいときに便利
 これは好みによるのでサーバ以外であれば入れる人はいれるのでは?
 インストール先は/usr/localにします。
※Solaris9,10 でも手順的にはあまり変わりはありません。

【ftpとtelnetをrootでできるように】
本当ならここで一般ユーザを作って必要ならtelnetとftpはそのユーザから
行うのがよいのですが、とりあえずrootでできるように一時的にします。
だってそれの方が便利っしょ!

ちなみにSolaris9からデフォルトでssh2がインストールされているので
ssh2クライアント持ってるならrootで入れるようにしてもいいかも。
時間があるときにsshd_configの編集行載せておきます。
/etc/ssh/sshd_configでPermitRootLgin yesとかだったかな?
でもssh2がデフォルトなのでssh1でttsshなんかで入れるようにssh-keygenしなおさ
ないとだめだったかも。

○telnet
#vi /etc/default/login
コメントアウトします。#CONSOLE=/dev/console
○ftp
#vi /etc/ftpusers
コメントアウトします。#root
※Solaris9では/etc/ftpd/の下にあったと思います。
うーん今リモートで入れないので不確か!

ちゃんと構築がおわったら元に戻しておいてくださいね。
すっげえ大穴になってしまいますよ。

【MUの適用】
※MUをあてて最新版とまったく同じにはなりません。

入手先Solaris Solve(ユーザ登録必要)

http://access1.sun.com/Products/solaris/mu/
MUの最新リリースを適用するとSolaris 8(9)最新リリース 相当になります。
Solaris8でMU7当てるときは、先に108987-08(sparc),112396-01(sparc)が必要になります。
intelの時は108988-08 (x86),112397-01 (X86)が必要。
先にpatchaddしておきましょう。


#mkdir -p /usr/local/arc/mu
#mv /export/home/nitta/S8MU7_sparc.zip /usr/local/arc/mu
#cd /usr/local/arc/mu
#unzip S8MU7_sparc.zip

アーカイブと展開したソースを合わせて約600MBの容量です。
※解凍するにもめちゃくちゃ時間が・・・
 
# ls
total 335084
lrwxrwxrwx 1 root other 15 Aug 25 01:06 MU -> ./Solaris_8_MU7
drwxr-xr-x 3 root other 512 Jun 14 20:38 MU_Documentation
-rw-r--r-- 1 nitta staff 171356504 Aug 25 00:46 S8MU7_sparc.zip
drwxr-xr-x 3 root other 512 Jun 14 20:38 Solaris_8_MU7
-rwxr-xr-x 1 root other 31690 Jun 14 20:38 backout_mu
-rwxr-xr-x 1 root other 6142 Jun 14 20:38 copyright
-rwxr-xr-x 1 root other 62618 Jun 14 20:38 install_mu
# ./install_mu 2>&1|tee install_mu.log
※teeでとらなくても/var/sadm/install_data/Maintenance_Update_logにログはちゃんと残りますが
  やっぱり実際の実行ログもほしいので取っておきます。
インストールするのに必要な容量
------------------------------
Space Available/Needed to apply patch set, including swap space

Filesystem Kb Avail Kb Needed Enough?
/ 136985 1284 YES
/usr 1107083 3493 YES
/opt 190290 0 YES
/var 950883 13152 YES
------------------------------------------------------------------------
Total: 17929

Total space Available/Needed in /var filesystem to include backout data,
and working space for compression.

Backout Dir Kb Avail Kb Needed Enough?
/var/sadm/pkg 893155 124396 YES
------------------------------------------------------------------------

【Recommendパッチの適用】
これの入手はSunSolveから。
http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
ここに各SolarisのRecomendedパッチが置いています。
なるべく、というか必ず最新版をとってきます。


パッチの全部の内容についてはここを参考に見てください。
更新されている内容は

ftp://sunsolve.sun.com/pub/patches/Solaris8.PatchReport

インストールするには/var/sadm/patchの容量が90MB
くらい必要です。
 
※毎回容量が違うので一概には言えないようです。
最初に容量チェックします。
#いまどきそんな容量不足になるような構築してるということはないと思うけど・・・


#mkdir /usr/local/arc/recommended
#mv /export/home/nitta/8_Recommended.zip /usr/local/arc/recommended/
#cd /usr/local/arc/recommended/
#unzip 8_Recommended.zip

#./install_cluster
大体1時間〜2時間くらいだと思います。

【UFSロギングの設定】
Solaris7からの機能で、UNIXファイルシステム(UFS)への変更操作がログ領域に書き込まれてから、
ファイルシステムに適用する機能です。
このロギング機能を有効にする事によりUFSファイルシステムの整合性を保つことができます。
電源断が発生したときにはfsckが走ってしまうのでやたらと起動に時間もかかるし
スーパブロックも壊れていましたが、その辺がかなり改善されたように思います。

ロギングを有効にするには、mountコマンドのオプションでloggingを指定してファイルシステムを
マウントすれば有効になります。
/etc/vfstabにロギングオプションを記述しておきます。


この環境の/etc/vfstabの設定です。
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0t0d0s3 - - swap - no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no logging
/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 1 no logging
/dev/dsk/c0t0d0s1 /dev/rdsk/c0t0d0s1 /var ufs 1 no logging
/dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes logging
/dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /usr/local ufs 2 yes logging
swap - /tmp tmpfs - yes -
###For DiskSuite Mirroring####
/dev/md/dsk/d1 /dev/md/rdsk/d1 /data1 ufs 2 yes logging
/dev/md/dsk/d4 /dev/md/rdsk/d4 /data2 ufs 2 yes logging
実際にloggingがついてマウントされているかどうかはmountコマンドで見てみます。
有効にするにはリブートしておきます。
# mount -p
/dev/dsk/c0t1d0s0 - / ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=2200008
/dev/dsk/c0t1d0s6 - /usr ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=220000e
/proc - /proc proc - no dev=4000000
fd - /dev/fd fd - no rw,suid,dev=40c0000
mnttab - /etc/mnttab mntfs - no dev=41c0000
/dev/dsk/c0t1d0s1 - /var ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=2200009
swap - /var/run tmpfs - no dev=1
swap - /tmp tmpfs - no dev=2
/dev/dsk/c0t1d0s5 - /opt ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=220000d
/dev/dsk/c0t1d0s7 - /usr/local ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=220000f
/dev/dsk/c0t0d0s0 - /export/home ufs - no rw,intr,largefiles,logging,onerror=panic,suid,dev=2200000


【ゲートウェイの設定】
# vi /etc/defaultrouter
  192.168.128.254を追加
リブートしないなら以下の設定も。
# route add 0.0.0.0 192.168.128.254
add net 0.0.0.0: gateway 192.168.128.254

実際にルータの設定がちゃんとできているかどうかはnetstatで確認してみます。
# netstat -nr

Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
192.168.128.0 192.168.128.4 U 1 1 hme0
224.0.0.0 192.168.128.4 U 1 0 hme0
default 192.168.128.254 UG 1 0
127.0.0.1 127.0.0.1 UH 1 4 lo0

【/etc/inetd.confの設定】
いろいろとセキュリティホールが報告されている昨今ですから
サービスの制御はOSインストールの一つです。

とりあえずtelnetとftp以外はとめてしまいます。
この辺を参考に自分で何が必要か決めてください。
http://solaris.roguelife.org/etc/inet/inetd.conf.xhtml

※OS入れるときにとめまくるのはいいけど、いろいろ商用のソフトウェア
とか入れた後は慎重にやりましょう。
思わずSUNClusterなんかでinetd.confでいるものをコメントアウトしたら
えらいことになります。

【起動プロセスの制御】
http://www.atmarkit.co.jp/fsecurity/rensai/fw02/fw01.html

下記の起動ファイルの一つ一つ詳細はSUNから正式にドキュメントが
出ていないようなので上記のようなサイトで調べてください。

●停止させるプロセス
/etc/rc2.d
# ls
デフォルトではこれくらいある。
K06mipagent S70uucp S80PRESERVE S94Wnn6
K07dmi S71rpc S80spc S95IIim
K07snmpdx S71sysid.sys S47pppd S95ncad
K21dhcp S72autoinstall S71ldap.client S99atsv
K28nfs.server S72inetsvc S80lp S99audit
README S72slpd S85power S99dtlogin
S01MOUNTFSYS S73cachefs.daemon S88sendmail
S05RMTMPFILES S73nfs.client S88utmpd
S20sysetup S74autofs S89bdconfig
S21perf S74syslog S90wbem
S30sysid.net S74xntpd S90loc.ja.cssd
S40llc2 S75cron S92volmgt
S47pppd S75savecore S93cacheos.finish
S69inet S76nscd S94ncalogd

# mv S71rpc _S71rpc (NIS使わないならとめます)
# mv S73nfs.client _S73nfs.client
# mv S74autofs _S74autofs
# mv S85power _S85power(一番最初にとめてしまうpowerd。サーバでは絶対にいらないのでとめる)
# mv S80lp _S80lp
# mv S90loc.ja.cssd _S90loc.ja.cssd(css使わないならとめます)
# mv S90wbem _S90wbem(ネットワークを介したサービスなので必ずとめる)
# mv S94Wnn6 _S94Wnn6(wnn使わないならとめます)
# mv S95IIim _S95IIim(これをとめるとCDE上でATOKとか日本語の入力ができなくなります。)
# mv S95ncad _S95ncad(NIS使わないならとめます)
# mv S99dtlogin _S99dtloginこれをとめてしまうとCDEを使えないので不便でもサーバならとめてしまおう)
# mv S99atsv _S99atsv(atok使わないならとめます)
NIS使ってるときはS71rpcとS95ncadは残しておきましょう。
あとはほとんどデフォルトではあがらないものばかりなので
気にしないでいいでしょ。実際S85power,S90wbem,rc3.dのS76snmpdxの3つだけとめることも多いようですし。


/etc/rc3.d
README S15nfs.server S34dhcp S50apache S76snmpdx S77dmi S80mipagent

bash-2.03# mv S15nfs.server _S15nfs.server
bash-2.03# mv S76snmpdx _S76snmpdx
bash-2.03# mv S77dmi _S77dmi

これぐらいのプロセスはとめてしまった方がいいかと思います。

#各プロセスの役割についてはこのサイトを参考にするとよくわかると思います。
#どのrcファイルで何に関するデーモンが起動されていたりするのか把握しておくこと
#は非常に重要です。

【ntpの設定】
Server 用 sample `ntp.server' と client 用 sample `ntp.client' が用意されている。
利用できる Server(server 138.39.7.20) が利用できるので下記のように行う。

# cd /etc/inet
# cp ntp.client ntp.conf
# vi ntp.conf
 server 138.39.7.20(という行を追加)
# /etc/init.d/xntpd start

別途ntpdをインストールしなくては行けません。
とりあえず/etc/rc2.d/S74xntpdを起動しないようにだけしておきましょう。
# mv /etc/rc2.d/S74xntpd /etc/rc2.d/_S74xntpd

また、PatchID:109667-03のパッチを適用するとntpdateコマンド実行結果が
何も出力されなくなったり、xntpdがcoreをはいて止まってしまいます。
このパッチはもともと時間が突然調整されるSTEPモードのバグに対応するためのものでしたが・・・
Solaris8 10/01ではすでに適用されているのではずすことはできません。
PatchID:109667-02,109667-01も同じくだめです。BUGID:416731参照!!ただしSunSolveのアカウント必要。

フリーのntpdインストールはこちらを参照

【画面の解像度】
※今回はUltra5/10のオンボードのPGX24フレームバッファでの設定
※もしくはPGX32やPGX64でも同じ用に下記のコマンドが使える。
CreatorやExpert3D,Elite3Dなどでは設定するコマンドが違いますので注意してください。

私の使っている環境ではどうも1280x1024で24bitの設定はできないようだ。
メモリーが足らないとかでエラーになってしまう。
そこで妥協して
1152x900x66 24bit
やっぱり見た目がきれいなことに越したことはないし・・・

#/usr/sin/m64config -res 1152x900x66 now -depth 24

実際にカードとモニターの持っている解像度一覧は
#m64config -prconf
このコマンドで見ることができる。
また現在どういった設定になっているか確認することができる。


実行例
bash-2.03# m64config -prconf

--- Hardware Configuration for /dev/fbs/m640 ---
ASIC: version 0x7c004750
DAC: version 0x0
PROM: version 104
Card possible resolutions: 720x400x85, 640x480x60, 640x480x72, 640x480x75
800x600x56, 800x600x60, 800x600x72, 800x600x75, 1024x768x60
1024x768x70, 1024x768x75, 1280x1024x75, 1024x768x85, 800x600x85
640x480x85, 1280x1024x60, 1152x900x66, 1152x900x76, 1280x1024x67
1600x1280x76, 1920x1080x72, 1280x800x76, 1440x900x76
1600x1000x66, 1600x1000x76, 1920x1200x70, 1280x1024x85
1280x1024x76, 1152x864x75, 1600x1200x75, 1024x768x85, 800x600x75
640x480x85, vga, svga, 1152, 1280, 800x600, 1024x768, 1280x1024
1152x900, 1600x1280, 1920x1080, 1600x1000, 1920x1200, 1600x1200
Monitor possible resolutions: 640x480x60, 640x480x72, 640x480x75
800x600x60, 800x600x72, 800x600x75, 1024x768x70, 1024x768x75
1280x1024x60, 800x600x75, vga, 800x600, 1024x768
Possible depths: 8, 24
Current resolution setting: 1152x900x66
Current depth: 24

【/etc/resolv.conf】
bash-2.03# cat /etc/resolv.conf
domain jinjin.com
nameserver 203.139.160.69
nameserver 203.139.161.37

【/etc/nsswitch.conf】
bash-2.03# grep hosts /etc/nsswitch.conf
# "hosts:" and "services:" in this file are used only if the
hosts: dns files #DNSを追加している。


【/dev/randomのインストール】
http://www.cosy.sbg.ac.at/~andi/SUNrand/
から自分のOSに合うパッケージをダウンロードしてきて

# pkgadd -d ANDIrand-0.7-5.8-sparc-1.pkg
実際のインストールログはこちら

でインストールしておきましょ。
もしくはsolaris8であれば112438-xxのパッチを
当てておけば/dev/randomが作成されます。

solaris9以上であればデフォルトで/dev/randomは
ついています。

--------コーヒーブレイク-------------

【壁紙を変更】
せっかくCDEが24bitできれいに動いてるんですから
毎日見る画面の壁紙もきれいに飾って快適な環境にしましょう。

http://www.google.com/
で「壁紙 ダウンロード」なんて検索すると山ほど
いろいろな壁紙がゲットできます。
しかし、大体がjpeg形式の画像です。
CDEではjpegを壁紙にすることはできません。
サポートしている形式はbmとxpmの2つだけです。
そこで変換に使用するのはCDEについているイメージビューアです。
でもいきなりCDEのイメージビューアで変換すると画像が汚くなるので

GIMP(or photoshop)とか適当な画像編集ツールで
gif変換してからxpmに変換するときれいな画像で壁紙ができます。


変換が完了したらその画像を
~/.dt/backdrops/
の中に入れます。デフォルトでは存在しないので
自分で作成します。

#mkdir -p ~/.dt/backdrops

全ユーザでその画像を利用できるようにするには
/etc/dt/backdrops
にいれておきます。やはりデフォルトでは存在しないので作成します。
#mkdir -p /etc/dt/backdrops
あとはスタイルマネージャで背景を自分の作成したものを選択してください。
ちなみに私の場合はこんな感じです。
結構きれいになるものでしょ?
っていうかここまで読んだあなたはそんなもん誰がするねん!
って思ってるでしょう!やってる人は私の周りではいません・・・

【キーボードを抜いても固まらないように】
キーボードを抜くとシリアルからbreak信号を送信した時と同じ状態になります。
つまりStop+aキーを押したときと同じです。


※思わず抜いてしまったときはもう一度差し込んでピーってなったらgoを入力しましょう。
特にモニターもつないでない環境では音しか頼れるものがないので慌てずに行いましょう。


こんな心配をいちいちしたくない。キーボードを抜きまくってよその端末で
使い回ししたいといったときはこうします。


# /usr/bin/kbd -a disable
これを実行してしまえばすぐに抜いてもOKです。
しかし、リブートするとまたもとにもどってしまうので
このコマンドを実行しなくてはいけません。

そこでリブートしても抜き差しOKにしたいならファイルを編集します。
#vi /etc/default/kbd
#KEYBOARD_ABORT=disable この行をコメントをはずしてしまいます。

最近はUSBの機種しかないですが特にやっても問題ありません。
逆に言うとやっても意味ありません。

【telnetしたときのバナーを消す】
telnetしたときにはOSのバージョンを表示してしまうので
これを消してしまいましょう。
※バナー消すよりtelnetはとめてsshにしましょう!

# vi /etc/default/telnetd
BANNER="\nDo not login by telnet !\n\n"

これでログインしたらこんな感じです。
実行例
#telnet localhost
Trying ::1...
Connected to localhost.
Escape character is '^]'.


Do not login by telnet !

login:

ここにジョークで
BANNER="\n\nSunOS 5.10\n\n"
なんてやるとログインする瞬間「おっ!?」って感じに・・・
ならないか(^_^;

この後はDiskSuite4.2.1でミラーリングを行うことにする。ミラーリングの設定は少し説明が長くなったので
別ページで説明する。こちらをご覧ください。
※solaris9からはLVM(Soalris Logical Volume Manager)に名前が変わってますが同じものです。

【bashの設定】
※Solaris8ではbash2.03、Solaris9ではbash2.05がデフォルトで用意されているので
/bin/shよりはるかに機能が充実していて使いやすいのでそちらを使った時にLinuxの時のように
プロンプトが表示されるようにする。
# vi /etc/etc/profile
以下を追記しておきましょう。
if [ -n "$PS1" ]; then
PS1='[\u@\h \W]\$ '
# IGNOREEOF=3
unset ignoreeof

fi


USER=`id -un` #このidコマンドはshutilsをインストールしていないとエラーになります。
LOGNAME=$USER
HOSTNAME=`/usr/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000

alias ls='ls -f --color=auto --show-control-chars' #このlsコマンドの--colorと--show・・・はfileutilsをインストールしていないと使えません。
alias cp='cp -ip'
alias rm='rm -i'
alias mv='mv -i'

alias df='df -h'
これでプロンプトは一般ユーザでのログイン時
[root@home4 usr]$
スーパーユーザでのログイン時は
[root@home4 usr]#
にかわり、aliasで定義したコマンドはデフォルトで追記したオプションを
つけて実行されるようになります。