Solaris10のインストールmemo

初めてのsolarisインストール。

この辺参考。

shutdown/reboot

installには直接関係ないけど、基本的なコマンドなので。かつ、どうしても覚えられないのでmemo。rebootrebootでもいけたっけか。init 6でもいいのかな。

shutdown -i5 -g0 -y	# shutdown
shutdown -i6 -g0 -y	# reboot

OSインストール

言語は日本語。パッケージはとりあえずデフォルトインストールで。X Windows削除しようとしたけど、依存関係解決するのが面倒だったのでデフォルトにした。

パーティション設定

適当に設定。/とか/varとか。Software Raid組むなら、metadbのデータベース格納用のパーティションも残しておくこと。SolarisはOSインストール時にSoftware Raid出来ないぽい?

OS起動時のデスクトップ(GUI)を無効

Solaris10はrunlevel 2でもGUI立ち上がるわけですね(debianみたい)。というわけで無効にする。

/usr/dt/bin/dtconfig -d
有効にしたい場合
/usr/dt/bin/dtconfig -e

Software RAID

DiskSuite(metadb、metastatとか)で設定する。

メタデータベースのためのパーティションをformatコマンドで確認しとくこと。5番目のスライスにデータベース作る例

metadb -a -f -c3 c0t0d0s5 c0t1d0s5

ディスクが1本故障した場合、復旧させた場合などにメタデータベースを修正しないといけない。

metadb -d c0t1d0s5     ### 削除
metadb -a -c3 c0t1d0s5 ## 追加

metadbのmフラグは再起動時に適当なとこに振られるみたい。

## 1本目ディスクの1番目のパーティション
metainit -f d21 1 1 c0t0d0s1
## 1本目ディスクの2番目のパーティション
metainit -f d22 1 1 c0t1d0s1
## メタデバイス作成 1本目のディスクだけでまず作成
metainit  d2 -m d21
## 2本目をアタッチ
metattach d2 d22
## 1本目ディスクの/パーティョン
metainit -f d11 1 1 c0t0d0s0
## 1本目ディスクの/パーティション
metainit -f d12 1 1 c0t1d0s0
## メタデバイス作成 1本目のディスクだけでまず作成
metainit  d1 -m d11


## /etv/vfstabを書き換える
metaroot d1
## lockして再起動
lockfs -fa
init 6
## 2本目をアタッチ
metattach d1 d12

再起動したら/etv/vfstabを編集して、他のパーティションもミラーデバイスをマウントするようにする。

2本目から起動するためのgrubの設定

installgrubを使う。最後の引数は2本目のルートパーティション

/sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0

DNSの設定

  • /etc/nsswitch.conf
hosts: files dns
  • /etc/resolv.conf
nameserver 192.168.0.1

OSにpatchあててupdateする

  • Sunのユーザ登録

登録用に適当なファイル作る。userとpassはISOイメージDLする時に入力したもの。

userName="ユーザ"
password="パス"
hostName=
subscriptionKey=
portalEnabled=false
proxyHostName=
proxyPort=
proxyUserName=
proxyPassword=
  • patch update

数時間ぐらいかかった。patch次第では完了後にrebootする必要がある?

# chmod 600 /tmp/register.txt
# sconadm register -a -r /tmp/register.txt
# smpatch analyze
# smpatch update
# smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list

GNU関係のbasicなソフトのインストール

パッケージを利用してインストールする。

  • インストールしたlist
db-4.2.52.NC-sol10-intel-local
diffutils-2.8.1-sol10-intel-local
expat-1.95.5-sol10-intel-local
findutils-4.2.30-sol10-x86-local
gawk-3.1.5-sol10-x86-local
gettext-0.14.1-sol10-intel-local
grep-2.5.1a-sol10-x86-local
groff-1.19.2-sol10-x86-local
gzip-1.3.5.10-sol10-x86-local
libgcc-3.4.6-sol10-x86-local
libiconv-1.11-sol10-x86-local
librsync-0.9.7-sol10-x86-local
libxml2-2.6.26-sol10-x86-local
lsof-4.77-sol10-x86-local
lynx-2.8.5-sol10-intel-local
make-3.81-sol10-x86-local
ncurses-5.6-sol10-x86-local
nmap-4.20-sol10-x86-local
openssl-0.9.8e-sol10-x86-local
patch-2.5.4-sol10-x86-local
pcre-7.2-sol10-x86-local
perl-5.8.8-sol10-x86-local
readline-5.2-sol10-x86-local
rsync-2.6.9-sol10-x86-local
tar-1.18-sol10-x86-local
tcpdump-3.9.7-sol10-x86-local
watch-3.2.7-sol10-x86-local
wget-1.10.2-sol10-x86-local
  • まとめてインストール

pkgaddで入れる。基本的にall、yesを選べばOK。

cd /usr/local/src/sfw_basic/
## wgetなどで必要なファイルをDL


for file in `ls`
do
gunzip $file
pkgadd -d `echo $file | sed -e s/\.gz$//`
done
  • ライブラリのsymlink

かなりあやしい。。watchを使うためのad hocな解決策。libstdc++.so.5がなかったのでlibstdc++.so.6のsymlinkはった。とりあえずwatchは動いた。

ln -s /usr/local/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.5

やっておいてなんだけど、バージョン違うライブラリをsymlinkなんかしたらダメですよね。やめておこう。

  • ライブラリパスの追加

linuxのldconfigみたいな感じ。

crle -l /lib:/usr/lib:/usr/local/lib
# パス表示
crle
# パス追加
crle -u /usr/local/lib
# パス設定
crle -l /lib:/usr/lib:/usr/local/lib

inetdの設定

tcp wrapperを有効にする

inetadm -M tcp_wrappers=TRUE

サービスの管理

SMF (Service Management Facility)。起動時のサービスの設定。/etc/rc2.d/の中だけじゃないのね。

# svcs -a

その他

なんかソース修正しないといけないようだ。

ここ参考。misc.cの616行目を書き換える。