Solaris のシステム管理 (第 1 巻)

第 10 章 ブートプロセスの参照情報

この章では、SPARC や x86 システムでブートするのに使用するハードウェア、および各プラットホームのブートプロセスの概要を説明します。

この章の内容は次のとおりです。

システムのブート手順については、第 8 章「SPARC: システムのブートの手順」または、第 9 章「x86: システムのブートの手順」を参照してください。

SPARC: ブート PROM

SPARC システムごとに、「モニター」と呼ばれるプログラムを格納している PROM (プログラム可能な読み取り専用メモリー) チップがあります。モニターは、カーネルが使用される前に、システムの動作を制御します。システムをオンにすると、モニターはシステムのハードウェアやメモリーなどを検査するセルフテスト手順を実行します。エラーが検出されなければ、システムは、自動ブートプロセスを開始します。


SPARC のみ -

Solaris システムが動作する前に、以前のシステムの一部には PROM アップグレードが必要なものもあります。詳細については、購入先にお問い合わせください。


SPARC: ブートプロセス

表 10-1 SPARC: ブートプロセス
 ブート PROM フェーズ ブート PROM が、セルフテスト診断を実行する。
  ブート PROM が、bootblock プログラムを読み込む。
 ブートプログラムフェーズブートブロックプログラムが、ufsboot プログラムを読み込む。
  ufsboot プログラムが読み込まれてから、ブート PROM がカーネルを読み込む
 カーネル初期設定フェーズカーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。
  カーネルが init プロセスを起動する。
init フェーズinit プロセスが、実行制御スクリプトを起動する。

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

表 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*) はファイルシステムをマウントして検査し、いろいろなプロセスを開始し、システム保守作業を実行する。

x86: PC BIOS

カーネルが起動される前は、システムは、PC 上のファームウェアインタフェースである、読み取り専用メモリー (ROM) の Basic Input/Output System (BIOS) によって制御されます。

ハードウェアアダプタにオンボード BIOS を搭載することができ、それによってデバイスの物理的特性を表示したり、デバイスにアクセスしたりすることができます。

起動シーケンスの間、PC の BIOS はアダプタ BIOS があるかどうか調べ、あれば、それぞれをロードして、実行します。アダプタの BIOS はそれぞれセルフテスト診断を実行して、デバイス情報を表示します。

x86: ブートサブシステム

Solaris のブート時に、ブートシステムについて次の選択を行えます。

表 10-3 に、主な x86 ブートインタフェースの目的を示します。以降の節では、各ブートサブシステムを詳細に説明し、例を示します。

表 10-3 x86 ブートサブシステム

ブートサブシステム 

このサブシステムメニューの目的 

一次ブートサブシステム 

ブートしているディスク上に Solaris fdisk パーティション以外にも複数の fdisk パーティションがある場合に使用する。

二次ブートサブシステム 

Solaris リリースをブートするときに使用。自動ブートプロセスに割り込んで、Solaris Device Configuration Assistant を実行することを選択していない限り、Solaris リリースが自動的にブートされる。 

Solaris Device Configuration Assistant ブートフロッピーディスク 

「Solaris Device Configuration Assistant」メニューを表示するには次の 2 つの方法がある。 

  1. Solaris Device Configuration Assistant フロッピーディスクを使用してシステムをブートする。

  2. インストールしたディスクから Solaris をブートするときに自動ブートプロセスに割り込む。

「Current Boot Parameters」 

Solaris オペレーティング環境がインストールされているディスクからブートするときに使用。あるいは、Solaris インストール CD から、またはネットワーク経由で Solaris リリースをインストールするときに使用。どちらの場合も、このメニューにブートオプションのリストが表示される。 

ブートプロセス中は、ブートサブシステムメニューは異なるデバイスとブートオプションを表示します。システムは何回かのタイムアウトの後で応答を受け付けなくなった場合、デフォルトの設定値を使って自動的にブートを継続します。ブートサブシステムメニューが表示されるたびに、ブートプロセスを停止することができます。また、自動的に継続させることもできます。

以下の節では、各サブシステムの画面の例を示します。

x86: Solaris のブート

デバイスを識別するフェーズでは、Configuration Assistant (構成用補助) は次の処理を実行します。

ブート中に、システムは次の処理を行います。

各段階のデバイス識別の例を次に示します。デバイス出力は、各システム構成によって異なります。

x86: デバイス識別段階で表示されるメニュー

Configuration Assistant がシステム上のデバイスを識別するときに、いくつかのメニューが表示されます。

x86: 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

x86: Bus Enumeration メニュー

このメニューは、Configuration Assistant が自動検出できるデバイスのハードウェア構成データを集めているときに一時的に表示されます。


Bus Enumeration
 
 
 
Determining bus types and gathering hardware configuration data ...
 
 
 
Please wait ...

x86: Scanning Devices メニュー

このメニューは、特別なドライバだけで検出できるデバイスを 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 ...  

x86: Identified Devices メニュー

このメニューは、システムで識別されたデバイスを表示します。このメニューからは、「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

x86: ブート段階で表示されるメニュー

この段階では、システムをブートする方法を指定できます。

x86: Boot Solaris メニュー

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

x86: Solaris ブートオプションメニュー

このメニューは、ローカルディスクから 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:

x86: ブートプロセス

表 10-4 x86: ブートプロセス
 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 プロセスが、実行制御スクリプトを起動する。

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

表 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. ブート可能なパーティションが複数ある場合、bootblkfdisk テーブルを読んでデフォルトのブートパーティションをさがし、利用可能なパーティションのメニューを表示する。ブートするパーティションを選択する際に、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*) はファイルシステムを検査、マウントし、さまざまなプロセスを実行して、システム保守作業を実行する。