なお本文中 Digital UNIX は DU と省略表記している。
boot が開始されると level S (Single user mode) を経て level 2/3 に移行する。 最終的な level は /etc/inittab に定義されている。例えば以下のエントリは level 3 でシステムを起動することを意味している。
| is:3:initdefault: |
|---|
% who -r . run-level 3 5月 10 17:07 3 0 SSolaris では Single user mode になると、root のパスワードが要求される。従来の ように Super user の password を忘れてしまうと、大抵の場合は手出しできなくなる ので注意が必要。
| シャットダウンの一覧 | SVR4 | BSD | init |
| システム停止(halt) | -i0 | -h | 0 |
| Single user mode へ | -is | なし | s |
| Reboot | -i6 | -r | 6 |
| halt & 電源断 | -i5 | N/A | 5 |
haltする場合 /usr/sbin/shutdown -g0 -i0
reboot 〃 /usr/ucb/shutdown -r now
Single user /sbin/init s
/usr/bin/csh ← dynamically linked /usr/bin/ksh ← 〃 /usr/bin/sh ← 〃 /sbin/sh ← statically linked
/usr/sbin/useradd [-u uid [-o] | -g group | -G group[[,group]...] |
-d dir | -s shell | -c comment | -m [-k skel_dir] | -f inactive |
-e expire ] login
よく使うオプションを以下に解説する。
usermod -u uid [-o] | -g group | -G group[[,group]...] | -d dir [-m] |
-s shell | -c comment | -l new_logname | -f inactive |
-e expire login
※ Solaris 2.4 では、chfn, chsh が廃止になっており、全て usermod で行なう。
また、これらユーザ情報に関するコマンドは root 権限が必要。
ok probe-scsiまた SCSI-ID はデバイスの種類に応じて予約されており、これ以外を使用すると不 都合が生じる(なんらかのプログラムが動作不良?)場合がある。
0 - 3 : Disk (3 は内蔵)
4, 5 : Tape
6 : CD-ROM
デバイス接続が確認されたら、構成変更モード(-r 付き boot コマンド)でシステム
をブートする。これはコンフィグレーションがダイナミックに変更できるようになっ
たためで、デバイスの追加についてはカーネルの再構築は不要となった。
このとき /dev/, /devices/ が再作成され、関連ドライバーもインストールされる。 Solaris のデバイスファイルは非常に長い名前になっている。
block device) /dev/dsk/c0t3d0s0
char. device) /dev/rdsk/c0t3d0s0
この名前にはそれぞれ2桁づつ区切って意味がある。
/devices/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0:a
システム省略値は従来と同様で、以下の通り
| スライス | ディレクトリ |
|---|---|
| s0 | / |
| s1 | swap |
| s2 | (ディスク全体) |
| s3 | 未使用 |
| s4 | 未使用 |
| s5 | /opt |
| s6 | /usr |
| s7 | /export/home |
# /usr/sbin/newfs /dev/rdsk/c0t3d0s3
newfs により lost+found が作成される。但し Digital UNIX のような mklost+found
はないため、誤って削除すると作成に手間がかかる。
DU の mklost+found はスクリプトであるため、これを流用することも出来る。
また minfree の値を 0 にする事が出来るようになった。 newfs の(-m)パラメータ
でも指定できるが、既に使用を開始しているファイルシステムであれば tunefs を利
用する。
# /usr/sbin/tunefs -m 0 /dev/rdsk/c0t3d0s3
マウント
まず手動でマウントし、確認できたら vfstab に記述する。
mount は mount(1m) により行なう。多くのファイルシステムをサポートするため、
ファイルシステム指定オプション(-F)がある。
# mount -F ufs /dev/dsk/c0t3d0s3 /opt
動作確認ができたら、/etc/vfstab に記述する。vfstab では boot 時に自動的にマ
ウントするかどうかの属性があるので、従来と同じようにマウントする場合は、この
フィールドを yes にする。
vfstab(4) は空白(タブ)で区切られた7つフィールドからなる。以下に先頭から順を
追って解説する。
# mountall -F nfs
# umountall
また /etc/vfstab に記述することで、mount コマンドはより簡単に実行できるよう
になる。
# mount /opt
# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid on Thu Feb 23 13:54:11 1995
/usr on /dev/dsk/c0t3d0s6 read/write/setuid on Thu Feb 23 13:54:11 1995
この値は少々わずらわしいのでオプション(-p)の使用を薦める。なお、このオプショ
ンは vfstab(4) の形式で出力されるため、手作業で mount したディスクを vfstab
に記述する際には便利である。
# mount -p
/dev/dsk/c0t3d0s0 - / ufs - no rw,suid
/dev/dsk/c0t3d0s6 - /usr ufs - no rw,suid
# devnm /usr/ucb /dev/dsk/c0t3d0s6 /usr/ucb # ufsdump 0uf /dev/rmt/0hn /dev/dsk/c0t3d0s6なおテープ装置のデバイス名は以下のネーミング・ルールとなっている。(詳細は、 st(7) 参照のこと)
/dev/rmt/<通番><密度><動作指定>
# ufsrestore if server:/dev/rmt1h
Sun が提供するソフトウエアは機能毎にソフトウエア・パッケージと呼ばれる単位で 扱う(これは DU のサブセットに対応するものである)。さらに製品として複数のパッ ケージをまとめたクラスタも存在する。
# /usr/sbin/pkgadd -d /cdrom/cdrom0/s0/Solaris_2.5 SUNWman
同様にデインストールは pkgrm による。
# /usr/sbin/pkgrm SUNWman
pkgadd, pkgrm とも依存するパッケージをチェックする。これにより他から参照され
ているパケージの誤削除の回避、インストールに際し不足したパッケージの表示が可
能となった。
% pkginfo
system JSatok7r ATOK7 for Japanese Solaris, (Root)
system JSatok7u ATOK7 for Japanese Solaris, (Usr)
application SPJAabcc C 3.0.1 Japanese AnswerBook
application SPJAabins 3.0.1 Installation Japanese AnswerBook
:
またパッケージのインストール確認は pkgchk で行なう。
% pkgchk -a JSatok7r # インストール済みの場合なにも表示されない
% pkgchk -a HOREHORE
警告: と関連するパス名がありません。
またインストールされたパッケージのインストール時の属性と現在の属性の比較も
可能。
% pkgchk -a -p /tmp
ERROR: /tmp
グループ名 は実際には です。
所有者名 は実際には です。
スクリプトは /etc/init.d の下に作成する。おおよそ他のスクリプトに似せて作成 すればよい。唯一の規則は引き数は1つで、start または stop が渡される。 スクリプトではこの引き数に従って、サービスを起動または停止させる。 一般的なパターンは以下のようになる。
# /sbin/sh
# コメント
:
case $1 in
'start')
起動処理
;;
'stop')
停止処理
;;
esac
<順序番号2桁>スクリプト名[.sh]
最初は K または S で始まる。S は Start の意味で、この Run level に上がってきた
ときに start が引き数として渡される。K は Kill の略で、上位の Run level から
下がってきた時に stop が引き数として渡される。
% cat /etc/init.d/oracle7
:
#
# Oracle DB start up
#
ORACLE_HOME=/Ora/oracle7
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
case "$1" in
'start') echo "Starting ORACLE7" >/dev/console
su - oracle -c "$ORACLE_HOME/bin/dbstart"
;;
'stop') echo "Stopping ORACLE7" >/dev/console
su - oracle -c "$ORACLE_HOME/bin/dbshut"
;;
esac
% cd /etc/
% ls -li init.d/oracle7
666 -rwxr--r-- 3 root sys 330 3月 27日 18:41 init.d/oracle7*
% find /etc/ -inum 666 -print
/etc/init.d/oracle7
/etc/rc3.d/S90oracle
/etc/rc0.d/K40oracle
また、現在 Solaris 2.4 では以下のディレクトリが標準的に存在する。
/etc/init.d rc スクリプト本体
/etc/rc0.d/ ← Shut down 時に参照
/etc/rcS.d/ ← Single user 移行時に参照(boot/shutdown)
/etc/rc1.d/ ←
/etc/rc2.d/ ← Multi user. Network 使用なし
/etc/rc3.d/ ← 〃 Network 使用
Shared memory for Oracle7 +++++++++++++++++ set shmsys:shminfo_shmmax=33554432 set shmsys:shminfo_shmmni=80 set shmsys:shminfo_shmseg=6 set semsys:seminfo_semmns=200 set semsys:seminfo_semmni=50 set semsys:seminfo_semmsl=20 Shared memory for Oracle7 -----------------
# echo $MANPATH /usr/share/man:/usr/openwin/share/man # catman -wまた各種プロダクトも個別に man page を持つが、これらの whatis もない場合が多 いので、適時作成する事が望ましい。
当該ユーザがいない場合は、