系统管理指南:基本管理

第 12 章 引导 Oracle Solaris 系统(任务)

本章介绍在基于 SPARC 和基于 x86 的系统上引导 Oracle Solaris 发行版的过程。

以下列出本章所介绍的信息:

有关引导过程的概述信息,请参见第 9 章


注 –

从 Solaris 10 1/06 发行版开始,基于 x86 的系统上已实现了开源 GRand Unified Bootloader (GRUB)。GRUB 负责将引导归档文件装入系统的内存中,该文件包含内核模块和配置文件。


要在实现基于 GRUB 引导的 Solaris 发行版中引导基于 x86 的系统,有关信息请参见第 16 章

引导基于 SPARC 的系统(任务图)

任务 

说明 

参考 

将基于 SPARC 的系统引导至运行级别 3。 

在关闭系统或执行系统硬件维护任务后使用此引导方法。  

SPARC: 如何将系统引导至运行级别 3(多用户级别)

将基于 SPARC 的系统引导至运行级别 S。 

在执行系统维护任务(例如,备份文件系统)后,使用此引导方法来引导系统。在此级别,只挂载本地文件系统,且用户无法登录系统。 

SPARC: 如何将系统引导至运行级别 S(单用户级别)

以交互方式引导基于 SPARC 的系统。 

为测试目的而对系统文件或内核进行临时更改后使用此引导方法。 

SPARC: 如何交互式地引导系统

引导除缺省内核以外的 Solaris 内核。 

使用此过程可引导除缺省内核以外的 Solaris 内核。 

或者,您还可以获取备用引导文件的副本,将缺省内核更改为新内核,然后将 boot-file 参数设置为引导新的缺省引导设备。

SPARC: 如何引导除缺省内核以外的内核

显示基于 SPARC 的系统上的可用 ZFS 可引导数据集的列表。 

使用 boot -L 命令可显示系统上的 ZFS 池中可用的 BE 列表。


注 –

只有包含 ZFS 池的引导设备支持此选项。


SPARC: 如何列出 ZFS 根池中可用的可引导数据集

从 ZFS 根文件系统引导基于 SPARC 的系统。 

使用 boot -Z 选项可引导指定的 ZFS 数据集。


注 –

只有包含 ZFS 池的引导设备支持此选项。


SPARC: 如何从指定的 ZFS 根文件系统引导

在基于 SPARC 的系统上引导故障安全归档文件。 

使用此过程在故障安全模式下引导基于 SPARC 的系统。然后,运行 bootadm 命令更新引导归档文件。

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

从网络引导基于 SPARC 的系统。 

使用此引导方法可从网络引导系统。请注意,此方法还可用于引导无盘客户机。 

SPARC: 如何从网络引导系统

引导基于 SPARC 的系统

如果系统已关闭,则将其打开即可启动多用户引导序列。以下过程说明如何从 ok PROM 提示符处引导至不同的运行级别。除非另行说明,否则这些过程假设系统已正常关闭。

使用 who -r 命令验证系统是否已进入指定的运行级别。有关运行级别的说明,请参见第 18 章

ProcedureSPARC: 如何将系统引导至运行级别 3(多用户级别)

使用此过程将当前处于运行级别 0 的系统引导至运行级别 3。

  1. 将系统引导至运行级别 3。


    ok boot
    

    自动引导过程会显示一系列的启动消息,并使系统进入运行级别 3。有关更多信息,请参见 boot(1M) 手册页。

  2. 确认系统已引导至运行级别 3。

    引导过程成功完成后,将显示登录提示。


    hostname console login:

示例 12–1 SPARC: 将系统引导至运行级别 3(多用户级别)

以下示例显示了将系统引导至运行级别 3 时出现的消息。


ok boot
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz)
OpenBoot 3.15, 128 MB memory installed, Serial #number.
Ethernet address number, Host ID: number.

Rebooting with command: boot
Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a  File and args: kernel/sparcv9/unix
SunOS Release 5.10 Version s10_60 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: hme0.
add net default: gateway 172.20.27.248
Hostname: starlite
The system is coming up.  Please wait.
NIS domain name is example.com
starting rpc services: rpcbind keyserv ypbind done.
Setting netmask of hme0 to 255.255.255.0
Setting default IPv4 interface for multicast: add net 224.0/4: gateway starlite
syslog service starting.The system is ready.
Starting Sun(TM) Web Console Version 2.1-dev..
volume management starting.
The system is ready.
starlite console login: 

在前面的示例中,sparcv9 仅为一个示例。此字符串与 isainfo -k 命令的输出匹配。


ProcedureSPARC: 如何将系统引导至运行级别 S(单用户级别)

使用此过程可将当前位于运行级别 0 的系统引导至运行级别 S。此运行级别用于执行系统维护任务,例如,备份文件系统。

  1. 将系统引导至运行级别 S。


    ok boot -s
    
  2. 显示以下消息时键入超级用户口令:


    SINGLE USER MODE
    
    Root password for system maintenance (control-d to bypass): xxxxxx
    
  3. 确认系统处于运行级别 S。


    # who -r
    
  4. 执行将运行级别更改为 S 所需的维护任务。

  5. 完成系统维护任务之后,请按 Ctrl-D 组合键,使系统进入多用户状态。


示例 12–2 SPARC: 将系统引导至运行级别 S(单用户级别)

以下示例显示了将系统引导至运行级别 S 时出现的消息。


ok boot -s
.
.
.
Sun Microsystems Inc.   SunOS 5.10 Version Generic_120012-14 32-bit
Copyright 1983-2003 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: hme0.
Hostname: starlite

SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
Oct 14 15:01:28 su: 'su root' succeeded for root on /dev/console
Sun Microsystems Inc.   SunOS 5.10
# who -r
   .       run-level S  Sep 19 08:49     S      0  ?
(Perform some maintenance task)
# ^D

ProcedureSPARC: 如何交互式地引导系统

