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

文档信息

关于本书

1.  引导和关闭基于 x86 的系统(概述)

2.  将基于 x86 的系统引导至指定状态(任务)

3.  关闭系统(任务)

4.  重新引导基于 x86 的系统(任务)

5.  从网络引导基于 x86 的系统(任务)

6.  在基于 x86 的系统上修改引导参数(任务)

7.  在 x86 平台上从 ZFS 引导环境创建、管理和引导(任务)

8.  使基于 x86 的系统保持可引导(任务)

9.  基于 x86 的系统引导故障排除(任务)

基于 x86 的系统引导故障排除(任务列表)

关闭和引导基于 x86 的系统以便进行恢复

为进行恢复而停止和引导系统

如何为进行恢复而停止系统

如何在单用户模式下进行引导以解决 root Shell 或口令错误问题

如何从介质进行引导以解决 root 口令未知问题

如何从介质进行引导以解决阻止系统引导的 menu.lst 文件问题

强制实施系统故障转储和重新引导

如何强制实施故障转储和系统重新引导

如何在启用内核调试器 (kmdb) 的情况下引导系统

对 x86 平台上的快速重新引导问题进行故障排除

调试可能发生的早期紧急情况

对可能阻止在 x86 平台上快速重新引导的情况进行故障排除

索引

关闭和引导基于 x86 的系统以便进行恢复

在以下情况下,必须先关闭系统以进行分析,或对引导和其他系统问题进行故障排除。

下面的过程介绍了如何安全地关闭然后再引导基于 x86 的系统以便进行恢复。

为进行恢复而停止和引导系统

为实现恢复,您可能需要引导系统。

以下是一些较为常见的错误和恢复方案:

如何为进行恢复而停止系统

  1. 停止系统。
    • 首先,成为 root 角色,然后键入 init 0(如果键盘和鼠标起作用)。

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

    • 要重新引导系统,请键入 init 6

  2. 如果系统对来自鼠标的任何输入都没有响应,请执行以下操作之一:
    • 按复位键以重新引导系统。
    • 使用电源开关重新引导系统。

如何在单用户模式下进行引导以解决 root Shell 或口令错误问题

  1. 停止系统。
    # init 0
  2. 重新引导系统。
    # reboot
  3. 在 GRUB 菜单显示后,执行以下操作:
    1. 选择相应的引导项,然后键入 e 以编辑该项。
    2. 使用方向键选择 kernel$ 行。

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

    3. $kernel 行的末尾键入 -s,然后按回车键保存所做的更改并返回至上一屏幕。
    4. 键入 b 在单用户模式下引导系统。
  4. 更正 /etc/passwd 文件中的 shell 项。
    # vi /etc/password
  5. Ctrl-D 组合键重新引导系统。

如何从介质进行引导以解决 root 口令未知问题

如果需要通过引导系统来解决 root 口令未知或类似问题,请使用以下过程。请注意,此过程要求您在导入根池后挂载引导环境。如果您需要恢复根池或根池快照,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"如何替换 ZFS 根池中的磁盘"

  1. 从 Oracle Solaris 介质引导。
    • Live Media-从安装介质进行引导并对恢复过程使用 GNOME 终端。
    • 文本安装-在 GRUB 菜单中,选择 Text Installer and command line(文本安装程序和命令行)引导项,然后从文本安装屏幕中选择 3 Shell 选项。
    • 自动化安装-从网络上的安装服务器进行引导需要 PXE 引导。选择 GRUB 菜单上的 Text Installer and command line(文本安装程序和命令行)项。然后,从文本安装屏幕中选择 3 Shell 选项。

      例如:

      1  Install Oracle Solaris
              2  Install Additional Drivers
              3  Shell
              4  Terminal type (currently xterm)
              5  Reboot
      
      Please enter a number [1]: 3
      To return to the main menu, exit the shell
  2. 导入根池。
    zpool import -f rpool
  3. 为引导环境创建挂载点。
    # mkdir /a
  4. /a 上挂载引导环境
    # beadm mount solaris-instance|bename /a

    例如:

    # beadm mount solaris-2 /a
  5. 如果有口令或阴影项阻碍控制台登录,请更正此问题。
    1. 设置 TERM 类型。
      # TERM=vt100
      # export TERM
    2. 编辑 shadow 文件。
      # cd /a/etc
      # vi shadow
      # cd /
  6. 更新引导归档文件。
    # bootadm update-archive /R /a
  7. 取消挂载引导环境。
    # beadm umount be-name
  8. 停止系统。
    # halt
  9. 在单用户模式下重新引导系统(如 如何在单用户模式下进行引导以解决 root Shell 或口令错误问题中所述),在提示输入 root 口令时,按回车键。
  10. 重置 root 口令。
    root@system:~# passwd -r files root
    New Password: xxxxxx
    Re-enter new Password: xxxxxx
    passwd: password successfully changed for root
  11. Ctrl-D 组合键重新引导系统。

