この章では、SPARC や x86 システムでブートするのに使用するハードウェア、および各プラットホームのブートプロセスの概要を説明します。
この章の内容は次のとおりです。
システムのブート手順については、第 8 章「SPARC: システムのブートの手順」または、第 9 章「x86: システムのブートの手順」を参照してください。
SPARC システムごとに、「モニター」と呼ばれるプログラムを格納している PROM (プログラム可能な読み取り専用メモリー) チップがあります。モニターは、カーネルが使用される前に、システムの動作を制御します。システムをオンにすると、モニターはシステムのハードウェアやメモリーなどを検査するセルフテスト手順を実行します。エラーが検出されなければ、システムは、自動ブートプロセスを開始します。
Solaris システムが動作する前に、以前のシステムの一部には PROM アップグレードが必要なものもあります。詳細については、購入先にお問い合わせください。
ブート PROM フェーズ | ブート PROM が、セルフテスト診断を実行する。 |
ブート PROM が、bootblock プログラムを読み込む。 | |
ブートプログラムフェーズ | ブートブロックプログラムが、ufsboot プログラムを読み込む。 |
ufsboot プログラムが読み込まれてから、ブート PROM がカーネルを読み込む | |
カーネル初期設定フェーズ | カーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。 |
カーネルが init プロセスを起動する。 | |
init フェーズ | init プロセスが、実行制御スクリプトを起動する。 |
表 10-2 に、上で図示した SPARC ブートプロセスについて説明します。
表 10-2 SPARC ブートプロセスの説明
ブートフェーズ |
説明 |
---|---|
ブート PROM |
1. PROM は、システム識別情報を表示し、セルフテスト診断を実行してシステムのハードウェアとメモリーを検査する。 |
|
2. PROM は一次ブートプログラム bootblk を読み込む。このプログラムの目的は、デフォルトのブートデバイスから ufs ファイルシステムにある二次ブートプログラムを読み込むことにある。 |
ブートプログラム |
3. bootblk プログラムは二次ブートプログラム ufsboot を検索して実行し、それをメモリーに読み込む。 |
|
4. ufsboot プログラムが読み込まれたあと、ufsboot プログラムはカーネルを読み込む。 |
カーネルの初期設定 |
5. カーネルが自身を初期設定し、ファイルの読み込みに ufsboot を使ってモジュールのロードを開始する。カーネルはルートファイルシステムをマウントするのに十分なモジュールをロードすると、/ufsboot プログラムの対応づけを解除し、それ自身のリソースを使って動作を続ける。 |
init |
6. カーネルがユーザープロセスを作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読んで他のプロセスを起動する。 |
7. /sbin/init プロセスが実行制御 (rc) スクリプトを起動し、このスクリプトは一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムをマウントして検査し、いろいろなプロセスを開始し、システム保守作業を実行する。 |
カーネルが起動される前は、システムは、PC 上のファームウェアインタフェースである、読み取り専用メモリー (ROM) の Basic Input/Output System (BIOS) によって制御されます。
ハードウェアアダプタにオンボード BIOS を搭載することができ、それによってデバイスの物理的特性を表示したり、デバイスにアクセスしたりすることができます。
起動シーケンスの間、PC の BIOS はアダプタ BIOS があるかどうか調べ、あれば、それぞれをロードして、実行します。アダプタの BIOS はそれぞれセルフテスト診断を実行して、デバイス情報を表示します。
Solaris のブート時に、ブートシステムについて次の選択を行えます。
一次ブートサブシステム (「Partition Boot」メニュー) - この最初のメニューは、ブート可能な fdisk パーティションがディスク上に複数ある場合に表示されます。このメニューで、どの fdisk パーティションからブートするかを指定できます。何も指定しなければ、デフォルトではアクティブなパーティションからブートします。
Solaris のパーティション以外のパーティションからブートするように指定すると、次の 2 つのメニューは表示されません。
自動ブートプロセスへの割り込み - 自動ブートプロセスに割り込むと、Configuration Assistant (構成用補助) にアクセスできます。
Configuration Assistant を使用すると、Solaris システムを別のブートデバイスからブートしたり、新しいハードウェアの構成や構成変更が行え、またデバイスやブートに関連する作業を実行できます。
「Current Boot Parameters」メニュー - このメニューには 2 つの形式があります。1 つは、通常の Solaris ブート用で、もう 1 つは Solaris インストールブート用です。
通常の「Current Boot Parameters」メニューでは、オプションを付けて Solaris システムをブートしたり、ブートインタプリタを実行できます。
インストール用の「Current Boot Parameters」メニューでは、インストールの種類を選択したり、ブートをカスタマイズできます。
表 10-3 に、主な x86 ブートインタフェースの目的を示します。以降の節では、各ブートサブシステムを詳細に説明し、例を示します。
表 10-3 x86 ブートサブシステム
ブートプロセス中は、ブートサブシステムメニューは異なるデバイスとブートオプションを表示します。システムは何回かのタイムアウトの後で応答を受け付けなくなった場合、デフォルトの設定値を使って自動的にブートを継続します。ブートサブシステムメニューが表示されるたびに、ブートプロセスを停止することができます。また、自動的に継続させることもできます。
以下の節では、各サブシステムの画面の例を示します。
デバイスを識別するフェーズでは、Configuration Assistant (構成用補助) は次の処理を実行します。
システムにインストールされているデバイスを走査する。
識別されたデバイスを表示する。
キーボードの選択やデバイスとその資源の編集などの追加作業を可能にする。
ブート中に、システムは次の処理を行います。
ブートするデバイスのリストを表示する。アスタリスク (*) が付いたデバイスがデフォルトのブートデバイスです。
自動ブートやプロパティの編集などの追加作業を可能にする。
各段階のデバイス識別の例を次に示します。デバイス出力は、各システム構成によって異なります。
Configuration Assistant がシステム上のデバイスを識別するときに、いくつかのメニューが表示されます。
このメニューは、Configuration Assistant を実行するたびに表示されます。
Solaris Device Configuration Assistant The Solaris(TM) (Intel Platform Edition) Device Configuration Assistant scans to identify system hardware, lists identified devices, and can boot the Solaris software from a specified device. This program must be used to install the Solaris operating environment, add a driver, or change the hardware on the system. > To perform a full scan to identify all system hardware, choose Continue. > To diagnose possible full scan failures, choose Specific Scan. > To add new or updated device drivers, choose Add Driver. About navigation... - The mouse cannot be used. - If the keyboard does not have function keys or they do not respond, press ESC. The legend at the bottom of the screen will change to show the ESC keys to use for navigation. - The F2 key performs the default action. F2_Continue F3_Specific Scan F4_Add Driver F6_Help |
このメニューは、Configuration Assistant が自動検出できるデバイスのハードウェア構成データを集めているときに一時的に表示されます。
Bus Enumeration Determining bus types and gathering hardware configuration data ... Please wait ... |
このメニューは、特別なドライバだけで検出できるデバイスを Configuration Assistant が手動で走査しているときに表示されます。
Scanning Devices The system is being scanned to identify system hardware. If the scanning stalls, press the system's reset button. When the system reboots, choose Specific Scan or Help. Scanning: Flpppy disk controller ####################### | | | | | | 0 20 40 60 80 100 Please wait ... |
このメニューは、システムで識別されたデバイスを表示します。このメニューからは、「Boot Solaris」メニューに移動できます。また、キーボード構成の設定、デバイスの表示や編集、シリアルコンソールの設定、構成の保存や削除など、付加的な作業も実行できます。
Identified Devices The following devices have been identified on this system. To identify devices not on this list or to modify device characteristics, such as keyboard configuration, choose Device Tasks. Platform types may be included in this list. EISA: Adaptec 1740/1742 SCSI controller EISA: Motherboard EISA: SMC EtherCard Elite32C Ethernet adapter ISA: Floppy disk controller ISA: Game port (Joy stick) ISA: PCMCIA controller ISA: Parallel port ISA: Serial port ISA: System keyboard (US-English) ISA: VGA w/ 8514/A compatible graphics adapter F2_Continue F3_Back F4_Device Tasks F6_Help |
この段階では、システムをブートする方法を指定できます。
Solaris ブートメニューからは、Solaris リリースをブートするデバイスを選択できます。また、autoboot やプロパティ設定の表示や編集など、オプションの作業も実行できます。ブートデバイスを選択し、[Continue] を選択すると、Solaris カーネルがブートを開始します。
Boot Solaris Select one of the identified devices to boot the Solaris kernel and choose Continue. To perform optional features, such as modifying the autoboot and property settings, choose Boot Tasks. An asterisk (*) indicates the current default boot device. > To make a selection use the arrow keys, and press Enter to mark it [X]. [ ] DISK: Target 0, IMPRIMIS 94241-7 0888 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] CD : Target 2, TOSHIBA CD-ROM XM-3501TA 3054 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] NET : SMC EtherCard Elite32C Ethernet adapter in EISA Slot 6 F2_Continue F3_Back F4_Boot Tasks F6_Help |
このメニューは、ローカルディスクから Solaris をブートするたびに表示されます。デフォルトの Solaris カーネルからブートしたい場合は、5 秒間のタイムアウトが経過するのを待ちます。別のオプションでブートしたい場合は、タイムアウト期間が経過する前に、適切なオプションを選択します。
<<< Current Boot Parameters >>> Boot path: /eisa/eha@1,4000/sd@0,0:a Boot args: Type b [file-name] [boot-flags] to boot with options or i to enter boot interpreter or to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: |
BIOS フェーズ | PC BIOS が、すべてのハードウェアデバイスの BIOS を読み込んで実行する。 |
BIOS ブートプログラムが、マスターブートレコード mboot を読み込んで実行する。 | |
ブートプログラムフェーズ | mboot が、Solaris パーティションブートプログラム pboot を読み込む。 |
pboot が一次ブートプログラム bootblk を読み込む。 | |
bootblk が、fdisk テーブルを読み込み、デフォルトのブートパーティションを探す。この時点で、「一次ブートサブシステム」メニューが表示される。 | |
bootblk が、二次ブートプログラム boot.bin または ufsboot を読み込む。ここで ESC キを押すと、「Configuration Assistant (構成用補助)」メニューを表示できる。 | |
二次ブートプログラム boot.bin または ufsboot が、/etc/bootrc スクリプトを読み込み、このスクリプトがカーネルを読み込む。ここで、Solaris ブートオプションメニューが表示される。 | |
カーネル初期設定フェーズ | カーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。 |
カーネルが init プロセスを起動する。 | |
init フェーズ | init プロセスが、実行制御スクリプトを起動する。 |
表 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*) はファイルシステムを検査、マウントし、さまざまなプロセスを実行して、システム保守作業を実行する。 |