Solarisの起動

パワーオン(電源ON)
PROMモニターモード
bootコマンドにより、bootblockがメモリにロードされる
bootblockからufsbootがロードされる
(ネットワークbootはufsbootではなく、inetbootが使用される)
ufsbootはコアカーネルイメージランタイムリンカー(krtld)をメモリにロードする
コアカーネルは、rootディスクからカーネルモジュールをロードし、
メインのスタートアップコードを実行する
カーネルはカーネル構造とリソースとソフトウェアコンポーネントを初期化する
initプロセスの実行

カーネルは
/platform/SUNW.profuct/kernel/unix
/kernel/genunix
の2箇所が読み込まれる。カーネルをロード完了するとinitプロセスが起動され、 /etc/inittabのランレベルに従いデーモン等が起動されます。 ちなみにPROMモードから起動した場合電源投入後にStop+Aを押下するとokプロンプトに移行し、 そこでboot+Enterでブート処理が続行します。

PROMモニターモードのコマンド

 ok boot              システムの起動(boot -sでシングルユーザーモード)
 ok boot -r           デバイスファイルを再構成(DISKの追加等)
 ok boot cdrom -s     CD-ROMからのブート(-sを取るとインストール)
 ok go                OSの画面に戻る
 ok sync              同期を取ってリブート(OSがハングアップしたときなど)
 ok devalias          エイリアス名を表示(DISKやCDROMなど)
 ok nvalias           エイリアス名の設定
 ok nvunalias         エイリアス名を削除する
      *OS起動後は/etc/path_to_instで物理デバイス名とインスタンス名が見れる
  

 ok printenv          現在の設定の表示(変数,設定値,デフォルト値)
 ok setenv            PROMの設定変更(OS起動後はeepromコマンド)
 ok set-default       標準設定に戻す
 ok reset             変更点の保存+リブート
 ok reset-all         変更点の保存+リブート
 ok prode-scsi        認識されているデバイスの表示


次にランレベルについて説明する。ランレベルは0から6とSがあり、それぞれのランレベルによって
どのデーモンが起動されるか決まる。起動後のランレベルを確認するには「who -r」コマンドでできる。

 0        PROMモニタモードへ移行(ここでpower-offを実行すると電源が落ちる)
 1orS     シングルユーザモード(1の場合はシステム管理者のみLOGON可能)
 2        マルチユーザーモード(クライアントとして動作ができる)
 3        マルチユーザーモード(サーバーとして動作できる:標準値)
 4        使われていない
 6        リブート
 5        電源OFF
  

このランレベルのデフォルト値は/etc/inittabファイルに記述されている。 「is:3:initdefault:」の3がデフォルトで起動されるランレベル。


停止方法はSolarisがコマンドとしているshutdownコマンド(実際はスクリプト)を使用する。
他にもinitコマンドやリブートする場合はrebootコマンドなどあるが、マルチユーザ環境とファイルの同期処理や
initプロセスの終了処理を考慮して、常にshutdownコマンドを使用する方が良い。

/usr/sbin/shutdown -y -g0 -i5
-gは何秒後にシャットダウン処理をするかを指定。0だとすぐ
-iはランレベルを意味する。5だと、電源OFFを意味する

OKプロンプト


障害時に電話切り分けとしてするオペレーション
起動しない時には、ここからディスク認識を確認

普通はauto-boot?をfalseにしていないでしょうからキーボードで止めます。
Stopキーを押しながらAキーを押して下さい。
瞬時にOKプロンプトに落ちます。
尚、OS起動時に実行すると強制終了してOKプロンプトへ移行します。
システム損傷の要因となるので絶対に行わないで下さい。

タイミングの取り方は人それぞれですが、モニタが表示されると同時に押せば吉です。
スタートアップ・メッセージが出る白い画面の事です。
キーボードのLEDが点灯すると画面表示直前です。キーに指をかけて待ちましょう。
タイミングの善し悪しに関して下記で説明します。


screen not found.
Can't open input device.
Keyboard not present. Using ttya for input and output.
Sun Enterprise 220R (UltraSPARC-II 360MHz), No Keyboard
OpenBoot 3.23, 384 MB memory installed, Serial #12954190.
Ethernet address 8:0:XX:XX:XX:XX, Host ID: 80XXXXXX.

Initializing Memory -
ok
白い画面が表示されると上記バナーが出力されます。
直後にメモリ・イニシャライズの意味で棒がクルクルと回ります。
遅くともこのタイミング迄にStop+Aして下さい。
うまくいけば、何も言わずOKプロンプトへ移行してくれます。


screen not found.
Can't open input device.
Keyboard not present. Using ttya for input and output.
Sun Enterprise 220R (UltraSPARC-II 360MHz), No Keyboard
OpenBoot 3.23, 384 MB memory installed, Serial #12954190.
Ethernet address 8:0:XX:XX:XX:XX, Host ID: 80XXXXXX.

Boot device: disk File and args:
/
Type 'go' to resume
ok
ok
ok probe-scsi
This command may hang the system if a Stop-A or halt command
has been executed. Please type reset-all to reset the system
before executing this command.
Do you wish to continue? (y/n) n
ok
失敗例です。Stop+Aが遅いとこうなります。
メモリ・イニシャライズが終わってType 'go' to resumeが出て来たら手遅れです。
一度立ち上げてからやり直して下さい。
この状況ではprobe-scsi等を叩いても失敗する可能性があります。
Ultra1等の一部の機種ではタイミングがやたらとシビアです。