JavaScript is required to for searching.
跳过导航链接
退出打印视图
引导和关闭 Oracle Solaris 11.1 系统     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  引导和关闭系统(概述)

2.  x86: 管理 GRand Unified Bootloader(任务)

3.  关闭系统(任务)

4.  引导系统(任务)

显示和设置引导属性

SPARC: 使用 OpenBoot PROM 显示和设置引导属性

SPARC: 如何标识系统的 PROM 修订版本号

SPARC: 如何标识系统中的设备

SPARC: 如何确定缺省引导设备

SPARC: 如何使用引导 PROM 更改缺省引导设备

设置 EEPROM 参数

SPARC: 如何使用 eeprom 实用程序设置缺省引导设备

x86: 通过 SMF 管理关机动画

引导系统

运行级别的工作原理

系统引导到多用户状态(运行级别 3)时发生的情况

何时使用运行级别或里程碑

确定系统的当前运行级别

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

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

如何以交互方式引导系统

从备用操作系统或引导环境进行引导

SPARC: 如何从备用操作系统或引导环境进行引导

x86: 如何从备用操作系统或引导环境进行引导

重新引导系统

如何使用 init 命令重新引导系统

如何使用 reboot 命令重新引导系统

加快重新引导过程

x86: 关于 quiesce 函数

如何对系统启动快速重新引导

x86: 对系统启动快速重新引导以引导至新激活的引导环境

更改缺省快速重新引导行为

对启用了快速重新引导的系统启动标准重新引导

5.  从网络引导系统(任务)

6.  对引导系统进行故障排除(任务)

索引

引导系统

以下过程介绍了如何将系统引导至不同状态,也称为运行级别引导

本节提供了以下过程:

运行级别的工作原理

系统的运行级别(也称为 init 状态)定义用户可以使用哪些服务和资源。系统一次只能在一个运行级别下运行。

Oracle Solaris 具有八个运行级别,下表对其进行了说明。在 /etc/inittab 文件中,缺省的运行级别指定为运行级别 3。

表 4-1 Oracle Solaris 运行级别

运行级别
Init 状态
类型
目的
0
电源关闭状态
电源关闭
关闭操作系统,以便可以安全地关闭系统电源。
s 或 S
单用户状态
单用户
以单用户身份运行,挂载并且能够访问某些文件系统。
1
管理状态
单用户
访问所有可用的文件系统。用户登录功能处于禁用状态。
2
多用户状态
多用户
用于正常操作。多个用户可以访问系统和所有的文件系统。除 NFS 服务器守护进程以外的所有守护进程都在运行。
3
共享 NFS 资源的多用户级别
多用户
用于共享 NFS 资源情况下的正常操作。这是缺省运行级别。
4
替换多用户状态
多用户
在缺省情况下未配置,但是可供客户使用。
5
电源关闭状态
电源关闭
关闭操作系统,以便可以安全地关闭系统电源。如有可能,自动关闭支持此功能的系统的电源。
6
重新引导状态
重新引导
停止操作系统,并重新引导至 /etc/inittab 文件中的 initdefault 项定义的状态。

缺省情况下,启用 SMF 服务 svc:/system/boot-config:defaultconfig/ fastreboot_default 属性设置为 true 时,init 6 会根据系统的具体功能,跳过某些固件初始化和测试步骤。请参见加快重新引导过程

另外,svcadm 命令可用于更改系统的运行级别,方法是选择系统要在其下运行的里程碑。下表显示了与每个里程碑相对应的运行级别。

表 4-2 运行级别和 SMF 里程碑

运行级别
SMF 里程碑 FMRI
S
milestone/single-user:default
2
milestone/multi-user:default
3
milestone/multi-user-server:default

系统引导到多用户状态(运行级别 3)时发生的情况

  1. init 进程将启动,并读取 svc:/system/environment:init SMF 服务中定义的属性,以设置任何环境变量。缺省情况下,仅设置 TIMEZONE 变量。

  2. 然后,init 读取 inittab 文件并执行下列操作:

    1. 执行 action 字段中包含 sysinit 的所有进程项,以便在用户登录系统之前执行所有特殊的初始化。

    2. 将启动活动传递到 svc.startd

    有关 init 进程如何使用 inittab 文件的详细描述,请参见 init(1M) 手册页。

