系统管理指南:基本管理

x86: 引导未实现 GRUB 的系统

以下过程使用“重置”按钮重新启动系统。如果系统没有“重置”按钮,请使用电源开关重新启动系统。根据系统的状态,您或许可以按 Ctrl-Alt-Del 组合键来中断系统操作。

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

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

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

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

    几分钟后将显示“当前引导参数”菜单。

  2. 键入 b 以将系统引导至运行级 3,然后按 Enter 键。

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

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

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


    hostname console login:

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

对于新安装,在引导提示符下键入 b 可将具有 64 位计算能力的基于 x86 的系统自动引导至 64 位模式。对于升级安装,如果之前未将 eeprom boot-file 参数设置为除 kernel/unix 以外的值,则在引导提示符下键入 b 也可将具有 64 位计算能力的基于 x86 的系统引导至 64 位模式。

本示例说明如何将具有 64 位计算能力的基于 x86 的系统引导至运行级别 3。


Press any key to reboot
           .
           .
           .
                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 
Type    b [file-name] [boot-flags] <ENTER>      to boot with options
or      i <ENTER>                               to enter boot interpreter
or      <ENTER>                                 to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b
SunOS Release 5.10 Version amd64-gate-2004-09-27 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:


示例 16–2 x64: 在 64 位模式下将具有 64 位计算能力的系统手动引导至运行级别 3(多用户级别)

对于新安装,在引导提示符下键入 b 可将具有 64 位计算能力的基于 x86 的系统自动引导至 64 位模式。对于升级安装,如果之前未将 eeprom boot-file 参数设置为除 kernel/unix 以外的值,则在引导提示符下键入 b 也可将具有 64 位计算能力的基于 x86 的系统引导至 64 位模式。

本示例说明如何在 64 位模式下将此类型的系统手动引导至运行级别 3。


# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 68 system services are now being stopped.
umount: /etc/svc/volatile busy
svc.startd: The system is down.
syncing file systems... done
Press any key to reboot.

Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>    to boot with options
or      i <ENTER>                             to enter boot interpreter
or      <ENTER>                               to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/amd64/unix
SunOS Release 5.10 Version amd64-gate-2004-09-27 64-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:


示例 16–3 在 32 位模式下将具有 64 位计算能力的系统手动引导至运行级 3(多用户级别)

对于新安装,在引导提示符下键入 b 可将具有 64 位计算能力的基于 x86 的系统自动引导至 64 位模式。对于升级安装,如果之前未将 eeprom boot-file 参数设置为除 kernel/unix 以外的值,则在引导提示符下键入 b 也可将具有 64 位计算能力的基于 x86 的系统引导至 64 位模式。

本示例说明如何在 32 位模式下将此类型的系统手动引导至运行级别 3。


# init 0
# svc.startd: The system is coming down.  Please wait.
svc.startd: 68 system services are now being stopped.
umount: /etc/svc/volatile busy
svc.startd: The system is down.
syncing file systems... done
Press any key to reboot.
Resetting...
If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.

                                                    
Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args: 

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/unix
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:

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

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

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

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

    几分钟后将显示“当前引导参数”菜单。

  2. 键入 b -s 以将系统引导至运行级别 S。按 Enter 键。

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

  3. 如果看到提示,请键入超级用户口令。

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


    # who -r
       .       run-level S  Jul 19 14:37     S      0  3
  5. 执行将运行级别更改为 S 所需的维护任务。

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


示例 16–4 x86: 将系统引导至运行级别 S(单用户级别)


Press any key to reboot.
Resetting...
.
.
.
Initializing system 
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -s
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
Booting to milestone "milestone/single-user:default".
Hostname: venus
NIS domain name is example.com
Requesting System Maintenance Mode
SINGLE USER MODE

Root password for system maintenance (control-d to bypass): xxxxxx
Entering System Maintenance Mode
.
.
.
# who -r
   .       run-level S  Jul 19 14:37     S      0  3
(Perform some maintenance task)
# ^D

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

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

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

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

    几分钟后将显示“主引导子系统”菜单。

  2. 从列表中选择 Solaris 分区(如果未标记为活动状态)。按 Enter 键。

    如果在五秒内未做出选择,系统将自动选择活动的引导分区。

    几分钟后将显示“当前引导参数”菜单。

  3. 键入 b -a 以交互式地引导系统。按 Enter 键。

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

  4. 应答以下系统提示:

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

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

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

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

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

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

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

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

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

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

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