如何从介质进行引导以解决阻止系统引导的 menu.lst 文件问题

如果需要通过引导系统来解决与缺省的 menu.lst 文件有关的问题,请使用以下过程。请注意,此过程需要挂载引导环境。如果您需要恢复根池或根池快照,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"如何替换 ZFS 根池中的磁盘"

  1. 从 Oracle Solaris 介质引导。
    • Live Media-从安装介质进行引导并对恢复过程使用 GNOME 终端。
    • 文本安装-在 GRUB 菜单中,选择 Text Installer and command line(文本安装程序和命令行)引导项,然后从文本安装屏幕中选择 3 Shell 选项。
    • 自动化安装-从网络上的安装服务器进行引导需要 PXE 引导。选择 GRUB 菜单上的 Text Installer and command line(文本安装程序和命令行)项。然后,从文本安装屏幕中选择 3 Shell 选项。

      例如:

      1  Install Oracle Solaris
              2  Install Additional Drivers
              3  Shell
              4  Terminal type (currently xterm)
              5  Reboot
      
      Please enter a number [1]: 3
      To return to the main menu, exit the shell
  2. 导入根池。
    zpool import -f rpool
  3. 检查 menu.lst 文件中的项并根据需要进行更正。
    # cd /rpool/boot/grub
    # vi menu.lst
  4. 更新引导归档文件。
    # bootadm update-archive -R /a
  5. 退出 shell 并重新引导系统。
    exit
            1  Install Oracle Solaris
            2  Install Additional Drivers
            3  Shell
            4  Terminal type (currently sun-color)
            5  Reboot
    
    Please enter a number [1]: 5

强制实施系统故障转储和重新引导

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

有关系统故障转储的更多信息,请参见《Oracle Solaris 管理:常见任务》中的"管理系统故障转储信息"

如何强制实施故障转储和系统重新引导

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


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


  1. 访问内核调试器。

    用于访问调试器的方法因访问系统所使用的控制台类型而异。

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

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

    此时将显示 kmdb 提示符。

  2. 要强制实施故障转储,请使用 systemdump 宏。
    [0]> $<systemdump

    此时将显示故障消息,保存故障转储,随后系统将重新引导。

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

示例 9-1 x86: 使用 halt -d 强制实施系统故障转储和重新引导

本示例说明如何使用 halt -dboot 命令强制实施基于 x86 的系统的故障转储和重新引导。

# halt -d
4ay 30 15:35:15 wacked.<domain>.COM halt: halted by user

panic[cpu0]/thread=ffffffff83246ec0: forced crash dump initiated at user request

fffffe80006bbd60 genunix:kadmin+4c1 ()
fffffe80006bbec0 genunix:uadmin+93 ()
fffffe80006bbf10 unix:sys_syscall32+101 ()

syncing file systems... done
dumping to /dev/dsk/c1t0d0s1, offset 107675648, content: kernel
NOTICE: adpu320: bus reset
100% done: 38438 pages dumped, compression ratio 4.29, dump succeeded

Welcome to kmdb
Loaded modules: [ audiosup crypto ufs unix krtld s1394 sppp nca uhci lofs 
genunix ip usba specfs nfs md random sctp ]
[0]> 
kmdb: Do you really want to reboot? (y/n) y

如何在启用内核调试器 (kmdb) 的情况下引导系统

此过程说明装入内核调试器 (kmdb) 的基本原理。缺省情况下将启用 savecore 功能。

  1. 引导系统。

    引导系统时将显示 GRUB 菜单。

  2. 显示 GRUB 菜单时,请键入 e 以访问 GRUB 编辑菜单。
  3. 使用方向键选择 kernel$ 行。

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

  4. 键入 e 以编辑该行。

    此时将显示引导项菜单。在此菜单中,您可以通过向 kernel$ 行的结尾处添加其他引导参数来修改引导行为。

  5. 在 GRUB 编辑菜单中,在 kernel$ 行的末尾键入 -kmdb-k
    grub edit> kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS -s -k
  6. 按 Enter 键返回至某个屏幕,然后键入 b 以在启用了内核调试器情况下引导系统。

    键入 -kmdb-k 将装入调试器,然后直接引导操作系统。

  7. 访问内核调试器。

    用于访问调试器的方法因访问系统所使用的控制台类型而异。

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

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

    要在系统完全引导之前访问内核调试器,请使用 -kd 选项。

    使用 -kd 选项将装入调试器,然后在引导操作系统之前允许您与调试器进行交互。

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

另请参见

有关使用 kmdb 以及由 kmdb 提供的执行控制工具与系统进行交互的更多详细信息,请参见 kmdb(1) 手册页。