何时使用运行级别或里程碑

一般来说,很少需要更改里程碑或运行级别。如有必要,使用 init 命令更改到某个运行级别也将更改里程碑,该命令是适用的命令。init 命令还适用于关闭系统。

但是,使用 none 里程碑引导系统可能对调试启动问题非常有用。none 里程碑没有等效的运行级别。有关更多信息,请参见《在 Oracle Solaris 11.1 中管理服务和故障》中的第 1  章 "管理服务(概述)"

确定系统的当前运行级别

要确定系统的当前运行级别,请使用 who -r 命令。

示例 4-3 确定系统的运行级别

who -r 命令的输出显示有关系统当前运行级别以及之前运行级别的信息。

$ who -r
 .    run-level 3  Dec 13 10:10  3  0 S
$
who -r 命令的输出
说明
run-level 3
标识当前的运行级别
Dec 13 10:10
标识上次更改运行级别的日期
3
也标识当前的运行级别
0
标识自上次重新引导以来系统处于该运行级别的次数
S
标识以前的运行级别

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

使用此过程将当前处于运行级别 0 的系统引导至运行级别 3。将相应地注释此过程中适用于 SPARC 或 x86 平台的任何信息。

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 根据平台,执行以下操作之一:
    • 对于 SPARC 平台:
      1. 使系统进入 ok PROM 提示符下。
        # init 0
      2. 将系统引导至运行级别 3。
        ok boot
    • 对于 x86 平台,请将系统重新引导至运行级别 3。
      # reboot

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

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

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

    hostname console login:

示例 4-4 SPARC: 将系统引导至多用户状态(运行级别 3)

以下示例显示了在引导过程开始后将基于 SPARC 的系统引导至运行级别 3 时出现的消息。

ok boot
Probing system devices
Probing memory
ChassisSerialNumber FN62030249
Probing I/O buses

.
.
.
.
OpenBoot 4.30.4.a, 8192 MB memory installed, Serial #51944031.
Ethernet address 0:3:ba:18:9a:5f, Host ID: 83189a5f.
Rebooting with command: boot
Boot device: /pci@1c,600000/scsi@2/disk@0,0:a  File and args:
SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
misc/forthdebug (455673 bytes) loaded
Hardware watchdog enabled
Hostname: portia-123
NIS domain name is solaris.example.com

portia-123 console login: NIS domain name is solaris.example.com

示例 4-5 x86: 将系统引导至多用户状态(运行级别 3)

以下示例显示了在引导过程开始后将基于 x86 的系统引导至运行级别 3 时出现的消息。由于快速重新引导功能是此发行版(在 x86 平台上)的缺省设置,因此使用 reboot 命令引导系统将对系统启动快速重新引导,这意味着将绕过 BIOS 或 UEFI 固件。另外,系统引导期间不显示 GRUB 菜单。如果需要在引导时访问系统固件或编辑 GRUB 菜单,请使用带有 -p 选项的 reboot 命令。请参见对启用了快速重新引导的系统启动标准重新引导

~# reboot
Apr 23 13:30:29 system-04 reboot: initiated by ... on /dev/console
Terminated
system-04% updating /platform/i86pc/boot_archive
updating /platform/i86pc/amd64/boot_archive

system-04 console login: syncing file systems... done
SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
Hostname: system-04

system-04 console login: <username>
Password: xxxxxx
Last login: Mon Apr 23 11:06:05 on console
Oracle Corporation      SunOS 5.11      11.1    April 2012
# who -r
        run-level 3  Apr 23 13:31     3      0  S

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