示例 16–5 x86: 交互式地引导系统

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


Press any key to reboot.
Resetting...
.
.
.
Autobooting from bootpath: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a


If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.


Initializing system
Please wait...


                     <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults
Running Configuration Assistant...
                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -a
Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]:
Press Enter
Name of system file [etc/system]: Press Enter
SunOS Release 5.10 Version amd64-gate-2004-09-30 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
DEBUG enabled
root filesystem type [ufs]: Press Enter
Enter physical name of root device[/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a]: Press Enter
Hostname: venus
NIS domain name is example.com
checking ufs filesystems
/dev/rdsk/c1d0s7: is logging.
venus console login:

x86: 从网络引导

如果引导服务器可用,则任何系统都可以从网络进行引导。如果系统不能从本地磁盘进行引导,则可能需要从网络引导独立系统以便进行恢复。

可以从网络直接引导基于 Solaris OS x86 的系统,而无需基于 x86 的系统上支持引导前执行环境 (Preboot Execution Environment, PXE) 网络引导协议的 Solaris 引导软盘。PXE 网络引导只适用于实现了 Intel 引导前执行环境规范的设备。如果系统具备 PXE 网络引导功能,则可能需要直接从网络引导系统,而无需使用 Device Configuration Assistant 引导软盘或者 Solaris Software 1 CD 或 DVD。


注 –

在此 Oracle Solaris 发行版中,软件在 DVD 上交付。


Procedurex86: 如何从网络引导系统

此过程包括使用 Solaris Device Configuration Assistant 从网络引导基于 x86 的系统的说明。请注意,从 Oracle Solaris OS 发行版开始,Device Configuration Assistant 的行为已发生更改。

从 Solaris 10 1/06 发行版开始,运行 Solaris OS 的基于 x86 的系统上已实现了基于 GRUB 的引导。GRUB 菜单将取代 Device Configuration Assistant。有关使用 GRUB 从网络引导基于 x86 的系统的信息,请参见从网络引导基于 x86 的系统

有两种网络配置策略:反向地址解析协议 (Reverse Address Resolution Protocol, RARP) 或动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP)。PXE 网络引导的缺省网络引导策略是 DHCP。非 PXE 设备的缺省网络引导策略是 RARP。对于非 PXE 设备,根据网络上提供的是 RARP 引导服务器还是 DHCP 引导服务器,可以使用上述策略之一。


注 –

如果您使用 DHCP 服务器进行 PXE 网络引导,则需要附加的 DHCP 配置。有关 DHCP 配置的常规信息,请参见《系统管理指南:IP 服务》中的第 III 部分, “DHCP”。如果要对 DHCP 服务器进行设置以支持安装,请参见 《Oracle Solaris 10 9/10 安装指南:基于网络的安装》


如果执行的是 PXE 网络引导,或者是通过 Solaris Software 介质引导系统,则系统会自动引导。缺省情况下,将不再显示 Device Configuration Assistant 菜单。如果要引导非 PXE 设备,则需要遵照此过程中的以下步骤执行操作,这些步骤说明了如何进入 Device Configuration Assistant 菜单以更改网络配置。

  1. 插入要用来引导的 Device Configuration Assistant 引导软盘或者 Solaris Software 介质。

    • 或者,使用系统或网络适配器 BIOS 配置程序来启用 PXE 网络引导。

      • 如果使用的是引导软盘,则会显示 Device Configuration Assistant 的第一个菜单。

      • 如果使用的是 Oracle Solaris Software 1 CD、DVD,或者是从网络引导 PXE 设备,则系统将自动进行引导。

        如果选择更改网络配置并进入 Device Configuration Assistant 菜单,请在显示以下消息时按 Esc 键。


        If the system hardware has changed, or to boot from a different
        device, interrupt the autoboot process by pressing ESC.
        
        Press ESCape to interrupt autoboot in 5 seconds.

    此时将显示 Device Configuration Assistant 屏幕。

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

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

  3. 按 F2 键 (F2_Continue) 扫描设备。

    系统将执行设备识别。然后,将显示“已识别设备”屏幕。

  4. 按 F2 键 (F2_Continue) 装入驱动程序。

    此时会装入可引导驱动程序。然后,将显示“引导 Solaris”菜单。

  5. 使用 Device Configuration Assistant 更改网络配置。

    1. 按 F4 键 (F4_Boot Tasks)。

    2. 选择 Set Network Configuration Strategy。按 F2 键 (F2_Continue)。

    3. 选择 RARPDHCP,然后按 F2 键 (F2_Continue)。


      注 –

      仅当从网络引导非 PXE 设备时,上一步骤才适用。对于 PXE 网络引导,必须使用 DHCP,这是缺省的网络引导策略。


      此时将显示确认新网络引导策略的消息。您选择的网络引导策略将保存为下次使用此软盘进行引导时的缺省网络引导方法。

    4. 按 F3_Back 组合键返回到“引导 Solaris”菜单。

  6. 选择 NET 作为引导设备。

  7. 按 F2 继续引导网络设备。

    此时将显示 Solaris 引导选项屏幕。

