表 10-5 に、上記の図に示した x86 ブートプロセスについて説明します。
表 10-5 x86 ブートプロセスの説明
ブートフェーズ |
説明 |
---|---|
BIOS |
1. システムの電源をオンにすると、PC BIOS がセルフテスト診断を実行してシステムのハードウェアとメモリーを検査する。エラーが検出されなければ、システムは自動的にブートを開始する。エラーが検出されると、エラーメッセージが表示されて、復元オプションが示される。 追加のハードウェアデバイスの BIOS がここで実行される。 |
|
2. BIOS ブートプログラムが、ブートデバイス (フロッピーディスクかハードドライブ) の最初の物理セクターを読もうとする。ブートデバイス上のこの最初のディスクセクターにはマスターブートレコード mboot が格納されており、このレコードが読み込まれて実行される。mboot ファイルが見つからなかった場合は、エラーメッセージが表示される。 |
ブートプログラム |
3. mboot には、アクティブなパーティションと、Solaris ブートプログラム pboot の位置を見つけるのに必要なディスク情報が、格納されており、mboot は、pboot を読み込んで実行する。 |
4. pboot が一次ブートプログラム bootblk を読み込む。このプログラムは、ufs ファイルシステムにある二次ブートプログラムを読み込む。 |
|
5. ブート可能なパーティションが複数ある場合、bootblk は fdisk テーブルを読んでデフォルトのブートパーティションをさがし、利用可能なパーティションのメニューを表示する。ブートするパーティションを選択する際に、30 秒経過するとタイムアウトになる。これは、ブート可能なパーティションが複数ある場合にのみ発生する。 |
|
6. bootblk はルートファイルシステムで二次ブートプログラム boot.bin または ufsboot をさがし、実行する。Configuration Assistant を起動するときは、5 秒以内に自動ブートに割り込みをかける。 |
|
7. 二次ブートプログラム boot.bin または ufsboot が /etc/bootrc スクリプトを実行するコマンドインタプリタを起動する。ここでシステムのブート方法を選択するメニューが表示される。デフォルトでは、カーネルが読み込まれ、実行される。ブートオプションを指定したり、ブートインタプリンタを起動するときは、5 秒以内に行う。 |
|
カーネル初期設定 |
8. カーネルは二次ブートプログラム boot.bin または ufsboot を使用してファイルを読み取り、カーネル自身を初期化して、モジュールの読み込みを開始する。ルートファイルシステムをマウントするのに十分なモジュールをカーネルが読み込むと、二次ブートプログラムのマッピングを解除し、それ自身の資源を使用してブートを継続する。 |
9.カーネルはユーザープロセスを作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読み込んで他のプロセスを起動する。 |
|
init |
10. /sbin/init プロセスは実行制御 (rc) スクリプトを開始し、このスクリプトが一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムを検査、マウントし、さまざまなプロセスを実行して、システム保守作業を実行する。 |