将系统引导至单用户状态以执行系统维护,如备份文件系统或对其他系统问题进行故障排除。

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 根据平台,执行以下操作之一:
    • 对于 SPARC 平台:
      1. 使系统进入 ok PROM 提示符下。
        # init 0
      2. 将系统引导至单用户状态。
        ok boot -s
      3. 显示以下消息时键入 root 口令:
        SINGLE USER MODE
        
        Root password for system maintenance (control-d to bypass): xxxxxx
    • 对于 x86 平台:
      1. 对系统执行标准重新引导。
        # reboot -p

        由于快速重新引导功能在缺省情况下处于启用状态,因此必须在重新引导系统时指定 -p 选项,从而在引导时显示 GRUB 菜单。要禁用快速重新引导功能以便无需指定 -p 选项,请参见更改缺省快速重新引导行为

        • 如果系统显示 "Press Any Key to Reboot" 提示符,请按任意键以重新引导系统。或者,在出现此提示时,您还可以使用 "Reset"(重置)按钮。
        • 如果系统已关闭,请使用电源开关打开系统。
      2. 在 GRUB 菜单显示后,选择要修改的引导项,然后键入 e 以编辑该项。
      3. 使用方向箭导航到 $multiboot 行,然后在行的末尾键入 -s
      4. 要退出 GRUB 编辑菜单并引导刚刚编辑的项,请按 Ctrl-X 组合键。如果未在带有 UEFI 固件的系统上使用串行控制台,按 F10 键也会引导该项。

        有关在引导时编辑 GRUB 菜单的更多信息,请参见x86: 通过在引导时编辑 GRUB 菜单添加内核参数

  3. 确认系统处于运行级别 S。
    # who -r
  4. 执行更改为运行级别 S 所需的维护任务。
  5. 重新引导系统。

示例 4-6 SPARC: 将系统引导至单用户状态(运行级别 S)

以下示例显示了在引导过程开始后将基于 SPARC 的系统引导至运行级别 S 时出现的消息。

# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 122 system services are now being stopped.
Mar  5 10:30:33 system1 syslogd: going down on signal 15
svc.startd: Killing user processes.
umount: /ws busy
umount: /home busy
Mar  5 17:30:50 The system is down.  Shutdown took 70 seconds.
syncing file systems... done
Program terminated
{1c} ok boot -s

SC Alert: Host System has Reset
NOV 17 21:46:59 ERROR: System memory downgraded to 2-channel mode from 4-channel mode
NOV 17 21:47:00 ERROR: Available system memory is less than physically installed memory
NOV 17 21:47:00 ERROR: System DRAM  Available: 008192 MB  Physical: 016384 MB
Sun Fire T200, No Keyboard
.
.
.
Ethernet address 0:14:4f:1d:e8:da, Host ID: 841de8da.



ERROR: The following devices are disabled:
    MB/CMP0/CH2/R0/D0

Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a 
File and args: -s

SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
NOTICE: Hypervisor does not support CPU power management
Booting to milestone "milestone/single-user:default".
Hostname: system1
Requesting System Maintenance Mode
SINGLE USER MODE
Enter root password (control-d to bypass): xxxxxx
single-user privilege assigned to root on /dev/console.
Entering System Maintenance Mode

Mar  5 10:36:14 su: 'su root' succeeded for root on /dev/console
Oracle Corporation      SunOS 5.11      11.1    January 2012
root@system1:~# who -r
run-level S  Mar  5 10:35     S      0  0
root@tsystem1:~#

示例 4-7 x86: 将系统引导至单用户状态(运行级别 S)

以下示例显示了在引导过程开始后将基于 x86 的系统引导至运行级别 S 时出现的消息。

root@system-04:~# init 0
root@system-04:~# svc.startd: The system is coming down.  Please wait.
svc.startd: 129 system services are now being stopped.
Apr 23 13:51:28 system-04 syslogd: going down on signal 15
svc.startd: Killing user processes.
umount: /home busy
Apr 23 13:51:36 The system is down.  Shutdown took 26 seconds.
syncing file systems... done
Press any key to reboot.
.
.
.LSI Corporation MPT SAS BIOS
MPTBIOS-6.26.00.00 (2008.10.14)
Copyright 2000-2008 LSI Corporation.

Initializing..|Press F2 to runS POPUP  (CTRL+P on Remote Keyboard)
Press F12 to boot from the network (CTRL+N on Remote Keyboard)
System Memory : 8.0 GB , Inc.
Auto-Detecting Pri Master..ATAPI CDROM                              0078
            Ultra DMA Mode-2 
