Solaris のシステム管理 (基本編)

x86 システムをフェイルセーフモードでブートする

x86 システムをフェイルセーフモードでブートするには、システムのブート時に GRUB メニューが表示されたら、フェイルセーフブートエントリを選択します。フェイルセーフブートの手順で、一次ブートアーカイブを更新するかどうかを確認されたら、y と入力します。

フェイルセーフブートは、ZFS からブートされるシステムでもサポートされます。UFS をルートとした BE からブートするときは、各 BE に独自のフェイルセーフアーカイブが用意されています。フェイルセーフアーカイブは、ZFS をルートとした BE と同様に、ルートファイルシステムが置かれている場所にあります。x86 システムでは、プール全体の GRUB メニューに各フェイルセーフアーカイブのエントリが 1 つあります。デフォルトのフェイルセーフアーカイブは、デフォルトのブート可能ファイルシステムにあるアーカイブです。デフォルトのブート可能ファイルシステム (データセット) は、プールの bootfs プロパティーの値で示されます。

ブートアーカイブ復旧の詳細は、第 13 章Oracle Solaris ブートアーカイブの管理 (手順)を参照してください。

Procedurex86 システムをフェイルセーフモードでブートする方法


注 –

一部の Oracle Solaris·では、GRUB·フェイルセーフの対話操作により、矛盾したブートアーカイブが検出されるかどうかに関係なく、ブートアーカイブを更新するように要求されます。このリリースでは、矛盾したブートアーカイブが検出された場合にだけ、ブートアーカイブの更新を要求されます。


  1. 「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。

  2. Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。あるいは、電源スイッチを使用してシステムをリブートします。

    ブートシーケンスが始まると、GRUB メニューが表示されます。


    GNU GRUB  version 0.95  (637K lower / 3144640K upper memory)
     +-------------------------------------------------------------------+
    | be1
    | be1 failsafe
    | be3
    | be3 failsafe
    | be2
    | be2 failfafe
      +------------------------------------------------------------------+
          Use the ^ and v keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.

    注 –

    表示される GRUB メニューは、実行している Oracle Solaris リリースに応じて異なります。


  3. 矢印キーを使用して GRUB メニューをナビゲートし、 failsafe エントリを選択します。

  4. Return キーを押してフェイルセーフアーカイブをブートします。

    インストール済みの OS インスタンスが検索されます。矛盾したブートアーカイブが検出されると、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	An out of sync boot archive was detected on /dev/dsk/c0t0d0s0.
    	The boot archive is a cache of files used during boot and
    	should be kept in sync to ensure proper system operation.
    	
    	Do you wish to automatically update this boot archive? [y,n,?]
  5. y と入力して、ブートアーカイブを更新します。

    矛盾したブートアーカイブが複数検出された場合は、矛盾したブートアーカイブごとに y と入力してアーカイブを更新するように要求されます。

    アーカイブが正常に更新されるごとに、次のメッセージが表示されます。


    Updating boot archive on /dev/dsk/c0t0d0s0.
    	The boot archive on /dev/dsk/c0t0d0s0 was updated successfully.

    ブートアーカイブの更新が完了すると、インストール済みのすべての OS インスタンスが再度検索され、/a にマウントするデバイスの選択を要求されます。矛盾したブートアーカイブが検出されない場合にシステムが最初にブートすると、これと同じメッセージが表示されます。


    Searching for installed OS instances...
    
    Multiple OS instances were found. To check and mount one of them
    read-write under /a, select it from the following list. To not mount
    any, select 'q'.
    
      1  pool10:13292304648356142148     ROOT/be10
      2  rpool:14465159259155950256      ROOT/be01
    
    Please select a device to be mounted (q for none) [?,??,q]:
    • デバイスをマウントしないことを選択する場合は、q と入力してブートプロセスを続行します。

    • デバイスをマウントすることを選択する場合は、次の手順を実行します。

      1. デバイスの番号を入力して Return キーを押します。

        デバイスが /a にマウントされ、シェルプロンプトに戻ります。

      2. クリティカルなシステムリソースを修復します。

      3. クリティカルなシステムリソースの修復が完了したら、デバイスのマウントを解除します。


        # umount /a
        
      4. システムを再起動します。


        # reboot
        

Procedurex86: フェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新する方法

