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

IA: システムのブート

表 11-1 に、この章で説明するブート方法の要約を示します。

表 11-1 x86: ブート方法の説明

システムのブート方法 

このブート方法が必要な場合 

参照先 

Solaris Device Configuration Assistant (デバイス構成用補助) を実行する 

システムのハードウェア構成を変更した後。このユーティリティを使用すると、異なるブートデバイスから Solaris システムをブートする、新しいハードウェアを構成する、間違って構成したハードウェアを構成し直すなど、デバイスやブートに関連する作業を行うことができる。 

「IA: Solaris Device Configuration Assistant をブートする方法」

実行レベル 3 (マルチユーザー状態) 

システムを停止するか、またなんらかのシステムハードウェアの保守作業を行なった後。これはデフォルトのブートレベルで、すべての資源が利用でき、そしてユーザーがシステムにログインすることができる。 

「IA: システムを実行レベル 3 (マルチユーザー状態) にする方法」

実行レベル S (シングルユーザー状態) 

ファイルシステムのバックアップなどのなんらかのシステム保守作業を行なった後。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできない。 

「IA: システムを実行レベル S (シングルユーザー状態) にする方法」

対話式でブート 

テストのために、システムファイルまたはカーネルを一時的に変更した後。この形式のブートを使えば、システムファイルまたはカーネルに問題がある場合、プロンプトが表示されたときに、これらのファイルに対して別のパス名を指定すれば簡単に復元できる。他のシステムプロンプトにデフォルトの設定を使う。 

「IA: システムを対話式でブートする方法」

ネットワーク経由でブート 

システムをネットワーク経由でブートする。この手順は、ブートサーバー上で必要な設定が完了していることを前提とする。 

「IA: システムをネットワーク経由でブートする方法」

ローカル CD-ROM またはネットワークからブートして復元する 

システムの正常なブートを妨げている重要なシステムファイルを修復する。また、この形式のブートは、オペレーティングシステムの新しいリリースをインストール (またはアップグレード) するのにも使用する。 

「IA: システムを復元するためにブートする方法」

Solaris カーネルデバッガ (kadb) の実行

システムの問題の原因を調べる。 

「IA: カーネルデバッガ (kadb) を使ってシステムをブートする方法」

クラッシュダンプの作成 

システムの問題の原因を調べるために、オペレーティングシステムのコアダンプを保存する。 

「IA: クラッシュダンプを強制してシステムをリブートする方法」

次に、リセットボタンを使ってシステムを再起動する手順を示します。システムにリセットボタンがない場合は、電源のオン・オフスイッチを使ってシステムを再起動します。システムの状態によっては Control-Alt-Del キーを使って、システムの動作に割り込むことができます。

IA: Solaris Device Configuration Assistant (デバイス構成用補助) のブート

Solaris Device Configuration Assistant (デバイス構成用補助) は、さまざまなハードウェア構成作業やブート作業を実行するためのプログラムです。Solaris Device Configuration Assistant にアクセスする方法は 2 つあります。

次の節では、Solaris Device Configuration Assistant フロッピーディスクを挿入して、Configuration Assistant をブートするように要求されることがあります。システムの BIOS が CD からのブートをサポートしている場合は、Solaris Installation CD を挿入して、Configuration Assistant をブートすることも可能です。

IA: Solaris Device Configuration Assistant をブートする方法

  1. Solaris Device Configuration フロッピーディスクまたは Solaris Installation CD を適切なドライブに挿入します。

  2. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

  3. Configuration Assistant の最初のメニューが、数分後に表示されます。

IA: システムを実行レベル 3 (マルチユーザー状態) にする方法

  1. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

    「Current Boot Pramaters」メニューが、数分後に表示されます。

  2. システムを実行レベル 3 にするには、b を入力します。Enter キーを押してください。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 になります。

  3. システムが実行レベル 3 になっていることを確認します。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。


    hostname console login:

IA: 例 - システムを実行レベル 3 (マルチユーザー状態) にする


Type any key to continue
           .
           .
           .
                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>      to boot with options
or      i <ENTER>                               to enter boot interpreter
or      <ENTER>                                 to boot with defaults
 
                  <<< timeout in 5 seconds >>>
 