需要指定替代内核或 /etc/system 文件时,请使用此引导选项。

开始之前

要在使用 boot -a 命令以交互方式引导基于 SPARC 的系统时指定备用的 /etc/system 文件,必须在引导系统之前执行以下步骤。

  1. 交互式地引导系统。


    ok boot -a
    
  2. 应答以下系统提示:

    1. 系统提示时,请输入要用于引导的内核名称。

      按 Enter 键使用缺省的内核文件名。否则,请提供替代内核的名称,然后按 Enter 键。

    2. 出现提示时,请提供 modules 目录的替代路径。

      按 Enter 键使用缺省的模块目录。否则,请提供模块目录的替代路径,然后按 Enter 键。

    3. 系统提示时,请提供替代系统文件的名称。

      如果 /etc/system 文件已损坏,请键入 /dev/null

    4. 出现提示时,输入 root 文件系统类型。

      按 Enter 键,选择 UFS 进行本地磁盘引导(缺省值),或者输入 NFS 采用网络引导。

    5. 系统提示时,请输入 root 设备的物理名称。

      提供替代的设备名称或按回车键以使用缺省值。

  3. 如果系统未提示回答这些问题,请验证是否正确键入了 boot -a 命令。


示例 12–3 SPARC: 交互式地引导系统

在以下示例中,接受了缺省选择(显示在方括号 [] 中)。有关使用 boot -a 命令引导备用文件系统的说明和示例,请参见SPARC: 如何交互式地引导系统


ok boot -a
.
.
.
Rebooting with command: boot -a
Boot device: /pci@1f,0/pci@1,1/ide@3/disk@0,0:a  
File and args: -a
Enter filename [kernel/sparcv9/unix]: Press Return
Enter default directory for modules [/platform/SUNW,Ultra-5_10/kernel 
     /platform/sun4u/kernel /kernel /usr/kernel]: Press Return
Name of system file [etc/system]: Press Return
SunOS Release 5.10 Version S10_60 64-bit
Copyright (c) 1983-2004 by Sun Microsystems, Inc. All rights reserved
Use is subject to license terms.
root filesystem type [ufs]: Press Return
Enter physical name of root device
[/pci@1f,0/pci@1,1/ide@3/disk@0,0:a]: Press Return
configuring IPv4 interfaces: hme0.
Hostname: starlite
The system is coming up.  Please wait.
checking ufs filesystems
.
.
.
The system is ready.
starlite console login:

ProcedureSPARC: 如何引导除缺省内核以外的内核

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 获取现有 Oracle Solaris 内核的副本并将其重命名。

  3. 将您在步骤 2 中复制和重命名的内核添加到 /etc/boot/solaris/filelist.ramdisk 文件中。


    # echo "kernel.name" >> /boot/solaris/filelist.ramdisk
    
  4. 检验是否已将备用内核添加到 /etc/boot/solaris/filelist.ramdisk 文件中。


    # cat > /etc/boot/solaris/filelist.ramdisk
    
  5. 使用 bootadm 命令更新引导归档文件。


    # bootadm update-archive
    
  6. 更改为运行级别 0。


    # init 0
    

    此时将显示 ok PROM 提示符。

  7. 引导备用内核。


    ok boot alternate-kernel
    

    例如:


    ok boot kernel.myname/sparcv9/unix
    
    • 要在缺省情况下引导备用内核,请执行以下步骤:

      1. 将 boot-file 参数设置为新内核。


        ok setenv boot-file kernel.name/sparc9/unix
        
      2. 检验 boot-file 属性是否已更改。


        ok printenv boot-file
        
      3. 重新引导系统。


        ok boot
        
  8. 在引导系统后,检验是否已引导备用内核。


    # prtconf -vp | grep whoami
    

示例 12–4 通过更改缺省引导文件引导备用的内核


# cp -r /platform/sun4v/kernel /platform/sun4vu/kernel.caiobella
# echo "kernel.caiobela" >> /boot/solaris/filelist.ramdisk

# cat > /etc/boot/solaris/filelist.ramdisk
/platform/sun4v/kernel.caiobella
^D (control D)

ok setenv boot-file kernel.caiobells/sparcv9/unix
ok printenv boot-file
boot-file = kernel.caiobella/sparcv9/unix

ok boot

SC Alert: Host System has Reset

SC Alert: Host system has shut down.


Sun Fire T200, No KeyboardCopyright 2006 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.25.0.build_01***PROTOTYPE BUILD***, 32760 MB memory available, Serial 
#69060038.
Ethernet address 0:x:4f:x:c5:c6, Host ID: 8xxc5c6.



Rebooting with command: boot
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a  File and 
args: kernel.caiobella/sparcv9/unix
SunOS Release 5.10
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
misc/forthdebug (176650 bytes) loaded
Hostname: seasonz
NIS domain name is lab.domain.sun.com
Reading ZFS config: done.

seasonz console login:
Password:
Last login: Mon Nov 12 18:02:00 on console
Sun Microsystems Inc.   SunOS 5.10
.
.
.
You have new mail.
#
#
# prtconf -vp | grep whoami
        whoami:  '/platform/sun4v/kernel.caiobella/sparcv9/unix'

在基于 SPARC 的系统上从指定的 ZFS 根文件系统引导

为了支持在 SPARC 平台上从 Oracle Solaris ZFS 引导,已添加了两个新的引导选项:

-L

显示 ZFS 池中可用的可引导数据集列表。


注 –

boot -L 命令从 OBP 而不是从命令行执行。


-Z dataset

引导指定 ZFS 可引导数据集的根文件系统。

如果要从 ZFS 根文件系统引导系统,请首先从 OBP 使用带有 -L 选项的 boot 命令列显系统中可用 BE 的列表。然后,使用 -Z 选项引导指定的 BE。

有关更多信息,请参见 boot(1M) 手册页。

ProcedureSPARC: 如何列出 ZFS 根池中可用的可引导数据集

