系统管理指南:基本管理

在故障安全模式下引导基于 x86 的系统。

如要在故障安全模式下引导基于 x86 的系统,则在系统引导过程中显示 GRUB 菜单时选择故障安全引导项。在故障安全引导过程中,当出现系统提示时,请键入 y 以更新主引导归档文件。

从 ZFS 引导的系统也支持故障安全引导。在从以 UFS 为根的 BE 引导时,每个 BE 都有其自己的故障安全归档文件。故障安全归档文件位于根文件系统所在的位置,这与以 ZFS 为根的 BE 的情况相同。在基于 x86 的系统上,每个故障安全归档文件都在池范围的 GRUB 菜单中具有一个项。缺省故障安全归档文件是位于缺省可引导文件系统中的归档文件。缺省可引导文件系统(数据集)由池的 bootfs 属性的值指示。

有关引导归档文件恢复的更多信息,请参见第 13 章

Procedure如何在故障安全模式下引导基于 x86 的系统


注 –

某些 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 菜单,以选择一个故障安全项。

  4. 按回车键以引导故障安全归档文件。

    系统将搜索已安装的 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. 键入设备的编号,然后按回车键。

        系统会将该设备挂载到 /a 上,然后返回到 shell 提示符。

      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 菜单,以选择一个故障安全项。

  4. 按回车键以引导故障安全归档文件。

    如果引导归档文件已过时,则会显示类似如下的消息:


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