Solaris のシステム管理

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

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

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

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

SPARC: ブート PROM

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


SPARC のみ -

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


SPARC: ブートプロセス

表 10-1 ブートプロセス
      
 

ブート PROM フェーズ 

 

ブート PROM は、セルフテスト診断を実行する。 

 
   

ブート PROM は、bootblock プログラムを読み込む。

     
       
 

ブートプログラムフェーズ 

 

ブートブロックプログラムは、ufsboot プログラムを読み込む。

 
   

ufsboot プログラムが読み込まれてから、ブート PROM はカーネルを読み込む。

     
       
 

カーネル初期設定フェーズ 

 

カーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。

     
       
 

init フェーズ

 

カーネルが init プロセスを起動する。

 
   

init プロセスが実行制御スクリプトを起動する。

     
         

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

表 10-2 は、前のページで図示した SPARC ブートプロセスについて説明しています。

表 10-2 SPARC: 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: ブートサブシステム

x86 システムをブートするには、「Solaris Boot Option」画面を使用して、システムをブートする方法を指定します。

接続されたデバイスを識別したり、ネットワークまたはローカル CD-ROM ドライブからブートするには、さらに、Configuration Assistant/Boot フロッピーディスクを使います。

表 10-3 で、x86 システムのすべてのレベルをブートするのに使用する 3 つのブートインタフェースを説明します。

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

ブートサブシステム 

このサブシステムメニューが表示するもの 

Configuration Assistant/Boot (構成用補助) フロッピーディスク 

Solaris Device Configuration Assistant (構成用補助) は、システムに接続されているデバイスを識別する。 

Boot Solaris 画面は、ディスク、ネットワーク、CD-ROM のようなブート可能なデバイスのリストを表示する。 

Solaris ブートオプション画面 

ブートオプションのリスト。このメニューから 5 秒以内にオプションを選ばないと、システムは自動的に実行レベル 3 になる。選択によりブートオプションか、ブートインタプリタを指定できる (boot(1M) のマニュアルページを参照)。

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

以下の節では、各サブシステムの画面の例を示します。画面表示はシステム構成によって異なります。

x86: Configuration Assistant/Boot (構成用補助) フロッピーディスク

構成補助フェーズ中、システムは、次の動作を行います。

ブートフェーズ中、システムは次の動作を行います。

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

構成補助フェーズ

このフェーズでは、構成補助はシステム上のデバイスを識別しようとします。

Solaris Device Configuration Assistant 

The Solaris(TM) 2.6 (Intel Platform Edition) Device Configuration 
Assistant scans to identify the devices on the system, lists 
identified devices, and enables you to boot the Solaris software 
from a specified device. This program must be used whenever you 
install the Solaris operating environment or change the hardware 
on the system. 

> To perform a full scan and identify all the devices on the system, 
  choose Continue.         

> To perform a partial scan and identify only the automatically
  detected devices, choose Partial Scan. (Choose Partial Scan if a
  full scan has previously failed.) 

F2_Continue    F4_Partial Scan    F6_Help

デバイスの走査フェーズ

このフェーズでは、システムに接続されているすべてのデバイスが走査されます。

Scanning Devices  

The system is being scanned to identify all devices on the system.  
If the scanning stalls, press the system's reset button. When the 
system reboots, choose Partial Scan or Help. 
                                                                                                                    Building driver list                                                                                                                                             
           --    
           |        |         |         |         |         |   
           0       20        40        60        80       100                                                                                      Please wait ...  

デバイスの識別フェーズ

このフェーズでは、システムに接続されているすべてのデバイスが識別されます。

Identified Devices  

The following devices have been identified in this system. To 
identify devices that on not in this list, choose Device Tasks. 
                           
    ISA: Bidirectional parallel port 
    ISA: Floppy disk controller 
    ISA: IDE controller
    ISA: Intel EtherExpress network card
    ISA: Motherboard 
    ISA: PS/2 mouse 
    ISA: Serial controller
    ISA: Serial controller 
    ISA: System keyboard    
    ISA: VGA Compatible Display Adapter  


F2_Continue    F3_Back    F4_Device Tasks    F5_Boot Solaris

Solaris ブートフェーズ

このフェーズでは、ブートするデバイスを選択します。デフォルトのブートデバイスを変更するには、「Boot Task」オプションを選択します。

Select one of the identified devices to boot Solaris.    
                                                                  
> To make a selection, use the arrow keys, then press Enter to mark   
  it [X]. 

  Boot Solaris
--------------------------------------------------------------------          
  [ ]  DISK: IDE(ATA) QUANTUM FIREBALL1080A 
             target: 0; port: 1F0-1F7, 3F6-3F7; irq: 14      
  [ ]  NET : Intel EtherExpress network card
             port: 300-30F; irq: 5        

Esc-2_Boot Solaris    Esc-3_Back    Esc-4_Boot Tasks    Esc-6_Help

Solaris ブートオプションフェーズ

このフェーズでは、オプションを指定してシステムをブートできます。デフォルトでは、システムは実行レベル 3 になります。

                     <<< Current Boot Parameters >>>
Boot path: /isa/ata@1f0,0/cmdk@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 ブートプロセス
      
 

BIOS フェーズ 

 

PC BIOS がすべてのハードウェアデバイスの BIOS を読み込んで実行する。 

  
   

BIOS ブートプログラムがマスタブートレコード mboot を読み込んで実行する。

     
       
 

ブートプログラムフェーズ 

 

mboot が Solaris パーティションブートプログラム pboot を読み込む。

     

pboot が 一次ブートプログラム bootblk を読み込む。

     

bootblkfdisk テーブルを読んでデフォルトのブートパーティションの位置を捜す。

     

bootblk が二次ブートプログラムを読み込む。

   

ufsboot/etc/bootrc スクリプトを読んで、カーネルを読み込ませる。

     
       
 

カーネル初期設定フェーズ 

 

カーネルが自身を初期設定して、ルート (/) ファイルシステムのマウントに必要なモジュールをロードする。 

  
   

カーネルが init プロセスを起動する。

     
          
 

init フェーズ

 

init プロセスが実行制御スクリプトを起動する。

     
         

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