Solaris のシステム管理

x86: ブートプロセスの詳細

表 10-5 は、前のページで図示した x86 ブートプロセスを説明します。

表 10-5 x86: x86 ブートプロセスの説明

ブートフェーズ 

説明 

BIOS 

1. システムをオンにすると、PC BIOS がセルフテスト診断を実行してシステムのハードウェアとメモリーを検査する。エラーが検出されなければ、システムは自動的にブートを開始する。エラーが検出されると、エラーメッセージが表示されて、復元オプションが示される。 

追加のハードウェアデバイスの BIOS がここで実行される。 

 

2. BIOS ブートプログラムが、ブートデバイス (フロッピーディスクかハードドライブ) から最初の物理セクタを読もうとする。ブートデバイス上のこの最初のディスクセクタにはマスタブートレコード mboot が格納されていて、これが読み込まれて実行される。mboot ファイルが見つからなかった場合は、エラーメッセージが表示される。

ブートプログラム 

3. mboot は、アクティブなパーティションを見つけるために必要なディスク情報と、Solaris ブートプログラム pboot の位置を格納していて、pboot を読み込んで実行する。

 

4. pboot が一次ブートプログラム bootblk を読み込む。このプログラムの目的は、ufs ファイルシステムにある二次ブートプログラムを読み込むことにある。

 

5. ブート可能なパーティションが複数ある場合、bootblkfdisk テーブルを読んでデフォルトのブートパーティションの位置を捜し、利用可能なパーティションのメニューを表示する。この手順は、ブート可能なパーティションが複数ある場合しか行われない。

 

6. bootblk がルートファイルシステム内の二次ブートプログラム ufsboot を見つけて実行する。

 

7. ufsboot が、/etc/bootrc スクリプトを実行するコマンドインタプリタを起動する。このスクリプトは、システムブート用の選択メニューを表示する。デフォルトでは、カーネルを読み込んで実行する。

カーネル初期設定 

8. カーネルが自身を初期設定し、ファイルの読み込みに ufsboot を使ってモジュールのロードを開始する。カーネルは、ルートファイルシステムのマウントに十分なモジュールをロードすると、ufsboot プログラムの対応づけを解除し、それ自身の資源を使って動作を続ける。

 

9.カーネルがユーザープロセス作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読んで他のプロセスを起動する。

init

10. /sbin/init プロセスが実行制御 (rc) スクリプトを開始し、このスクリプトは一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムをマウントして検査し、いろいろなプロセスを開始し、システム保守作業を実行する。