在基于 SPARC 的系统上,menu.lst 文件包含以下两个 GRUB 命令:

要显示 ZFS 池中可引导数据集的列表,请从以下方法中进行选择:

以下过程介绍如何使用 boot -L 命令列出系统中可用的 BE。要在运行此命令后引导指定的 BE,请按照屏幕上列显的说明操作。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 使系统进入 ok PROM 提示符下。


    # init 0
    
  3. 列出 ZFS 池中可用的 BE:


    ok boot device-specifier -L
    
  4. 要引导所显示的项之一,请键入该项对应的编号。

  5. 执行屏幕上列显的指令,引导指定的 BE。

    有关说明,请参见SPARC: 如何从指定的 ZFS 根文件系统引导


示例 12–5 SPARC: 使用 boot -L 显示系统中可用 BE 的列表


# init 0
# svc.startd: The system is coming down. Please wait.
svc.startd: 94 system services are now being stopped.
svc.startd: The system is down.
syncing file systems... done
Program terminated
ok boot -L
.
.
.
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -L
zfs-file-system
Loading: /platformsun4u/bootlst
1.s10s_nbu6wos
2 zfs2BE
Select environment to boot: [ 1 - 2 ]: 2

to boot the selected entry, invoke:
boot [<root-device] -Z rpool/ROOT/zfs2BE

另请参见

有关更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的第 5  章 “安装和引导 Oracle Solaris ZFS 根文件系统”

ProcedureSPARC: 如何从指定的 ZFS 根文件系统引导

从 Oracle Solaris ZFS 引导不同于从 UFS 引导。从 ZFS 引导时,设备说明符标识一个存储池,而不是标识单个根文件系统。存储池可能包含多个可引导的数据集或根文件系统。因此,在从 ZFS 引导时,您还必须标识由引导设备标识为缺省池的池中的根文件系统。缺省情况下,缺省引导设备由池的 bootfs 属性标识。以下过程说明如何通过指定 ZFS 可引导数据集来引导系统。有关可用的所有引导选项的完整说明,请参见 boot(1M) 手册页。


注 –

如果以前正确设置了 bootfs 属性(例如,如果您使用 luactivate 命令激活了某个 BE),则系统会自动引导 ZFS 根。


有关更多信息,请参见 zpool(1M) 手册页。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 使系统进入 ok PROM 提示符下。


    # init 0
    
  3. (可选的)要显示可用 BE 的列表,请使用带有 -L 选项的 boot 命令。

    有关说明,请参见SPARC: 如何列出 ZFS 根池中可用的可引导数据集

  4. 要引导指定的项,请键入该项的编号,然后按回车键:


    Select environment to boot: [1 - 2]:
  5. 要引导系统,请按照屏幕上列显的说明操作:

    To boot the selected entry, invoke:
    boot [<root-device>] -Z rpool/ROOT/dataset
    

    ok boot -Z rpool/ROOT/dataset
    

    例如:


    # boot -Z rpool/ROOT/zfs2BE
    
  6. 在引导系统之后,键入以下命令来检验活动的 BE:


    # prtconf -vp | grep whoami
    
    • 要显示活动 BE 的引导路径,请键入:


      # prtconf -vp | grep bootpath
      
    • 或者,您可以使用 df -lk 命令确定是否引导了正确的 BE。


示例 12–6 SPARC: 从指定的 ZFS 根文件系统引导

以下示例说明如何使用 boot -Z 命令在基于 SPARC 的系统上引导 ZFS 数据集。


# init 0
# svc.startd: The system is coming down. Please wait.
svc.startd: 79 system services are now being stopped.
svc.startd: The system is down.
syncing file systems... done
Program terminated
ok boot -Z rpool/ROOT/zfs2BEe
Resetting
LOM event: =44d+21h38m12s host reset
g ...

rProcessor Speed = 648 MHz
Baud rate is 9600
8 Data bits, 1 stop bits, no parity (configured from lom)

Firmware CORE Sun Microsystems, Inc.
@(#) core 1.0.12 2002/01/08 13:00
software Power ON
Verifying nVRAM...Done
Bootmode is 0
[New I2C DIMM address]
.
.
.
Environment monitoring: disabled
Executng last command: boot -Z rpool/ROOT/zfs2BE
Boot device: /pci@1f,0/pci@1/scsi@8/disk@0,0 File and args: -Z rpool/ROOT/zfs2Be
zfs-file-system
Loading: /platform/SUNW,UltraAX-i2/boot_archive
Loading: /platform/sun4u/boot_archive
ramdisk-root hsfs-file-system
Loading: /platform/SUNW,UltraAX-i2/kernel/sparcv9/unix
Loading: /platform/sun4u/kernel/sparcv9/unix
.
.
.
Hostname: mallory
NIS domainname is boulder.Central.Sun.COM
Reading ZFS config: done.
Mounting ZFS filesytems: (6/6)

mallory console login:

另请参见

有关指定 ZFS 可引导数据集的故障安全归档文件的引导信息,请参见如何在故障安全模式下引导基于 SPARC 的系统

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

如果从作为引导归档文件的根文件系统映像引导系统,然后在实际根设备上重新挂载此文件系统,有时可能会导致引导归档文件和根文件系统不匹配或不一致。在这些情况下,将会危及系统的正确操作和完整性。在挂载根 (/) 文件系统之后,且在放弃内存中文件系统之前,系统会针对这两个文件系统执行一致性验证。如果检测到不一致,正常引导序列将会暂停,并且系统会恢复至故障安全模式

此外,如果在更新内核文件后立刻出现系统故障、电源故障或内核紧急情况,则引导归档文件和根文件系统可能无法同步。虽然系统仍然可能使用不一致的引导归档文件引导,但建议您引导故障安全归档文件以更新引导归档文件。您还可以使用 bootadm 命令手动更新引导归档文件。有关更多信息,请参见使用 bootadm 命令管理引导归档文件

引导故障安全归档文件可用于恢复目的,或更新引导归档文件。

在 SPARC 平台上,故障安全归档文件为:

/platform/`uname -m`/failsafe

可以使用以下语法引导故障安全归档文件:


ok boot  -F failsafe

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

有关引导基于 x86 的故障安全归档文件的信息,请参见在故障安全模式下引导基于 x86 的系统。

有关清除引导归档文件自动更新故障的信息,请参见x86: 如何使用 auto-reboot-safe 属性清除引导归档文件自动更新故障

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

使用此过程在故障安全模式下引导基于 SPARC 的系统以更新引导归档文件。如果在更新引导归档文件后系统不引导,您可能需要在单用户模式下引导系统。有关更多信息,请参见SPARC: 如何将系统引导至运行级别 S(单用户级别)


注 –

此过程还说明了在故障安全模式下如何引导指定的 ZFS 数据集。


  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 使系统进入 ok 提示符:


    # init 0
    
  3. 引导故障安全归档文件。

    • 要引导缺省故障安全归档文件,请键入:


      ok boot -F failsafe
      
    • 要引导特定 ZFS 数据集的故障安全归档文件,请键入:


      ok boot -F failsafe -Z dataset
      

      例如:


      ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
      

      注 –

      要确定要引导的数据集的名称,请首先使用 boot -L 命令显示系统中可用 BE 的列表。有关更多信息,请参见SPARC: 如何列出 ZFS 根池中可用的可引导数据集


    如果检测到不一致的引导归档文件,将会显示一条消息。

  4. 要更新引导归档文件,请键入 y,然后按回车键。


    An out of sync boot archive was detected on rpool.
    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,?] y
    

    如果成功更新归档文件,将会显示一条消息:


    The boot archive on rpool was updated successfully.