x86: 使用 Device Configuration Assistant


注 –

在此 Solaris 发行版中,Device Configuration Assistant 已为 GRUB 菜单所取代。有关此功能的更多信息,请参见使用 GRUB 引导基于 x86 的系统(任务图)


Solaris 10: 基于 Oracle Solaris x86 的系统的 Device Configuration Assistant 是一个程序,通过该程序可执行各种硬件配置和引导任务。

可以从以下位置之一访问 Device Configuration Assistant 菜单。

对于本章中的过程,系统可能会要求您插入 Device Configuration Assistant 引导软盘引导 Configuration Assistant。或者,如果系统的 BIOS 支持从 CD 或 DVD 进行引导,则可以插入 Solaris Software 1 CD 或 DVD 引导 Device Configuration Assistant。

Procedurex86: 如何进入 Device Configuration Assistant

Solaris 10: 此过程说明如何中断引导过程以进入 Device Configuration Assistant。在当前的 Solaris 发行版中,GRUB 菜单取代了 Device Configuration Assistant。

  1. 引导系统。

    • 如果是从 Device Configuration 引导软盘进行引导,则几分钟后会显示 Device Configuration Assistant 的第一个菜单。

    • 如果是从 Oracle Solaris Software 1 CD、DVD、硬盘进行引导,或者是执行 PXE 网络引导,则会显示以下消息:


      If the system hardware has changed, or to boot from a different
      device, interrupt the autoboot process by pressing ESC.
      
      Press ESCape to interrupt autoboot in 5 seconds.

      如果选择进入 Device Configuration Assistant 菜单,请按 Esc 键以中断自动引导过程。

      此时会显示 Device Configuration Assistant 菜单。

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

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

Procedurex86: 如何为恢复目的而停止系统

  1. 使用以下命令之一停止系统(如果可能):

    • 如果系统正在运行,请成为超级用户并键入 init 0 来停止系统。出现 Press any key to reboot 提示后,请按任意键以重新引导系统。

    • 如果系统正在运行,请成为超级用户并键入 init 6 来重新引导系统。

  2. 如果系统未响应从鼠标或键盘输入的任何内容,请按“重置”键(如果存在)重新引导系统。或者,可以使用电源开关重新引导系统。

Procedurex86: 如何为恢复目的而引导系统

要修复关键的系统资源,请遵照以下步骤引导系统。该示例说明如何从 Oracle Solaris Software CD、DVD 或从网络进行引导,如何在磁盘上挂载根 (/) 文件系统,以及如何修复 /etc/passwd 文件。

替换要针对 device-name 变量进行修复的文件系统的设备名称。要识别系统的设备名称,请参阅《系统管理指南:设备和文件系统》中的“显示设备配置信息”

  1. 使用系统的 Stop 组合键停止系统。

    如果不知道 root 口令或者不能登录到系统,请使用系统的 Stop 组合键。有关更多信息,请参见x86: 如何为恢复目的而停止系统

  2. 从 Oracle Solaris Software CD、DVD 或从网络将系统引导至单用户模式。

    1. 插入要用来引导的 Device Configuration Assistant 引导软盘或者 Oracle Solaris Software CD 或 DVD。


      注 –

      如果使用的是引导软盘,则会显示 Device Configuration Assistant 菜单。如果使用的是 Oracle Solaris Software CD 或 DVD,则系统会自动引导。要进入 Device Configuration Assistant 菜单,请在系统提示时按 Esc 键来中断引导过程。


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

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

  3. 几分钟后将显示“当前引导参数”菜单。

  4. 在提示符下键入 b -s。按 Enter 键。

    几分钟后,将显示单用户模式 # 提示符。

  5. 挂载包含无效的 passwd 文件的根 (/) 文件系统。

  6. 转到新挂载的 etc 目录。

  7. 使用编辑器对文件进行必要的更改。

  8. 转到根目录 (/)。

  9. 卸载 /a 目录。

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

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


    host-name console login:

