表 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. ブート可能なパーティションが複数ある場合、bootblk は fdisk テーブルを読んでデフォルトのブートパーティションの位置を捜し、利用可能なパーティションのメニューを表示する。この手順は、ブート可能なパーティションが複数ある場合しか行われない。 |
|
6. bootblk がルートファイルシステム内の二次ブートプログラム ufsboot を見つけて実行する。 |
|
7. ufsboot が、/etc/bootrc スクリプトを実行するコマンドインタプリタを起動する。このスクリプトは、システムブート用の選択メニューを表示する。デフォルトでは、カーネルを読み込んで実行する。 |
|
カーネル初期設定 |
8. カーネルが自身を初期設定し、ファイルの読み込みに ufsboot を使ってモジュールのロードを開始する。カーネルは、ルートファイルシステムのマウントに十分なモジュールをロードすると、ufsboot プログラムの対応づけを解除し、それ自身の資源を使って動作を続ける。 |
9.カーネルがユーザープロセス作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読んで他のプロセスを起動する。 |
|
init |
10. /sbin/init プロセスが実行制御 (rc) スクリプトを開始し、このスクリプトは一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムをマウントして検査し、いろいろなプロセスを開始し、システム保守作業を実行する。 |