初めてのsolarisインストール。
- http://www.db.is.kyushu-u.ac.jp/computer/solaris/solaris_lab.html
- http://www.rinneza.com/junya/tech/solaris10_x86/os/etc_setting_01.html
この辺参考。
shutdown/reboot
installには直接関係ないけど、基本的なコマンドなので。かつ、どうしても覚えられないのでmemo。rebootはrebootでもいけたっけか。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
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
その他
なんかソース修正しないといけないようだ。
ここ参考。misc.cの616行目を書き換える。