示例 16–6 x86: Solaris 10:引导系统以实现恢复目的

以下示例说明在 Oracle Solaris 10 中从本地 CD-ROM 自动引导系统后如何修复 /etc/passwd 文件。基于 GRUB 的引导是在 Solaris 10 1/06 发行版中引入的。有关在基于 GRUB 的引导环境中引导系统以便进行恢复的信息,请参见 如何在故障安全模式下引导基于 x86 的系统


SunOS Secondary Boot version 3.00



                              Solaris Booting System



Running Configuration Assistant...





If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.

Press ESCape to interrupt autoboot in 5 seconds.





Initializing system
Please wait...


                         <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@1/sd@0,0:a
Boot args:


Select the type of installation you want to perform:

				1 Solaris Interactive
				2 Custom JumpStart
				3 Solaris Interactive Text (Desktop session)
				4 Solaris Interactive Text (Console session)
Enter the number of your choice followed by the <ENTER> key.
Alternatively, enter custom boot arguments directly.

If you wait for 30 seconds without typing anything,
an interactive installation will be started.

Select type of installation: b -s
      .
      .
      .
# mount /dev/dsk/c0t0d0s0 /a
      .
      .
      .
# cd /a/etc
# vi passwd
(Remove invalid entry)
# cd /
# umount /a
# init 6

Procedurex86: 如何使用内核调试器 (kmdb) 引导系统

此过程介绍在 Solaris 10 中装入内核调试器 (kmdb) 的基本步骤。缺省情况下将启用 savecore 功能。有关使用内核调试器的更多详细信息,请参见 《Solaris 模块调试器指南》

有关在当前 Solaris 发行版中使用内核调试器引导系统的逐步说明,请参见x86: 如何在 GRUB 引导环境中使用内核调试器 (kmdb) 引导系统

  1. 引导系统。

  2. Select (b)oot or (i)nterpreter 提示符下键入 b -k。按 Enter 键。

  3. 访问内核调试器。

    用于输入调试程序的方法因访问系统所使用的控制台类型而异:

    • 如果使用的是本地连接的键盘,请按 F1–A 组合键。

    • 如果使用的是串行控制台,请使用适合于该控制台类型的方法来发送中断信号。

    首次访问内核调试器时,将显示欢迎消息。


示例 16–7 x86: 使用内核调试器 (kmdb) 引导系统

Select (b)oot or (i)nterpreter 引导提示符下键入 b -k 可将系统引导至其缺省模式,还会装入 kmdb。本示例说明如何将具有 32 位计算能力的基于 x86 的系统引导至 32 位模式,同时装入 kmdb


Press any key to reboot.
.
.
.
<<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults
Running Configuration Assistant...
                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b -k
Loading kmdb...
SunOS Release 5.10 Version gate:2004-10-21 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
.
.
.


示例 16–8 x64: 使用内核调试器 (kmdb) 将具有 64 位计算能力的系统手动引导至 64 位模式

本示例说明如何使用 kmdb 将具有 64 位计算能力的基于 x86 的系统手动引导至 64 位模式。


Press any key to reboot
        .
        .
        .
            <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:
Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

            <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/amd64/unix -k
Loading kmdb...


示例 16–9 32 位 x64: 使用内核调试器 (kmdb) 将具有 64 位计算能力的系统手动引导至 32 位模式

本示例说明如何使用 kmdb 将具有 64 位计算能力的基于 x86 的系统手动引导至 32 位模式。


Press any key to reboot
        .
        .
        .
            <<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a
Boot args:
Type    b [file-name] [boot-flags] <ENTER>     to boot with options
or      i <ENTER>                              to enter boot interpreter
or      <ENTER>                                to boot with defaults

            <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter: b kernel/unix -k
Loading kmdb...

x86: 强制实施崩溃转储和系统重新引导

有时,为了排除故障,必须强制进行崩溃转储并重新引导系统。缺省情况下将启用 savecore 功能。