.
.
.
GNU GRUB  version 1.99,5.11.0.175.1.0.0.14.0

 ****************************************************************************
 *Oracle Solaris 11.1                                                       *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 ****************************************************************************

      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 1.99,5.11.0.175.1.0.0.14.0

 ****************************************************************************
 * setparams 'Oracle Solaris 11.1'                                          *
 *                                                                          *
 * insmod part_msdos                                                        *
 * insmod part_sunpc                                                        *
 * insmod part_gpt                                                          *
 * insmod zfs                                                               *
 * search --no-floppy --fs-uuid --set=root cd03199c4187a7d7                 *
 * zfs-bootfs /ROOT/s11u1/@/ zfs_bootfs                                     *
 * set kern=/platform/i86pc/kernel/amd64/unix                               *
 * echo -n "Loading ${root}/ROOT/s11u1   /@$kern: "                         *
 * $multiboot /ROOT/s11u1/@/$kern $kern -B $zfs_bootfs -s                            
 * set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x1\ *
 * 5;640x480x32"                                                            **
 ****************************************************************************

      Minimum Emacs-like screen editing is supported. TAB lists
      completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for
      a command-line or ESC to discard edits and return to the GRUB menu.

Booting a command list

Loading hd0,msdos1,sunpc1/ROOT/s11u1/@/platform/i86pc/kernel/amd64/unix: 0
%...done.
Loading hd0,msdos1,sunpc1/ROOT/s11u1/@/platform/i86pc/amd64/boot_archive:
0%...
.
.
.
SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
NOTICE: kmem_io_2G arena created
Booting to milestone "milestone/single-user:default".
Hostname: system-04
Requesting System Maintenance Mode
SINGLE USER MODE


Enter user name for system maintenance (control-d to bypass): root
Enter root password (control-d to bypass): xxxxxxx
single-user privilege assigned to root on /dev/console.
Entering System Maintenance Mode

May  8 11:13:44 su: 'su root' succeeded for root on /dev/console
Oracle Corporation      SunOS 5.11      11.1    April 2012
You have new mail.

root@system-04:~# who -r
   .       run-level S  Apr 23 14:49     S      0  0

如何以交互方式引导系统

如果由于原始文件损坏或系统未引导而需要在引导过程中指定备用内核或 /etc/system 文件,则以交互方式引导系统非常有用。使用以下过程以交互方式引导系统。

以下过程介绍了在仅有一个引导环境的系统的交互式引导过程中,如何指定备用 /etc/system 文件。或者,可以引导备用引导环境。

  1. 创建 /etc/systemboot/solaris/filelist.ramdisk 文件的备份副本,然后将 etc/system.bak 文件名添加到 /boot/solaris/filelist.ramdisk 文件。
    # cp /etc/system /etc/system.bak
    # cp /boot/solaris/filelist.ramdisk /boot/solaris/filelist.ramdisk.orig
    # echo "etc/system.bak" >> /boot/solaris/filelist.ramdisk
  2. 根据平台,执行以下操作之一:
    • 对于 SPARC 平台:
      1. 使系统进入 ok PROM 提示符下。
        # init 0
      2. 以交互方式引导系统。
        ok boot -a
    • 对于 x86 平台:
      1. 对系统执行标准重新引导。
        # reboot -p
      2. 显示 GRUB 菜单后,选择要以交互方式引导的引导项,然后键入 e 以编辑该项。
      3. $multiboot 行的末尾键入 -a
      4. 要退出 GRUB 编辑菜单并引导刚刚编辑的项,请按 Ctrl-X 组合键。如果您的系统具有 UEFI 固件且未使用串行控制台,则按 F10 键也会引导此项。
  3. 系统提示指定备用文件系统时,指定您创建的备份文件,然后按回车键。例如:
    Name of system file [etc/system]: /etc/system.bak

    在不提供任何信息的情况下按回车键将接受系统缺省设置。

  4. 在 Retire store 提示符下,按回车键或指定 /dev/null 绕过。

    注 - /etc/devices/retire_store 文件是故障管理体系结构 (Fault Management Architecture, FMA) 弃用的设备的后备存储。系统不再使用这些设备。如有必要,可以为 /etc/devices/retire_store 提供备用文件。但是,出于恢复的目的,指定 /dev/null 是引导系统(不考虑 /etc/devices/retire_store 文件的内容)的最佳选择。


  5. 引导系统后,更正 /etc/system 文件的问题。
  6. 重新引导系统。
    # reboot