次の手順では、ブートアーカイブの更新を要求されない場合、またはシステムのハングアップやループシーケンスが発生した場合に、矛盾したブートアーカイブまたは破壊されたブートアーカイブを再構築する方法を示します。

  1. 「x86: 復旧を目的としてシステムを停止する方法」の手順で説明されている方法のいずれかを使用してシステムを停止します。

  2. システムを再起動します。


    # reboot
    

    Press any key to reboot プロンプトが表示されている場合は、任意のキーを押してシステムをリブートします。

    あるいは、リセットボタンを使用することもできます。

    ブートシーケンスが始まると、GRUB メニューが表示されます。


    +---------------------------------------------------------------------+
     | Solaris 10.1... X86                                                     |
     | Solaris failsafe                                                        |
     |                                                                         |
     |                                                                         |
     +-------------------------------------------------------------------------+
          Use the  and  keys to select which entry is highlighted.
          Press enter to boot the selected OS, 'e' to edit the
          commands before booting, or 'c' for a command-line.

    注 –

    GRUB メニューの内容は、実行している Solaris リリースに応じて異なります。


  3. 矢印キーを使用して GRUB メニューをナビゲートし、failsafe エントリを選択します。

  4. Return キーを押してフェイルセーフアーカイブをブートします。

    期限切れのブートアーカイブが存在する場合は、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	An out of sync boot archive was detected on /dev/dsk/c0t0d0s0.
    	The boot archive is a cache of files used during boot and
    	should be kept in sync to ensure proper system operation.
    	
    	Do you wish to automatically update this boot archive? [y,n,?]
    		
  5. y と入力してから Enter キーを押して、矛盾したブートアーカイブを更新します。

    次のメッセージが表示されます。


    Updating boot archive on /dev/dsk/c0t0d0s0.
    	The boot archive on /dev/dsk/c0t0d0s0 was updated successfully.

    矛盾したブートアーカイブが見つからない場合は、次のようなメッセージが表示されます。


    Searching for installed OS instances...
    	
    	Solaris 10.1... X86 was found on /dev/dsk/c0t0d0s0.
    	Do you wish to have it mounted read-write on /a? [y,n,?]

    このメッセージは、矛盾したブートアーカイブの更新に成功した場合にも表示されます。

  6. ブートアーカイブが破壊されているデバイスを /a にマウントします。デバイスに対応する番号を入力してから、Enter キーを押します。


    注 –

    前の手順で矛盾したアーカイブを更新した場合は、デバイスはすでに /a にマウントされています。


  7. 破壊されたブートアーカイブを強制的に更新する場合は、次のように入力します。


    # bootadm update-archive -f -R /a
    
  8. デバイスをマウント解除します。


    # umount /a
    
  9. システムを再起動します。


    # reboot
    

例 12–14 x86: フェイルセーフモードでブートして、破壊されたブートアーカイブを強制的に更新する

次の例では、フェイルセーフアーカイブをブートして、破壊されたブートアーカイブを強制的に更新する方法を示します。


GNU GRUB  version 0.95  (635K lower / 523200K upper memory)               
                                                                                
 +-------------------------------------------------------------------------+    
 | Solaris 10 1/06 s10x_u1wos_19a X86                                      |    
 | >Solaris failsafe<                                                      |    
 |                                                                         |    
 |                                                                         |    
  +-------------------------------------------------------------------------+   
      Use the  and  keys to select which entry is highlighted.                  
      Press enter to boot the selected OS, 'e' to edit the                      
      commands before booting, or 'c' for a command-line.                       
                                                                                
SunOS Release 5.10
Copyright 1983-2006 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Configuring devices.
Searching for installed OS instances...

Multiple OS instances were found. To check and mount one of them
read-write under /a, select it from the following list. To not mount
any, select 'q'.

  1  /dev/dsk/c0t0d0s0     Solaris 10 1/06 s10x_u1wos_19a X86
  2  /dev/dsk/c0t1d0s0     Solaris 10 5/08 X86

Please select a device to be mounted (q for none) [?,??,q]: 1
mounting /dev/dsk/c0t0d0s0 on /a

Starting shell.
# rm /a/platform/i86pc/boot_archive
# bootadm update-archive -f -R /a
Creating boot_archive for /a
updating /a/platform/i86pc/amd64/boot_archive
updating /a/platform/i86pc/boot_archive
# umount /a
# reboot
syncing file systems... done
rebooting...
.
.
.