示例 12–7 SPARC: 在故障安全模式下引导系统

该示例介绍如何在故障安全模式下引导基于 SPARC 的系统。如果未指定任何设备,则引导缺省引导设备的故障安全归档文件。


ok boot -F failsafe
Resetting ...
screen not found.
Can't open input device. Keyboard not present.  Using ttya for input and output.

Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard
OpenBoot 3.23, 1024 MB memory installed, Serial #13116682.
Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a.

Rebooting with command: boot -F failsafe
Boot device: /pci@1f,4000/scsi@3/disk@1,0:a  File and args: -F failsafe
SunOS Release 5.10t
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev Searching for installed OS instances...

An out of sync boot archive was detected on /dev/dsk/c0t1d0s0.
The boot archive is a cache of files used during boot and
should be kept in syncto ensure proper system operation.

Do you wish to automatically update this boot archive? [y,n,?] y 
Updating boot archive on /dev/dsk/c0t1d0s0.
The boot archive on /dev/dsk/c0t1d0s0 was updated successfully.

Solaris 5.10 was found on /dev/dsk/c0t1d0s0.
Do you wish to have it mounted read-write on /a? [y,n,?] n
Starting shell.
#


示例 12–8 SPARC: 在故障安全模式下引导指定的 ZFS 数据集

此示例介绍如何在故障安全模式下引导 ZFS 数据集。请注意,首先使用 boot -L 命令显示可用引导环境的列表。此命令必须在 ok 提示符下运行。


ok boot -L
Rebooting with command: boot -L                                       
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -L
1 zfsBE2
Select environment to boot: [ 1 - 1 ]: 1

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfsBE2

Program terminated
{0} ok 





Resetting ... 

screen not found.
Can't open input device.
Keyboard not present.  Using ttya for input and output.

Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard
OpenBoot 3.23, 1024 MB memory installed, Serial #13116682.
Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a.



                                                                      
{0} ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -F failsafe -Z 
rpool/ROOT/zfsBE2
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev
Searching for installed OS instances...

ROOT/zfsBE2 was found on rpool.
Do you wish to have it mounted read-write on /a? [y,n,?] y
mounting rpool on /a

Starting shell.
# 
# 
# 
# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  16.8G  6.26G  10.5G    37%  ONLINE  /a
# 
# zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c0t1d0s0  ONLINE       0     0     0

errors: No known data errors
# 
# df -h
Filesystem             size   used  avail capacity  Mounted on
/ramdisk-root:a        163M   153M     0K   100%    /
/devices                 0K     0K     0K     0%    /devices
/dev                     0K     0K     0K     0%    /dev
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   601M   344K   601M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
swap                   602M   1.4M   601M     1%    /tmp
/tmp/root/etc          602M   1.4M   601M     1%    /.tmp_proto/root/etc
fd                       0K     0K     0K     0%    /dev/fd
rpool/ROOT/zfsBE2       16G   5.7G   9.8G    37%    /a
rpool/export            16G    20K   9.8G     1%    /a/export
rpool/export/home       16G    18K   9.8G     1%    /a/export/home
rpool                   16G    63K   9.8G     1%    /a/rpool

从网络引导基于 SPARC 的系统

在以下情况下,您可能需要从网络引导系统:

可以使用两种网络配置引导策略:

对于网络设备,通过局域网 (local area network, LAN) 引导的过程与通过广域网 (wide area network, WAN) 引导的过程稍有不同。在这两种网络引导方案中,PROM 将从引导服务器或安装服务器下载引导程序(在此情况下为 inetboot)。

在通过 LAN 引导时,固件将使用 RARP 和 BOOTP 或 DHCP 来搜索引导服务器或安装服务器。然后,将使用 TFTP 下载引导程序(在此情况下为 inetboot)。

在通过 WAN 引导时,固件将使用 DHCP 或 NVRAM 属性搜索系统从网络引导所需的安装服务器、路由器和代理。用于下载引导程序的协议是 HTTP。此外,还可能使用预定义的私钥检查引导程序的签名。

ProcedureSPARC: 如何从网络引导系统

如果引导服务器可用,任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,则可能需要从网络引导独立系统。有关更改或重置缺省引导设备的信息,请参见SPARC: 如何使用引导 PROM 更改缺省引导设备