Select (b)oot or (i)nterpreter: b
             .
             .
             .
venus console login:

IA: システムを実行レベル S (シングルユーザー状態) にする方法

  1. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

    数分後、「Current Boot Parameters」メニューが表示されます。

  2. b -s と入力し、システムを実行レベル S でブートします。Enter キーを押します。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。

  3. プロンプトが表示されたら、スーパーユーザーのパスワードを入力します。

  4. who -r を使用して、システムが実行レベル S になっていることを確認します。


    # who -r
       .       run-level S  Jul 19 14:37     S      0  3
  5. 実行レベルを S に移行して行う必要がある保守作業を行います。

  6. システムを実行レベル 3 に戻すには、Control-d を押します。

IA: 例 - システムを実行レベル S (シングルユーザー状態) にする


Type any key to continue
            .
            .
            .
 
                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>      to boot with options
or      i <ENTER>                               to enter boot interpreter
or      <ENTER>                                 to boot with defaults
 
 
                     <<< timeout in 5 seconds >>>
 
Select (b)oot or (i)nterpreter: b -s
              .
              .
              .
INIT: SINGLE USER MODE
 
Type Ctrl-d to proceed with normal startup,
(or give root password for system maintenance):  xxx
Entering System Maintenance Mode
              .
              .
              .
# who -r
   .       run-level S  Jul 19 14:37     S      0  3
(システム保守作業を行う)
# <Control-d> を押す

IA: システムを対話式でブートする方法

  1. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

    「Current Boot Parameters」メニューが、数分後に表示されます。

  2. Solaris パーティションにアクティブを示すマークがついていない場合、その Solaris パーティションをリストから選択して、Enter キーを入力します。30 秒以内に選択しない場合、アクティブなブートパーティションが自動的に選択されます。

    「Current Boot Parameters」メニューが、数分後に表示されます。

  3. b -a と入力して、システムを対話式でブートします。Enter キーを押します。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。

  4. 下の表で説明するように、システムプロンプトに応答します。

    システムの表示 

    操作 

    Enter default directory for modules: [/platform/i86pc/kernel /kernel /usr/kernel]:

    modules ディレクトリの代替パスを指定して Enter キーを押すか、そのまま Enter キーを押してデフォルトの modules ディレクトリパスを使用する。

    Name of system file [etc/system]:

    代わりのシステムファイル名を入力して Enter キーを押すか、そのまま Enter キーを押してデフォルトの /etc/system ファイルを使う。 /etc/system ファイルが破損している場合は、ファイルとして /dev/null を入力する。

    root filesystem type [ufs]:

    そのまま Enter キーを押してデフォルトのルートファイルシステム形式を使う。つまり、ローカルディスクからのブートの場合は UFS、ネットワークのブートの場合は NFS を使う。 

    Enter physical name of root device [physical_device_name]:

    代わりのデバイス名を入力して、Enter キーを押すか、そのまま Enter キーを押してルートデバイス bootpath のデフォルトの物理名を使う。

IA: 例 - システムを対話式でブートする

デフォルトを選択 ([]で囲まれています) した例を示します。


Type any key to continue
            .
            .
            .
 
                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>      to boot with options
or      i  <ENTER>                              to enter boot interpreter
or      <ENTER>                                 to boot with defaults
 
 
                     <<< timeout in 5 seconds >>>>
Select (b)oot or (i)nterpreter: b -a
Enter default directory for modules [/platform/i86pc/kernel /kernel 
/usr/kernel]: Enter キーを押す
Name of system file [etc/system]:Enter キーを押す
SunOS Release 5.8 Version Generic 32-bit
Copyright (c) 1983-2000 by Sun Microsystems, Inc.
root filesystem type [ufs]: Enter キーを押す
Enter physical name of root device
[/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a]: Enter キーを押す
configuring IPv4 interfaces: dnet0.
Hostname: venus
(fsck メッセージが表示される)
The system is coming up.  Please wait
(メッセージが表示される)
venus console login:

IA: システムをネットワーク経由でブートする方法

ブートサーバーが利用できれば、どのようなシステムもネットワーク経由でブートできます。たとえば、スタンドアロンシステムがローカルディスクからブートできない場合、このスタンドアロンシステムを一時的にネットワーク経由でブートできます。

