一通り勉強して躓いたところ
Solaris 10 のハードウェア要件 †
SPARC | 200MHz |
x86 | 120MHz |
MEM | 64MB、推奨256MB、GUIインストール 384MB |
HDD | 2GB |
インストールグループ †
- Reduced Network Support Software Group
- Core System Support Software Group
- End User Solaris Software Group
- Developer Solaris Software Group
- Entire Solaris Software Group
- Entire Solaris Software Group with OEM (Original Equipment Manifucturer)
インストール方法 †
- inteructive (CD/DVD/LAN)
- Jumpstart
- フラッシュアーカイブ
- WAN Boot
- ライブアップグレード
pkg??? †
pkgadd | パッケージのインストール |
pkgadd -d | パッケージのスプール |
pkgask | pkgadd の応答ファイルを作る |
pkgchk | インストール結果の検証。スプールされているパッケージの検証 |
pkginfo | インストールされたパッケージの情報 |
pkgparam | インストール時のパラメータを表示。pkginof -i |
pkgrm | インストールされたパッケージの削除 |
pkgmk | パッケージ作成 |
pkgtrans | pkgmkで作ったパッケージを1ファイル化する |
patch??? †
patchadd | パッチのインストール。現行バージョンのバックアップ |
patchadd -u | 現行バージョンのバックアップを行わない |
patchadd -p | パッチに関する情報の取得 |
showrev -p | 現時のぱっちりビジョンを表示 |
patchrm | パッチの削除。前リビジョンに「リストアする」 |
Solaris のブート手順 †
- SPARC
1 | Boot PROMフェーズ | POST |
ROM より bootblk が読み込まれる |
2 | ブートプログラムフェース | bootblk が UFS より ufsboot を読み込む |
3 | init | /etc/initiab (SMF起動) |
4 | SMF | サービス起動 |
- x86
1 | CPU | 0xFFFF0を実効(BIOSへのJP命令) | Boot PROMフェーズに相当 |
2 | BIOS | POST |
MBR にある mboot を読み込む |
3 | mboot | HDDのブートセクタより pboot (Boot PROMに相当) を読み込む |
4 | pboot | パーティションより bootblk を読み込む |
5 | bootblk | パーティションより /boot.bin (ufsbootに相当) を読み込む | ブートプログラムフェーズに相当 |
6 | init | /etc/initiab (SMF起動) | |
7 | SMF | サービス起動 | |
Runlevel †
0 | Power Down |
S | Single User |
1 | Single User Management |
2 | Multi User |
3 | Multi User with NFS |
4 | 予備 |
5 | Power Down(自動電源切断) |
6 | Reboot |
確認 : who -r
Runlevel 変更 †
0 | halt |
5 | poweroff |
6 | reboot |
? | init ? |
? | shutdown -i? -g0 -y |
Default Runleve 変更 †
svcadm milestone -d milestone/single-user
svcadm milestone -d milestone/multi-user
svcadm milestone -d milestone/multi-user-server
Boot PROM コマンド †
ok printenv
ok setenv <varName> <value>
ok synk
ok boot disk
[STOP]キー †
[STOP] | boot時にPOSTをバイパス |
[STOP]+A | Abort |
[STOP]+D | boot時にPOSTを行う |
[STOP]+N | NVRAMの内容をデフォルト値(工場出荷時)にする |
各種ファイル †
/device | 物理デバイスファイル |
/dev | 論理デバイスファイル |
/etc | 構成ファイル・管理ファイル |
/lib | SMFのサービス実行ファイルはここに入っている |
/etc/mnttab | マウントされているデバイス一覧 |
/etc/vfstab | ブート時にマウントされるデバイス一覧(=シャットダウン時にアンマウントされるデバイス一覧 |
/usr/sadm/defadduser | useraddのデフォルト値 |
/etc/default/passwd | passwdのデフォルト値 |
/var/adm/sulog | suコマンドの実行履歴(デフォルト設定ではここに書かれる) |
/etc/defalut/su | suに関する設定ファイル、実効履歴ファイル名もここで定義されている |
/var/adm/loginlog | login失敗記録(touchでこのファイルを作るとログを取り始める) |
/etc/nologin | root以外ログインできなくするファイル |
物理デバイスと論理デバイスの確認コマンド †
dmesg | 物理デバイス名・論理デバイス名(インスタンス名)を確認可能 |
format | ディスク情報を確認可能 |
prtconf | メモリやデバイスの情報を確認可能 |
sysdef | カーネルパラメータの情報を確認可能 |
less /etc/path_to_inst | 物理デバイス名・論理デバイス名(インスタンス名)の対応表 |
シンボリックリンクとハードリンク †
| シンボリックリンク | ハードリンク |
作り方 | ln-s | ln |
inode | 別(リンク先へのポインタを格納するファイルが作られる | 共有 |
一般ファイルへのリンク | ○ | ○ |
ディレクトリへのリンク | ○ | × |
別ファイルシステムのファイルへのリンク | ○ | × |
存在しないファイルへのリンク | ○ | × |
rm | リンク先・リンク元は関係ない | リンク先・リンク元は一蓮托生 |
最大ファイル容量 †
| Large | Multi Tera Byte |
32bit | 全 1TB | 1ファイル 2GB | × |
64bit | 全 1TB | 1ファイル 2GB | 全 16TB | 1ファイル 1TB |
ディスクのデバイス名 †
| C | T | D | S |
SPARC | c0 | t0 | d0 | s0 |
x86 | c0 | × | d0 | s0 |
- c :論理コントローラ
- t :論理バスターゲット( x86 / IDE には無い )
- d :ディスク
- s :スライス
ディスクスライス †
SMI-SPARC | | 0:VTOKラベル | 1 | 2:全体参照 | 3 | 4 | 5 | 6 | 7 | | |
SMI-x86 | | 0:VTOKラベル | 1 | 2:全体参照 | 3 | 4 | 5 | 6 | 7 | 8:bootblk | 9:代替セクタスライス |
EFI-SPARC | EFIラベル(-33セクタ) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 8:EFI予約 | |
EFI-x86 | EFIラベル(-33セクタ) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 8:EFI予約 | |
デバイス再構成 †
- 方法1 : devfsadm
- 方法2 : /reconfigure ファイルを作って reboot
umountall でアンマウントされないディレクトリ †
- /
- /dev/fd
- /proc
- /usr
- /var
- /var/adm
- /var/run
mount と fsck †
mount /dev/dsk/c0t0d0s0 /disk2 | Block Device |
fsck /dev/rdsk/c0t0d0s0 /disk2 | Raw Device |
/etc/passwd †
<username>:<password>:<uid>:<gid>:<comment>:<home directory>:<login shell>
- username
- unique、2〜8文字、最初は英文字、最低一文字小文字
- uid
- ここには、primary group の id を記述。他に最大 15 の secondary group に属せる(/etc/group)
- パスワード長
- /etc/default/password
- /etc/security/policy.conf
- logins -p パスワードなしの人一覧
- password -l 無効化
/etc/group †
<groupname>:<password>:<gid>:<user list>
/etc/shadow †
<username>:<password>:<lastchg>:<min>:<max>:<warn>:<inactive>:<expire>:<flag>
userdel †
- r を付けて実行しないと、ホームディレクトリが残る
シェル初期化ファイル †
csh | /etc/login | /.cshrc | /.login |
---|
sh | /etc/profile | /.profie | |
---|
ksh | /etc/profile | /.profile | /.kshrc |
---|
- 初期化ファイルのスケルトン
csh | /etc/skel/local.cshrc, /etc/skel/local.login |
sh | /etc/skel/local.profile |
ksh | /etc/skel/local.profile, /etc/skel/local.kshrc |
reboot記録 †
- who -b
- system boot ユーザのログイン記録を見る
- last reboot
- 過去の reboot ユーザのログイン記録を見る( /var/adm/wtmpx の内容を表示するコマンド )
ファイルパーミッション †
ftpのセキュリティ †
/etc/ftpd/ftpusers | 禁止ユーザ(/etc/passwdのユーザ) |
/etc/ftpd/ftphosts | allow | 許可ホスト |
deny | 拒否ホスト |
/etc/shells | ftpで使えるshell |
ps †
ps <option> | |
pgrep <option> <pattern> | ps | grep <pattern> |
prstat <option> <interval> | デフォルトは5秒ごと |
- ps -l の S フィールド
O | 実行中 |
R | 実行可能 |
S | スリープ |
T | トレース済み |
Z | ゾンビ |
kill †
kill <signal> <pid> | |
pkill <signal> <process name> | pkillでは、pidを指定できない |
pkill <signal> -U <user> | |
pstop <pid> <processname> | 一時停止 |
prun <pid> <processname> | 再開 |
pwait <pid> <processname> | 終了待ち |
SIGNAL †
1 | SIGHUP | ハングアップ |
2 | SIGINT | 割り込み Ctrl+C |
3 | SIGQUIT | 終了 Ctrl+\ |
6 | SIGABORT | 異常終了 |
9 | SIGKILL | 強制終了 |
15 | SIGTERM | 正常終了、killのデフォルト値、「自動クリーンアップ」 |
23 | SIGSTOP | 一時停止 |
25 | SIGCONT | 再開 |
/etc/crontab †
秒 分 日 月 曜日 コマンド
日曜日は 0
- crontab -e の実行権限
/etc/cron.allow | /etc/cron.deny | |
○ | ○ | allowが有効 |
○ | × | allowが有効 |
× | ○ | denyが有効(インストール直後の状態) |
× | × | rootのみ使える |
プリントサービスの確認・起動・停止・構成(追加・削除) †
確認 | lpstat -r | svcs svc:/application/print/server |
起動 | /usr/lib/lpsched | svcadm enable svc:/application/print/server |
停止 | /usr/lib/lpshut | svcadm disable svc:/application/print/server |
追加 | lpdadmin -p <printer> |
削除 | lpdadmin -x <printer> |
※lpdadmin を実行すると、自動的にプリントサービス( lpsched )が起動する
プリントジョブ管理コマンド †
ジョブ削除 | cancel <printer> |
リクエスト拒否 | reject <printer> |
リクエスト再開 | accept <printer> |
プリントしない(spoolに貯めるだけ) | disable <printer> |
プリント再開 | enable <printer> |
プリンタ仕様権限 †
users.allow | users.deny | |
○ | ○ | allowが有効 |
○ | × | allowが有効 |
× | ○ | denyが有効(インストール直後の状態) |
× | × | 全ユーザがプリント可能 |
all | ○ | 全ユーザがプリント可能 |
all | × | 全ユーザがプリント可能 |
× | all | su,lpのみプリント可能 |
※lpadmin でもこれらのファイルを編集可能
バックアップコマンド †
| 増分 | 複数テープ |
ufsdump | ○ | ○ |
cpio | × | ○ |
pax | × | ○ |
tar | × | × |
dd | × | × |
- ufsdump が見るファイル
/etc/dumpdates | バックアップ履歴 |
/etc/vfstab | マウントするデバイス名のリスト |
- ufsrestore
- ./restoresymtable ファイルが残るので手動で削除すること
- fssnap で、スナップショットを削除する方法
- reboot するとスナップショットは削除される
- fssnap -d <スナップ元ディレクトリ>
- fssnap -i <スナップ元ディレクトリ> で、-o オプションも付けて起動しておくと、fssnap -d でスナップショットを削除売るとき、バッキング・ストア・ファイルも消してくれる
クラッシュからの復旧 †
- CDから起動
- devfsadm でディスク追加
- newfs
- fsck
- mount
- テープを書き込み禁止にする
- ufsrestore
- umount
- fsck
- installboot でbootブロックを作成する
- ufsdump
- init 6 (reboot)
★最後の最後の確認事項 †
- インストールパッケージ
- Reduced Network
- Core
- End User
- Developer
- Entire
- Entire + OEM
- patchadd
- patchadd -u バックアップしない
- patchadd -p パッチ情報を表示
- runlevel変更
- halt 0
- poweroff 5
- reboot 6
- disk
- C(trl) T(arget) D(isk) S(lice) 、x86 には T なし
- スライス
- SMI 0-7
- 第0スライス:VTOKラベル、第2スライス:全体
- x86 → 第8スライス:bootblk 第9スライス:代替えセクタスライス
- EMF 0-6
- 0-33 sector EMF
- 第8スライス EMF 予約
- デバイスの確認
dmesg | 物理デバイス名・論理デバイス名(インスタンス名)を確認可能 |
format | ディスク情報を確認可能 |
prtconf | メモリやデバイスの情報を確認可能 |
sysdef | カーネルパラメータの情報を確認可能 |
less /etc/path_to_inst | 物理デバイス名・論理デバイス名(インスタンス名)の対応表 |
- ディレクトリ
- /etc/mnttab ※ mounttab ではない
- /usr/sdadm/defadduser
- /var/adm/sulog
- /etc/default/su
- reboot 記録の表示
- last reboot | head -3 (上の方が新しい)
- プロセスの状態
- O(実行中) R(実行可) T(トレース済み) S(スリープ) Z(ゾンビ)
- kill
- kill は、pidのみ
- pkill は、プロセス名のみ
- SIGNAL
- 1 SIGHUP
- 2 SIGINT
- 3 SIGQUIT
- 6 SIGABOUT
- 9 SIGKILL
- 15 SIGTERM
- cron と printer の権限
cron.allow | cron.deny | cron | | users.allow | users.deny | |
○ | NA | allow | | ○ | NA | allow |
× | ○ | deny | | × | ○ | allow |
× | × | rootのみ | | × | × | みんな使える |
- users.deny に all → root と lp のみ
- バックアップ
- 増分ができるのは ufsdump のみ
- gun系は、複数テープを使えない( tar,dd )
- ufsdump,cpio,pax は複数テープを使える
★再受験無料チケットで試しに受けてみたときに出来なかった問題 †
Open Boot PROM モニタの boot オプション。指定できるデバイス、オプションを再確認する(特にシステム修復時) †
ok boot <device> <option>
ok boot
ok boot -s シングルユーザモード
ok boot -r デバイスファイルを再構成
ok boot cdrom -s シングルユーザモード(/がぶっ飛んだ)
ok boot net 無指定の時は RARP
ok boot net:dhcp
ok boot net:rarp Reverse ARP。MACアドレスからIPアドレスを求める
ok set-default 標準設定に戻す
ok reset 変更点の保存+リブート
ok reset-all 変更点の保存+リブート
ok prode-scsi 認識されているデバイスの表示
ok go OSの画面に戻る
ok sync 同期を取ってリブート(OSがハングアップしたときなど)
ok devalias エイリアス名を表示(DISKやCDROMなど)
ok nvalias エイリアス名の設定
ok nvunalias エイリアス名を削除する
*OS起動後は/etc/path_to_instで物理デバイス名とインスタンス名が見れる
x86 で CDブート後に設定できるオプション(システム修復時) †
起動時に ESC を押して Solaris DCA(Device Control Assistant) に入る
Select (b)oot or (i)nterpreter: b -s
Root password for system maintenance (control-d to bypass) ******
(試験範囲外)
Open Boot PROM モニタの banner で出てくるのは? †
ok banner
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard
OpenBoot 3.15, 128 MB memory installed, Serial #999999.
Ethernet address 999999, Host ID: 999999.
WANブートで必要なプロトコル †
- DHCP または、Open Boot PROM での指定で IP アドレスを設定
- HTTP で、wanboot をダウンロード
- HTTP/HTTPS で、Jumpstart ファイルをダウンロード
tar †
- 展開時の更新時刻は、アーカイブのファイル属性のもの (-m で展開時の時刻に上書き)
- 展開時のデフォルト動作は同名ファイルを上書き(-k で上書きしない)
ufsrestoer †
set owner/mode for `.'? [yn] y
ファイルモードを上書きする
whoが見ているのは †
- /var/adm/utmpx 現在ログインしているユーザ
lastが見ているのは †
- /var/adm/wtmpx ログイン・ログアウトの履歴
pmap,ptree,pfiles,pwd †
- pmap : アドレス空間
- ptree : プロセスツリー
- pfiles : 使っているファイル
- pwd : カレントディレクトリ
- df : ディスク容量 / du : ディレクトリ毎の容量
setfacl コマンド †
- ACL : 従来のファイルパーミッションの拡張
# ls -ld test
drwxr-xr-x 2 root other 512 12月 3日 16:09 test
ACLを設定すると、以下のようにパーミッションの最後に + が付いている。
# ls -ld test
drwxr-xr-x+ 2 root other 512 12月 3日 16:09 test
- ACLを見る
# getfacl test
- 変更
#setfacl -m <エントリータイプ:IDタイプ:パーミッション値> <ファイル(ディレクトリ)名>
# setfacl -m user:kagyuu:rwx test
# setfacl -m u:kagyuu:7 test
#setfacl -m group:temple:r-- test
#setfacl -m g:temple:4 test
- 新設
#setfacl -s <エントリータイプ:IDタイプ:パーミッション値> <ファイル(ディレクトリ)名>
- 削除
#setfacl -d ファイル名
cron で、偶数月の日曜日と水曜日に実行 †
0 4 * 2,4,6,8,10,12 0,3 /usr/local/hoge
分 時 日 月 曜日 コマンド
5分後にリブート †
shutdown -y -i6 -g 300
gは秒
XF86Config の書き方 †
- まず、Screen Section をみる
- Monitor は、"Monitor0" を使う
- 色数は、"16" bit
- 次に、Screen Section の Display SubSection? のうち 色数が "16" bit なエントリーをみる
- 解像度は、"1920x1200" "1280x1024" "1024x768" "800x600" の中から "Monitor0" で出力可
能なものを使う
- 最後に、Monitor Section のうち、Identifier が "Monitor0" なものをみる
- このモニターは "1280x1024" "1024x768" "800x600" が出力可能
- 結局、この Screen 定義によって選択される画面は
Computer#Unix