sun–4u 系统提供两种网络配置引导策略:

缺省网络引导策略被设置为 RARP。可以使用上述协议之一,具体情况取决于网络上提供的是 RARP 引导服务器还是 DHCP 引导服务器。


注 –

Sun Ultra 系统必须至少具有 PROM 版本 3.25.nn 才能使用 DHCP 网络引导策略。有关确定 PROM 版本的信息,请参见SPARC: 如何查找系统的 PROM 修订号


如果这两个协议都可用,则可以临时指定要在 boot 命令中使用的协议。或者,可以通过设置 NVRAM 别名,在 PROM 级别通过重新引导系统来保存网络引导策略。以下示例使用 nvalias 命令设置网络设备别名,从而以缺省方式在 Sun Ultra 10 系统上引导 DHCP。


ok nvalias net	/pci@1f,4000/network@1,1:dhcp

因此,当键入 boot net 时,系统将使用 DHCP 进行引导。


注 –

不要使用 nvalias 命令来修改 NVRAMRC 文件,除非您非常熟悉此命令和 nvunalias 命令的语法。有关这些命令的使用信息,请参见OpenBoot 3.x Command Reference Manual


开始之前

要成功引导两种协议中的任一种,在您的网络中必须安装 RARP 或 DHCP 引导服务器。

  1. 如果必要,请关闭系统。

  2. 确定从网络进行引导的方法,然后选择以下操作之一:

    1. 使用 DHCP 策略从网络引导系统。


      ok boot net[:dhcp]

      如果您已将 PROM 设置更改为以缺省方式引导 DHCP(如前面的 nvalias 示例所示),则只需指定 boot net

    2. 使用 RARP 策略从网络引导系统。


      ok boot net[:rarp]

      由于 RARP 是缺省的网络引导策略,因此,如果您已为引导 DHCP 而更改了 PROM 值,则只需指定 boot net:rarp

使用 GRUB 引导基于 x86 的系统(任务图)

任务 

说明 

参考 

将基于 x86 的系统引导至运行级别 3(多用户级别)。 

关闭系统或执行系统硬件维护任务之后,使用此引导方法使系统恢复至多用户级别。 

x86: 如何将系统引导至运行级别 3(多用户)

在单用户模式下引导基于 x86 的系统。 

使用此引导方法可执行系统维护任务(例如,备份文件系统)。 

x86: 如何将系统引导至运行级别 S(单用户级别)

以交互方式引导基于 x86 的系统。 

为测试目的而对系统文件或内核进行临时更改后使用此引导方法。 

x86: 如何交互式地引导系统

显示基于 x86 的系统上可引导的 ZFS 数据集列表。 

使用以下方法之一可显示具有 ZFS 根文件系统的基于 x86 的系统上的可用 BE:

  • lustatus

  • bootadm list-menu

x86: 如何显示可用的 ZFS 引导环境列表

从 ZFS 根文件系统引导基于 x86 的系统。 

如果您安装支持 ZFS 引导装载器的 Oracle Solaris 发行版或将您的系统升级至该发行版,则在缺省情况下,缺省 ZFS BE 的 GRUB 菜单项包含 -B $ZFS-BOOTFS 引导参数。系统将自动从 ZFS 引导。


注 –

只有包含 ZFS 池的引导设备支持此选项。


x86: 如何从指定的 ZFS 根文件系统引导

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

使用此过程可在基于 x86 的系统上引导故障安全归档文件。然后,运行 bootadm 命令更新引导归档文件。

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

在故障安全模式下引导基于 x86 的系统以强制更新损坏的引导归档文件。 

在以下情况下使用此过程:引导归档文件已损坏;系统拒绝正常引导;或者系统未提示您更新不一致的引导归档文件。 

x86: 如何在故障安全模式下引导以强制更新损坏的引导归档文件

使用 GRUB 从网络引导基于 x86 的系统。 

使用此方法从采用缺省网络配置策略的网络引导 PXE 或非 PXE 设备。此方法还可用于引导无盘客户机。 

x86: 如何从网络执行基于 GRUB 的引导

Procedurex86: 如何将系统引导至运行级别 3(多用户)

使用此过程将当前处于运行级别 0 的系统引导至运行级别 3。

  1. 重新引导系统。


    # reboot
    

    如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。

    在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。

    引导序列开始时,将显示 GRUB 菜单。

  2. 显示 GRUB 菜单时,按 Enter 键引导缺省 OS 实例。

    如果在 10 秒内未选择项,系统会自动引导至运行级别 3。

    引导过程成功完成后,将显示登录提示。

  3. 登录到系统。


    hostname console login:
  4. 确认系统已引导至运行级别 3。


    # who -r
    system% who -r
       .       run-level 3  Mar  2 09:44     3      0  S

示例 12–9 x86: 将系统引导至运行级别 3(多用户级别)


# reboot

Jul 24 11:29:52 bearskin reboot: rebooted by root
syncing file systems... done
rebooting...

Adaptec AIC-7899 SCSI BIOS v2.57S4
(c) 2000 Adaptec, Inc. All Rights Reserved.

 Press <Ctrl><A> for SCSISelect(TM) Utility! 

Ch B,  SCSI ID: 0 SEAGATE  ST336607LSUN36G   160

GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
==============================================================
Solaris 10 10/08 s10x_u6wos_03 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 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)

pups console login:

# who -r
   .       run-level 3  Jul 24 11:31     3      0  S

Procedurex86: 如何将系统引导至运行级别 S(单用户级别)

使用此过程可将位于运行级别 0 的系统引导至运行级别 S。单用户级别用于执行系统维护。


注 –

此过程可用于所有 GRUB 实现。但是,GRUB 主菜单中的引导项随您所运行的 Oracle Solaris 发行版而异。