有关系统故障转储的更多信息,请参见《系统管理指南:高级管理》中的第 17  章 “管理系统故障转储信息(任务)”

Procedurex86: 如何强制实施崩溃转储和系统重新引导

如果您不能使用 reboot -dhalt -d 命令,则可以使用内核调试器 kmdb 来强制实施故障转储。必须已在引导时或使用 mdb -k 命令装入了内核调试器,以下过程才能正常进行。


注 –

必须处于文本模式中,才能进入内核调试器 (kmdb)。因此,首先要退出任何窗口系统。


  1. 如果将本地连接的键盘用作系统控制台,请在该键盘上按 F1-A 组合键。如果将系统配置为使用远程(串行)控制台,请使用适合于该控制台的机制发送中断字符。

    此时将显示 kmdb 提示符。

  2. 使用 systemdump 宏引发崩溃转储。


    [0]> $<systemdump
    

    此时将显示应急消息,保存崩溃转储,随后系统将重新引导。

  3. 通过在控制台登录提示符下登录来确认系统已重新引导。


示例 16–10 x86: 使用 halt -d 强制实施崩溃转储和系统重新引导

本示例说明如何使用 halt -dboot 命令强制实施基于 x86 的系统 neptune 的崩溃转储和重新引导。使用此方法强制实施系统崩溃转储。运行带有 -d 选项的 halt 命令后,需要手动重新引导系统。


# halt -d
Aug 11 12:51:27 neptune halt:
halted by <user> panic[cpu45]/thread=d3971a00: forced crash dump initiated at user request

d363ae58 genunix:kadmin+bd (5, 0, 0, d3fefac0)
d363af88 genunix:uadmin+88 (5, 0, 0, 0, 0, d363afb4)

syncing file systems... done
dumping to /dev/dsk/c0t0d0s1, offset 107806720, content: kernel
100% done: 40223 pages dumped, compression ratio 4.11, dump succeeded
Press any key to reboot.
Resetting...
.
.
.
SunOS Secondary Boot version 3.00
Autobooting from bootpath: /pci@0,0/pci1028,10a@3/sd@0,0:a 
Running Configuration Assistant... 
If the system hardware has changed, or to boot from a different
device, interrupt the autoboot process by pressing ESC.


Initializing system
Please wait...   

<<< Current Boot Parameters >>>
Boot path: /pci@0,0/pci1028,10a@3/sd@0,0:a
Boot args:

Type    b [file-name] [boot-flags] <ENTER>    to boot with options
or      i <ENTER>                             to enter boot interpreter
or      <ENTER>                               to boot with defaults

                  <<< timeout in 5 seconds >>>

Select (b)oot or (i)nterpreter:
Loading kmdb...
SunOS Release 5.10 Version s10_62 32-bit
Copyright 1983-2004 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
configuring IPv4 interfaces: iprb0.
add net default: gateway 172.20.26.248
Hostname: neptune
The system is coming up.  Please wait.
checking ufs filesystems
/dev/rdsk/c0t0d0s7: is logging.
NIS domain name is example.com
starting rpc services: rpcbind keyserv ypbind done.
Setting netmask of iprb0 to 255.255.255.0
Setting default IPv4 interface for multicast: add net 224.0/4: gateway venus
syslog service starting.
System dump time: Wed Aug 11 12:51:29 2004
Aug 11 13:13:26 venus savecore: saving system crash dump in /var/crash/venus/*.1
Constructing namelist /var/crash/venus/unix.1
Constructing corefile /var/crash/venus/vmcore.1
100% done: 42157 of 42157 pages saved
volume management starting.
The system is ready.
.
.
.

x64: 排除 64 位引导的故障

在某些情况下,尝试将具备 64 位计算能力的基于 x86 的系统引导至 64 位模式可能会失败。这种故障可能会产生如下错误:


Select (b)oot or (i)nterpreter: b kernel/amd64/unix
.
.
.
pci: cannot load driver
Cannot load drivers for /pci@0,0/pci1022,7450@a/pci17c2,10@4/sd@0,0:a
(Can't load the root filesystem)
Press any key to reboot.
.
.
.

如果出现这类故障,请在 Select (b)oot or (i)nterpreter 引导提示符下键入以下命令,将系统引导至 32 位模式:


Select (b)oot or (i)nterpreter: b kernel/unix

有关更多信息,请参见示例 16–3