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

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...
.
.
.