有关您在引导时可指定的所有内核选项的说明,请参见 x86: 通过在引导时编辑 GRUB 菜单修改引导行为

  1. 重新引导系统。


    # reboot
    

    如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。

    在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。

    引导序列开始时,将显示 GRUB 菜单。

  2. 显示 GRUB 主菜单时,键入 e 以编辑 GRUB 菜单。

  3. 根据要运行的版本,使用方向键选择 kernelkernel$ 行。

    如果不能使用方向键,请使用插入记号键 (^) 向上滚动,并使用字母 v 键向下滚动。

  4. 再次键入 e 以编辑引导项。

    在这里,您可以向 kernelkernel$ 行添加选项和参数。

  5. 要在单用户模式下引导系统,请在引导条目行的结尾键入 -s,然后按回车键返回至上一屏幕。

    • 要指定其他引导行为,请将 -s 选项替换为适当的引导选项。

      可以使用此方式指定以下备用引导行为:

      • 执行重新配置引导

      • 在 32 位模式下引导具备 64 位计算能力的系统

      • 使用内核调试器引导系统

      • 重定向控制台

      有关更多信息,请参见 boot(1M) 手册页。

  6. 要在单用户模式下引导系统,请键入 b

  7. 出现提示时,键入超级用户口令。

  8. 确认系统处于运行级别 S。


    # who -r
    .       run-level S  Jun 13 11:07     S      0  0
  9. 执行将运行级别更改为 S 所需的系统维护任务。

  10. 完成系统维护任务后,重新引导系统。


示例 12–10 x86: 在单用户模式下引导系统


# reboot
Jul  2 14:30:01 pups reboot: initiated by root on /dev/console
syncing files...

Press <Ctrl><A> forPSCSISelect(TM) Utility!


GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

===================================================
Solaris 10 10/08 s10x_u6wos_03 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.
=====================================================

GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS 
module /platform/i86pc/boot_archive
================================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
		boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
		selected line, or escape to go back to the main menu.

[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename.  ESC at any time exits. ]

grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s

 GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

=======================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -s 
module /platform/i86pc/boot_archive
======================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
 	boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
   selected line, or escape to go back to the main menu.
.
.
.
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Booting to milestone "milestone/single-user:default".
Hostname: pups Requesting System Maintenance Mode SINGLE USER MODE
Root password for system maintenance (control-d to bypass):
single-user privilege assigned to /dev/console.
Entering System Maintenance Mode
Jul  2 14:41:48 su: 'su root' succeeded for root on /dev/console Sun Microsystems Inc.
# who -r
who -r    .       run-level S  Jul  2 14:39     S      0  0 # 

Procedurex86: 如何交互式地引导系统

在需要指定备用内核或备用 /etc/system 文件时,请使用此过程引导系统。

开始之前

在使用 boot a 命令交互式引导基于 x86 的系统时,如要指定备用的 -/etc/system 文件,请执行以下步骤:

  1. 重新引导系统。


    # reboot
    

    如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。

    在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。

    引导序列开始时,将显示 GRUB 主菜单。

  2. 要访问 GRUB 编辑菜单,请键入 e

  3. 使用方向键选择 kernelkernel$ 行。

  4. 键入 e 以编辑引导项行。

  5. 键入 -a 交互式引导系统,然后按回车键返回至上一菜单。

  6. 要交互式地引导系统,请键入 b

  7. 键入模块的缺省目录,或按 Enter 键接受缺省目录。


    Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
  8. 键入备用的系统文件名 alternate-file


    Name of system file [etc/system]: /etc/system.bak
    

    在不提供备用文件的情况下按 Enter 键可接受缺省名称。

    修复损坏的 /etc/system 文件。

  9. 将系统重新引导至运行级别 3。


示例 12–11 x86: 交互式地引导系统


# reboot
syncing file systems... done
rebooting...

 
GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
===================================================
Solaris 10 10/08 s10x_u6wos_03 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.
=====================================================


GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)
=====================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS 
module /platform/i86pc/boot_archive
======================================================
		Use the  and  keys to select which entry is highlighted.
		Press 'b' to boot, 'e' to edit the selected command in the
		boot sequence, 'c' for a command-line, 'o' to open a new line
		after ('O' for before) the selected line, 'd' to remove the
		selected line, or escape to go back to the main menu.

[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename.  ESC at any time exits. ]

grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a
GNU GRUB  version 0.95  (637K lower / 2096064K upper memory)

===================================================
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS -a 
module /platform/i86pc/boot_archive
====================================================
.
.
.
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
Name of system file [/etc/system]:  /etc/system.bak
SunOS Release 5.10 Version Generic_137138-04 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: pups
NIS domain name is ....sfbay.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)
pups console login:

x86: 在基于 x86 的系统上从指定的 ZFS 根文件系统引导

为了支持在 x86 平台上引导 Oracle Solaris ZFS 根文件系统,已引入了一个新的 GRUB 关键字 $ZFS-BOOTFS。如果根设备包含 ZFS 池,则会为此关键字分配一个值,然后使用 -B 选项将该值传递给内核。此选项标识要引导的数据集。如果您使用支持 ZFS 引导装载器的 Oracle Solaris 发行版来安装或升级您的系统,则在缺省情况下,GRUB menu.lst 文件和 GRUB 引导菜单将包含此信息。

Procedurex86: 如何显示可用的 ZFS 引导环境列表

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 要显示系统中可用 BE 的列表,请键入以下命令:


    ~# bootadm list-menu
    

    # lustatus
    

    请注意,也可以在基于 SPARC 的系统上使用 lustatus 命令。


    注 –

    如果在运行 lustatus 命令时显示以下错误,则表明执行了全新安装,而没有使用 Solaris Live Upgrade。必须先在系统中创建新的 BE,然后才能在 lustatus 输出中确认任何 BE。


    # lustatus
    ERROR: No boot environments are configured on this system
    ERROR: cannot determine list of all boot environment names

    有关使用 Solaris Live Upgrade 将 UFS 根文件系统迁移到 ZFS 根文件系统的更多信息,请参见 《Oracle Solaris ZFS 管理指南》中的“将 UFS 根文件系统迁移到 ZFS 根文件系统 (Oracle Solaris Live Upgrade)”


示例 12–12 使用 lustatus 命令显示可用的 ZFS 可引导数据集的列表

在以下示例中,lustatus 命令的输出显示了三个 ZFS 可引导数据集的状态。缺省的引导环境是 be1,因而无法将其删除。


# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
s10s_nbu6wos               yes      no     no        yes    -
zfs2BE                     yes      yes    yes       no     -
zfsbe3                     no       no     no        yes    -
#

如果该 BE 已创建且可引导,则 Is Complete 列中会显示 "yes"。如果某个 BE 已创建但尚未激活,则此列中会显示 "no"。要激活某个 BE,请使用 luactivate 命令。之后,可以运行 lustatus 命令以检验是否已成功激活该 BE。

有关更多信息,请参见 lustatus(1M)luactivate(1M) 手册页。


Procedurex86: 如何从指定的 ZFS 根文件系统引导

以下过程介绍如何在支持 ZFS 引导装载器的 x86 系统上从 ZFS 根文件系统引导。

请注意,如果您安装支持 ZFS 引导装载器的 Oracle Solaris 发行版或将您的系统升级至该发行版,则在缺省情况下,GRUB 菜单项包含 -B $ZFS-BOOTFS 引导参数,因此,系统无需任何其他引导参数即可从 ZFS 引导。

  1. 重新引导系统。


    # reboot
    

    如果系统显示 Press any key to reboot 提示,请按任意键以重新引导系统。

    在出现此提示时,您还可以使用“重置”按钮。如果系统已关闭,请使用电源开关打开系统。

    引导序列开始时,将显示 GRUB 主菜单。如果缺省引导项是 ZFS 文件系统,则菜单将类似如下:


    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.
  2. 显示 GRUB 菜单后,请按 Enter 键引导缺省的操作系统实例。

    如果在 10 秒内未选择项,系统会自动引导至运行级别 3。

  3. 要引导其他 BE,请使用方向键突出显示指定的引导项。

  4. 键入 b 引导此项,或键入 e 编辑此项。

    有关引导时 GRUB 菜单项的更多信息,请参见 x86: 如何通过在引导时编辑 GRUB 菜单修改引导行为


示例 12–13 x86: 在基于 x86 的系统上激活新的引导环境

以下示例显示了在系统中激活引导环境 be10 所要执行的步骤。请注意,要首先运行 lustatus,以确定系统中哪些 BE 是活动的,以及哪些 BE 需要激活。


# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                      Complete Now    On Reboot Delete Status
-----------------------------------------------------------------
be1                        yes      yes    yes       no     
be10                       yes      no     no        yes



# luactivate be10
System has findroot enabled GRUB Generating boot-sign, partition and slice
information for PBE <be1>
WARNING: The following file s have change on both the current boot environment
<be1> zone <global> and the boot environment to be activitate <be10>
		/etc/zfs/zpool.cache
INFORMATION: The files listed above are in conflict between the current
boot environment <be1> zone <global> and the boot environment to be
activated <be10>. These files will not be automatically synchronized from
the current boot environment <be1> when boot environment <be10> is activated.

Setting failsafe console to <ttyb>
Generating boot-sign for ABE <be10>
Generating partition and slice information for ABE <be10>
Copied boot menu from top level dataset.
Generating direct boot menu entries for PBE.
Generating direct boot menu entries for ABE.
Disabling splashimage
Current GRUB menu default setting is not valid
title Solaris bootenv rc
No more bootadm entries. Deletion of bootadm entries is complete.
GRUB menu default setting is unchanged
Done eliding bootadm entries.
**************************************************************
The target boot environment has been activated. It will be used when you
reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You
MUST USE either the init or the shutdown command when you reboot. If you
do not use either init or shutdown, the system will not boot using the
target BE.
***************************************************************
,,,


# reboot
May 30 09:52:32 pups reboot: initiated by root on /dev/console
syncing file systems... done
rebooting...

CE SDRAM BIOS P/N GR-xlint.007-4.330
*

BIOS Lan-Console 2.0
Copyright (C) 1999-2001 Intel Corporation
.
.
.
GNU GRUB  version 0.95  (637K lower / 3144640K upper memory)
 +-------------------------------------------------------------------+
| be1
| be1 failsafe
| be10
| be10 failsafe
+------------------------------------------------------------------+
      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.

SunOS Release 5.10 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.

Hostname: pups
NIS domain name is sunsoft.eng.sun.com
Reading ZFS config: done.
Mounting ZFS filesystems: (8/8)

pups console login:
# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                      Complete Now    On Reboot Delete Status
-----------------------------------------------------------------
be1                        yes      yes    yes       no     
be10                       yes      yes    yes       no
# 

在故障安全模式下引导基于 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...
.
.
.

从网络引导基于 x86 的系统

本节介绍有关从网络执行基于 GRUB 的引导的要求和警告。

如果引导服务器可用,任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,您可能需要从网络引导独立系统以便进行恢复。可以从支持 PXE 网络引导协议的网络来直接引导基于 x86 的系统。


注 –

PXE 网络引导只适用于实现了 Intel 引导前执行环境规范的设备。


用于基于 GRUB 的 PXE 网络引导的缺省网络引导策略是 DHCP。对于非 PXE 设备,可以使用 DHCP 引导策略或 RARP 引导策略。使用的策略取决于网络上可用的引导服务器的类型。如果没有可用的 PXE 或 DHCP 服务器,则可以从软盘、CD-ROM 或本地磁盘装入 GRUB。

要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器提供客户机配置其网络接口所需的信息。

DHCP 服务器必须能够使用以下信息响应 DHCP 类(PXEClientGRUBClient):

    以下是执行 Oracle Solaris OS 的 PXE 网络引导的顺序:

  1. BIOS 被配置为从网络接口进行引导。

  2. BIOS 发送 DHCP 请求。

  3. DHCP 服务器在回复中提供服务器地址和引导文件的名称。

  4. BIOS 使用 tftp 下载 pxegrub 并执行 pxegrub

  5. 系统使用 tftp 下载 GRUB 菜单文件。

    此文件显示可用的引导菜单项。

  6. 选择菜单项后,系统即开始装入 Oracle Solaris OS。

有关更多信息,请参见 《系统管理指南:IP 服务》中的“如何设置网络配置服务器”

运行 add_install_client 命令可以创建 /tftpboot_01ethernet-address 文件。此文件链接至 pxegrub/tftpboot/menu.lst.01ethernet-address 文件。/tftpboot/menu.lst.01ethernet-address 文件是 GRUB 菜单文件。如果此文件不存在,则 pxegrub 将恢复使用 DHCP 选项 150(如果指定了此选项)或 /tftpboot/boot/grub/menu.lst 文件。通常,将单系统设置为提供两项功能。此时,add_install_client 命令会使用正确的 pxegrub 菜单文件和 Oracle Solaris 文件设置 /tftpboot 文件。DHCP 服务是使用 add_install_client 命令单独进行处理的。对每台客户机只需完成一次设置。有关更多信息,请参见x86: 关于 DHCP 宏x86: 如何从网络执行基于 GRUB 的引导

x86: 关于 DHCP 宏

当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。创建用于将网络安装信息传递到客户机所需的选项和宏时,可以使用此信息。

要通过网络使用 DHCP 服务器安装 DHCP 客户机,必须创建 DHCP 选项。安装 Oracle Solaris OS 时需要用到此信息。

当客户机发送 DHCP 请求时,服务器必须具有以下客户机信息:

DHCP 服务器会作出响应。此响应基于以下,且与客户机请求匹配:

类宏

类宏基于 DHCP 请求中包含的类字符串。在基于 x86 的系统上,BIOS 已使用类 PXEClient:Arch:00000:UNDI:002001 创建了 DHCP 请求。如果在 DHCP 服务器配置中已按此名称定义了宏,则宏内容将被发送到基于 x86 的客户机。

网络宏

网络宏由客户端所在子网的 IP 地址命名。如果已在 DHPC 服务器上定义了宏 129.146.87.0,则宏内容将被发送到该子网上的所有客户机。宏内容的发送与请求类无关。如果同时在类宏和网络宏中定义了选项,则网络宏优先使用。

IP 宏

IP 宏由 IP 地址命名。该宏很少使用。

客户机宏

客户机宏以客户机的类型(01 表示以太网)和客户机的 MAC 地址(使用大写字母)命名。对于具有以太网地址 0:0:39:fc:f2:ef 的客户机,对应的宏名称为 01000039FCEF。请注意,客户机宏中没有冒号。

例如,对于子网 192.168.100.0 上具有以太网地址 0:0:39:fc:f2:ef 的客户机(创建类 PXEClient 的 DHCP 请求),DHCP 服务器具有以下匹配的宏:


PXEClient
	BootSrvA:  192.168.100.0
	BootFile:  pxegrub
  129.146.87.0
	Router:    129.146.87.1
	NISdmain:  sunsoft.eng.sun.com
  01000039FCEF
	BootFile:  01000039FCEF
The actual DHCP response will be
	BootSrvA:  192.168.100.0
	BootFile:  01000039FCEF
	Router:    129.146.87.1
	NISdmain:  sunsoft.eng.sun.com

请注意,客户机宏中的 BootFile 将覆盖类宏中的 BootFile

有关更多详细信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的“使用 DHCP 服务预配置系统配置信息(任务)”

Procedurex86: 如何从网络执行基于 GRUB 的引导

要执行基于 GRUB 的网络引导,需要有为 PXE 客户机配置的 DHCP 服务器。还需要提供 tftp 服务的引导服务器。DHCP 服务器必须能够对 DHCP 类(PXEClientGRUBClient)做出响应,才能获取文件服务器和引导文件 (pxegrub) 的 IP 地址。缺省情况下,此菜单文件为 /tftpboot/menu.lst.01ethernet-address。如果此文件不存在,则 pxegrub 将恢复到 DHCP 选项 150(如果指定了此选项),或 /tftpboot/boot/grub/menu.lst 文件。

如果您是从 Solaris 软件介质来引导系统,系统会自动进行引导。

开始之前

使用 GRUB 在基于 x86 的系统上执行网络引导之前,请执行以下操作:

有关更多信息,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》中的第 4  章 “从网络进行安装(概述)”

  1. 在 DHCP 服务器上,使用以下两个选项为 DHCP 服务创建客户机宏:

    • BootSrvA: svr-addr

    • BootFile: client-macro

      请注意,您必须对 DHCP 服务器具有超级用户权限才能运行 dhtadm 命令。

      其中,svr-addr 是服务器的 IP 地址,client-macro 以客户机的以太网类型 (01) 以及 MAC 地址来命名(使用大写字母)。此编号也是在安装服务器上的 /tftpboot 目录中使用的文件的名称。


      注 –

      client-macro 的表示法不应包含任何冒号。


      您可以使用 DHCP GUI 或命令行界面来创建客户机宏。

      要从命令行创建客户机宏,请键入:


      # dhtadm -[MA] -m client macro -d
      ":BootFile=client-macro:BootSrvA=svr-addr:"
      
  2. 重新引导系统。

  3. 指示 BIOS 从网络进行引导。

    • 如果系统使用特定的击键序列从网络进行引导,请在显示 BIOS 屏幕时键入这些击键。

    • 如果需要手动修改 BIOS 设置以从网络进行引导,请键入相应的击键序列,以访问 BIOS 设置实用程序。然后,修改从网络进行引导的引导优先级。

  4. 显示 GRUB 菜单时,请选择要安装的网络安装映像。