Device Configuration Assistant (デバイス構成用補助) の「Boot Tasks」メニューにある新しいメニュー「Set Network Configuration Strategy」を使用して、適切なブート方法を選択できます。

  1. ネットワーク経由でブートする方法 (RARP/bootparams または DHCP) を決定します。

    2 つのネットワーク構成方法、RARP (Reverse Address Resolution Protocol) または DHCP (Dynamic Host Configuration Protocol) があります。デフォルトのネットワークブート方法は RARP に設定されています。ネットワークで利用できるブートサーバーによって、RARP または DHCP を選択できます。

  2. Device Configuration Assistant (デバイス構成用補助) フロッピーディスクまたは Installation CD を適切なドライブに挿入します

  3. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

  4. 「Solaris Device Configuration Assistant」画面で「F2_Continue」を押して、デバイスを走査します。

    デバイスの識別が実行され、識別されたデバイスを表示する画面が表示されます。

  5. 「Identified Devices」画面で「F2_Continue」を押して、ドライバを読み込みます。

    ブート可能なドライバが読み込まれます。

  6. 「Boot Solaris」メニューから「F4_Boot Tasks」を押します。

  7. Set Network Configuration Strategy」を選択して、「F2_Continue」を押します。

  8. RARP」または「DHCP」を選択して、「F2_Continue」を押します。

    新しいネットワーク構成方法を確認する画面が表示されます。

    ここで選択したネットワーク構成方法は、以降、このフロッピーディスクでブートしたときのデフォルトのネットワークブート方法として保存されます。

  9. 「F3_Back」を押して、「Boot Solaris」メニューに戻ります。

  10. 「Boot Solaris」メニューから「NET」をブートデバイスとして選択します。そして、「F2_Continue」を押して、ネットワークデバイスをブートします。

    「Solaris boot option」画面が表示されます。

IA: システムを復元するためにブートする方法

重要なシステム資源を修復するには、次の手順に従ってシステムをブートします。この例では、Solaris Installation CD またはネットワークからブートし、ルート (/) ファイルシステムをディスクにマウントし、 /etc/passwd ファイルを修復する方法を説明しています。

以下の説明で使用されている変数 devicename は、修復するファイルシステムのデバイス名に置き換えてください。システムのデバイス名については、第 26 章「デバイスへのアクセス (概要)」を参照してください。

Solaris Installation CD またはネットワークのどちらからブートしているかによって、対応する手順に従ってください。

  1. Solaris Installation CD (またはネットワーク) から、シングルユーザーモードでブートします。

    1. Device Configuration Assistant (デバイス構成用補助) フロッピーディスクまたは Installation CD を適切なドライブに挿入します。

    2. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

    3. 「Solaris Device Configuration Assistant」画面で、F2 キー (F2_Continue) を押します。

      デバイスが識別され、識別されたデバイスを示す画面が表示されます。

    4. 「Identified Devices」画面で、F2 キー (F2_Continue) を押します。

      ブート可能なドライバが読み込まれます。

    5. 「Boot Solaris」メニューから CD または NET をデバイスとして選択します。次に F2 キー (F2_Continue) を押します。

      「Current Boot Parameters」メニューが表示されます。

    6. プロンプトで b -s と入力して、Enter キーを押します。

      数分後に、シングルユーザーモードの # プロンプトが表示されます。

  2. 無効な passwd ファイルがあるルート (/) ファイルシステムをマウントします。


    # mount /dev/dsk/devicename /a
    
  3. 新しくマウントした etc ディレクトリに移動します。


    # cd /a/etc
    
  4. 必要に応じて、エディタを使って passwd ファイルに必要な変更を加えます。


    # vi passwd
    
  5. ルート (/) ディレクトリに移動します。


    # cd /
    
  6. /a ディレクトリのマウントを解除します。


    # umount /a
    
  7. システムをリブートします。


    # init 6
    
  8. システムが実行レベル 3 でブートしたことを確認します。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。


    hostname console login:

IA: 例 - システムを復元する目的でブートする


 
Type any key to continue
 
SunOS Secondary Boot version 3.00
 
 
Solaris Intel Platform Edition Booting System
 
Running Configuration Assistant...
Autobooting from Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
 
If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.
 