示例 4-8 SPARC: 以交互方式引导系统

在以下示例中,接受了系统缺省值(显示在方括号 [] 中)。

# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 121 system services are now being stopped.
Apr 22 00:34:25 system-28 syslogd: going down on signal 15
svc.startd: Killing user processes.
umount: /home busy
Apr 22 06:34:37 The system is down.  Shutdown took 18 seconds.
syncing file systems... done
Program terminated
{11} ok boot -a

SC Alert: Host System has Reset

Sun Fire T200, No Keyboard
Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
OpenBoot 4.30.4.d, 16256 MB memory available, Serial #74139288.
Ethernet address 0:14:4f:6b:46:98, Host ID: 846b4698.

Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a  File and args: -a
Name of system file [/etc/system]:  /etc/system.bak
SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
Retire store [/etc/devices/retire_store] (/dev/null to bypass): Press Return


system-28 console login:

示例 4-9 x86: 以交互方式引导系统

在下面的示例中,以交互方式引导基于 x86 的系统。

root@system-04:~# reboot -p
Apr 23 15:37:04 system-04 reboot: initiated by user1 on /dev/consoleTerminated
system-04% syncing file systems... done
rebooting...
.
.
.LSI Corporation MPT SAS BIOS
MPTBIOS-6.26.00.00 (2008.10.14)
Copyright 2000-2008 LSI Corporation.

Initializing..|Press F2 to runS POPUP  (CTRL+P on Remote Keyboard)
Press F12 to boot from the network (CTRL+N on Remote Keyboard)
System Memory : 8.0 GB , Inc.
Auto-Detecting Pri Master..ATAPI CDROM                              0078
            Ultra DMA Mode-2 
GNU GRUB  version 1.99,5.11.0.175.1.0.0.14.0

 ****************************************************************************
 *Oracle Solaris 11.1                                                       *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 *                                                                          *
 ****************************************************************************

      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 1.99,5.11.0.175.1.0.0.15.1

 +--------------------------------------------------------------------------+
 | setparams 'Oracle Solaris 11.1'                                          |
 |                                                                          |
 | insmod part_msdos                                                        |
 | insmod part_sunpc                                                        |
 | insmod part_gpt                                                          |
 | insmod zfs                                                               |
 | search --no-floppy --fs-uuid --set=root cd03199c4187a7d7                 |
 | zfs-bootfs /ROOT/s11u1/@/ zfs_bootfs                                     |
 | set kern=/platform/i86pc/kernel/amd64/unix                               |
 | echo -n "Loading ${root}/ROOT/s11u1/@$kern: "                            |
 | $multiboot /ROOT/s11u1/@/$kern $kern -B $zfs_bootfs -a                   |
 | set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x1\ |
 +--------------------------------------------------------------------------+

      Minimum Emacs-like screen editing is supported. TAB lists
      completions. Press Ctrl-x or F10 to boot, Ctrl-c or F2 for
      a command-line or ESC to discard edits and return to the GRUB menu.

 Booting a command list

Loading hd0,msdos1,sunpc1/ROOT/s11u1/@/platform/i86pc/kernel/amd64/unix: 0
%...done.
Loading hd0,msdos1,sunpc1/ROOT/s11u1/@/platform/i86pc/amd64/boot_archive:
0%...
.
.
.
Name of system file [/etc/system]:  /etc/system.bak
SunOS Release 5.11 Version 11.1 64-bit
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.: 0
Retire store [/etc/devices/retire_store] (/dev/null to bypass): Press Return 

NOTICE: kmem_io_2G arena created
Hostname: system-04

system-04 console login: