跳过导航链接 | |
退出打印视图 | |
![]() |
引导和关闭 Oracle Solaris 11.1 系统 Oracle Solaris 11.1 Information Library (简体中文) |
2. x86: 管理 GRand Unified Bootloader(任务)
SPARC: 使用 OpenBoot PROM 显示和设置引导属性
SPARC: 如何使用 eeprom 实用程序设置缺省引导设备
本节提供了以下过程:
通常,系统会在加电时或在系统崩溃后进行重新引导。可以通过使用 init 命令或 reboot 命令重新引导系统。init 6 命令要求停止方法(SMF 或 rc.d)。但是,reboot 命令不会,因此 reboot 命令将成为重新引导系统时更为可靠的方法。有关详细信息,请参见 init(1M) 和 reboot(1M)。
reboot 执行以下操作:
重新启动内核
在磁盘上执行 sync 操作
启动多用户引导。
尽管 reboot 命令在任何时候均可供 root 用户使用,但在某些情况下,当服务器重新引导时,通常会首先使用 shutdown 命令警告所有已登录系统的用户服务即将丢失。有关更多信息,请参见第 3 章。
系统始终在一组定义完善的运行级别中的某一级运行。由于运行级别由 init 进程维护,因此运行级别也称为 init 状态。init 命令可用于启动运行级别转换。使用 init 命令重新引导系统时,运行级别 2、3 和 4 可用作多用户系统状态。请参见运行级别的工作原理。
init 命令是一种可执行的 shell 脚本,用于在更改运行级别之前终止系统上的所有活动进程然后同步磁盘。init 6 命令将停止操作系统,并重新引导至 /etc/inittab 文件中的 initdefault 项定义的状态。
注 - 从 Oracle Solaris 11 发行版开始,将缺省启用 SMF 服务 svc:/system/boot-config:default。config/fastreboot_default 属性设置为 true 时(适用于所有基于 x86 的系统),init 6 会根据系统的具体功能,跳过某些固件初始化和测试步骤。在基于 SPARC 的系统上,该属性缺省设置为 false,但可以手动启用该属性。请参见加快重新引导过程。
# init 6
# init 2
示例 4-12 使用 init 命令将系统重新引导至单用户状态(运行级别 S)
在本示例中,init 命令用于将系统重新引导至单用户状态(运行级别 S)。
~# init s ~# svc.startd: The system is coming down for administration. Please wait. Jul 20 16:59:37 system-04 syslogd: going down on signal 15 svc.startd: Killing user processes. Requesting System Maintenance Mode (See /lib/svc/share/README for more information.) SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): xxxxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Jul 20 17:11:24 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.1 June 2012 You have new mail. ~# who -r . run-level S Jul 20 17:11 S 1 3
使用此过程将正在运行的系统重新引导至多用户状态(运行级别 3)。
注 - 在 x86 平台上,使用 reboot 命令对系统启动快速重新引导,绕过 BIOS 或 UEFI 固件以及某些引导过程。要对已启用快速重新引导功能的基于 x86 的系统执行标准重新引导,必须在 reboot 命令中使用 -p 选项。请参见对启用了快速重新引导的系统启动标准重新引导。
# reboot
SPARC 和 x86 平台均支持 Oracle Solaris 的快速重新引导功能。快速重新引导功能实现了一种内核内引导装载程序,它可将内核装入内存,然后再切换到该内核,因此重新引导过程在几秒钟之内就能完成。
新的 boot-config 服务 svc:/system/boot-config:default 有助于提供快速重新引导功能支持。如果需要,此服务会提供一种设置或更改系统的缺省引导配置属性的方法。将 config/fastreboot_default 属性设置为 true 时,系统会自动执行快速重新引导。缺省情况下,在基于 x86 的系统上,该属性设置为 true,而在基于 SPARC 的系统上,该属性设置为 false。
在基于 x86 的系统上,快速重新引导系统将绕过系统固件(BIOS 或 UEFI)以及引导装载程序进程。缺省情况下,在 x86 平台上,快速重新引导和应急快速重新引导(在系统出现紧急情况后快速重新引导系统)均已启用,因此不需要在 reboot 命令中使用 -f 选项即可对基于 x86 的系统启动快速重新引导。
快速重新引导功能在基于 SPARC 的系统上的运行方式与在基于 x86 的系统上的运行方式不同。请注意以下关于 SPARC 平台上的快速重新引导支持的其他信息:
sun4u 系统上不支持快速重新引导。
sun4v 系统上支持快速重新引导。但是,基于 SPARC 的系统的快速重新引导与基于 x86 的系统的快速重新引导不同。在 SPARC sun4v 系统上,快速重新引导是最低的虚拟机管理程序启动的重新启动,它提供了与基于 x86 的系统的快速重新引导相同的基本性能。
缺省情况下,不启用基于 SPARC 的系统上的快速重新引导行为。要对基于 SPARC 的系统进行快速重新引导,必须在 reboot 命令中使用 -f 选项。或者,要使快速重新引导成为缺省行为,可以将 config/fastreboot_default 属性设置为 true。有关说明,请参见更改缺省快速重新引导行为。
在基于 SPARC 的系统上,boot-config 服务还需要 solaris.system.shutdown 授权作为 action_authorization 和 value_authorization。
系统在引导新 OS 映像时绕过固件的功能依赖于设备驱动程序对新设备操作入口点 quiesce 的实现。在支持的驱动程序上,该实现将停止设备,因此函数完成后,该驱动程序不再产生中断。该实现还会将设备重置为硬件状态,在该状态下,可以通过驱动程序的连接例程对设备进行正确配置,而无需对系统进行关开机循环或通过固件进行配置。有关此功能的更多信息,请参见 quiesce(9E) 和 dev_ops(9S) 手册页。
# reboot -f
# reboot
# init 6
运行这些命令之一可将系统重新引导至 grub.cfg 文件中的缺省项。
可以通过多种方法将基于 x86 的系统快速重新引导至备用引导环境。以下示例说明了其中的一些方法。
示例 4-13 x86: 对系统启动快速重新引导以引导至新激活的引导环境
以下示例说明如何对系统启动快速重新引导,以引导至新激活的引导环境 2012-06-10-be。
# beadm activate 2012-06-10-be # reboot
示例 4-14 x86: 通过指定备用引导环境对系统启动快速重新引导
要将系统快速重新引导至备用引导环境(例如 zfsbe2),需要键入以下命令:
# reboot -- 'rpool/zfsbe2'
要对系统启动快速重新引导以引导至名为 rpool/zfsbe1 的数据集,需要键入以下命令:
# reboot -- 'rpool/zfsbe1'
例如,可对系统启动快速重新引导以引导至备用的 ZFS 根数据集,如下所示:
# reboot -- 'rpool/ROOT/zfsroot2'
示例 4-15 x86: 在启用内核调试器的情况下对系统启动快速重新引导以引导至备用引导环境
对系统启动快速重新引导以引导至 zfsbe3 引导环境,如下所示:
# reboot -- 'rpool/zfsbe3 /platform/i86pc/kernel/amd64/unix -k'
示例 4-16 x86: 对系统启动快速重新引导以引导至新内核
对系统启动快速重新引导以引导至名为 my-kernel 的新内核,如下所示:
# reboot -- '/platform/i86pc/my-kernel/amd64/unix -k'
示例 4-17 x86: 对挂载的磁盘或挂载的数据集启动快速重新引导
对挂载的磁盘或挂载的数据集启动快速重新引导,如下所示:
# reboot -- '/mnt/platform/i86pc/my-kernel/amd64/unix -k'
示例 4-18 x86: 在启用内核调试器的情况下对系统启动快速重新引导以引导至单用户状态
在启用内核调试器的情况下,对系统启动快速重新引导以引导至单用户状态,如下所示:
# reboot -- '-ks'
快速重新引导功能由 SMF 进行控制,并通过引导配置服务 svc:/system/boot-config 来实现。boot-config 服务提供了一种设置或更改缺省引导参数的方法。
boot-config 服务的 fastreboot_default 属性可以实现在使用 reboot 或 init 6 命令时,系统自动执行快速重新引导。将 config/fastreboot_default 属性设置为 true 时,系统将自动执行快速重新引导,不需要使用 reboot --f 命令。缺省情况下,在基于 x86 的系统上,该属性值设置为 true,而在基于 SPARC 的系统上,该属性值设置为 false。
示例 4-19 x86: 配置 boot-config 服务的属性
svc:/system/boot-config:default 服务包括以下属性:
config/fastreboot_default
config/fastreboot_onpanic
通过使用 svccfg 和 svcadm 命令可以配置这些属性。
例如,要在基于 x86 的系统上禁用 fastreboot_onpanic 属性的缺省行为,需要将属性的值设置为 false,如下所示:
# svccfg -s "system/boot-config:default" setprop config/fastreboot_onpanic=false # svcadm refresh svc:/system/boot-config:default
更改一个属性的值不会影响其他属性的缺省行为。
有关通过 SMF 管理引导配置服务的信息,请参见 svcadm(1M) 和 svccfg(1M) 手册页。
示例 4-20 SPARC: 配置 boot-config 服务的属性
以下示例说明了如何通过将 boot-config SMF 服务属性设置为 true,以使快速重新引导成为基于 SPARC 的系统上的缺省行为。
# svccfg -s "system/boot-config:default" setprop config/fastreboot_default=true # svcadm refresh svc:/system/boot-config:default
将该属性的值设置为 true 会加速重新引导过程,并将允许支持快速重新引导功能的系统绕过某些 POST 测试。将此属性设置为 true 时,可以对系统执行快速重新引导而不必在 reboot 命令中使用 -f 选项。
要重新引导已启用快速重新引导功能的系统,而不重新配置 boot-config 服务以禁用该功能,请在 reboot 命令中使用 -p 选项,如下所示:
# reboot -p