Press ESCape to interrupt autoboot in 5 seconds.
      .
      .
      .
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].
 
[ ]  NET : DEC 21142/21143 Fast Ethernet
on Board PCI at Dev 3                                                
[ ]  DISK: (*) Target 0, QUANTUM  FIREBALL1280A
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  DISK: Target 1:ST5660A
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  DISK: Target 0:Maxtor 9 0680D4
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
[ ]  CD  : Target 1:TOSHIBA  CD-ROM XM-5602B  1546
on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1
 
F2_Continue   F3_Back   F4_Boot Tasks   F6_Help
      .
      .
      .
               <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: kernel/unix -r
 
Select the type of installation you want to perform:
 
1 Solaris Interactive
2 Custom JumpStart
3 Solaris Web Start
 
Enter the number of your choice followed by <ENTER> the key.
 
If you enter anything else, or if you wait for 30 seconds,
an interactive installation will be started.
 
Select type of installation:  b -s
      .
      .
      .
# mount /dev/dsk/c0t0d0s0 /a
      .
      .
      .
# cd /a/etc
# vi passwd
(無効なエントリを削除する)
# cd /
# umount /a
# init 6

IA: 復元を目的としてシステムを停止する方法

可能であれば、次のコマンドのどちらかを使用してシステムを停止します。

マウスまたはキーボードからの入力にシステムが応答しない場合、リセットキーがあればそのキーを押してシステムをリブートします。あるいは、電源スイッチを使用してシステムをリブートします。

IA: カーネルデバッガ (kadb) を使ってシステムをブートする方法

  1. Type any key to continue プロンプトが表示されている場合は、任意のキーまたはリセットボタンを押してシステムをリブートします。システムがシャットダウンされている場合は、電源スイッチを押してシステムを起動します。

  2. b kadb と入力して、カーネルデバッガをブートします。Enter キーを押しますr.

    5 秒以内に選択しない場合、システムは自動的に実行レベル 3 でブートします。

  3. システムが実行レベル 3 でブートしていることを確認します。

    ブートプロセスが正常に終了すると、ログインプロンプトが表示されます。


    hostname console login:
  4. F1-a を押して、カーネルデバッガにアクセスできることを確認します。

    カーネルデバッガがブートすると、kadb[0]: プロンプトが表示されます。

IA: 例 - システムをカーネルデバッガ (kadb) でブートする


 
Type any key to continue
        .
        .
        .
            <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:
Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults
 
            <<< timeout in 5 seconds >>>
 
Select (b)oot or (i)nterpreter: b kadb
        .
        .
        .
naboo console login: (ログイン名とパスワードを入力する)
(F1-a を押して、カーネルデバッカにアクセスできることを確認する)

IA: クラッシュダンプを強制してシステムをリブートする

問題に対処するために、オペレーティングシステムのコアダンプを保存しておく必要があります。savecore 機能とその設定方法については、『Solaris のシステム管理 (第 2 巻)』の「システムクラッシュ情報の生成と保存」で説明しています。この節では、savecore 機能が有効な場合に、システムをリブートする方法だけを説明します。

IA: クラッシュダンプを強制してシステムをリブートする方法

kadb[0]: プロンプトを表示して、クラッシュダンプを強制するには、カーネルデバッガオプション kadb を指定してシステムをブートします。


注 -

カーネルデバッガ kadb に入るにはテキストモードでなければなりません。したがって、まずウィンドウシステム (CDE または OpenWindows) を終了してください。


  1. F1-a を押します。


    kadb[0]:

    kadb[0]: プロンプトが表示されます。

  2. 次のコマンドを kadb[0]: プロンプトで入力します。


    Press <F1-a>
    kadb[0]: vfs_syncall/W ffffffff
    kadb[0]: 0>eip
    kadb[0]: :c
    kadb[0]: :c
    kadb[0]: :c
    

    最初の :c を入力すると、システムはパニックを起こします。そこでもう一度 :c を入力します。システムは再度パニックを起こすため、3 度目の :c を入力し、クラッシュダンプを強制して、システムをリブートします。

    クラッシュダンプがディスクに書き込まれた後、システムはリブートします。

  3. コンソールログインプロンプトでログインして、システムがリブートされていることを確認します。