跳过导航链接 | |
退出打印视图 | |
在 x86 平台上引导和关闭 Oracle Solaris Oracle Solaris 11 Information Library (简体中文) |
在以下情况下,必须先关闭系统以进行分析,或对引导和其他系统问题进行故障排除。
诊断系统引导时出现的错误消息。
停止系统以尝试恢复。
引导系统以便进行恢复。
强制实施系统故障转储和重新引导。
使用 kmdb 命令通过内核调试器引导系统。
下面的过程介绍了如何安全地关闭然后再引导基于 x86 的系统以便进行恢复。
为实现恢复,您可能需要引导系统。
以下是一些较为常见的错误和恢复方案:
在单用户模式下引导系统可解决一些小问题,例如更正 /etc/passwd 文件中的 root shell 项或更改 NIS 服务器。
出现阻止系统引导的问题或丢失 root 口令时,可以从安装介质或网络上的安装服务器来引导进行恢复。此方法要求您在导入根池后挂载引导环境。
通过导入根池来解决引导配置问题。如果 menu.lst 文件存在问题,不必挂载引导环境,只需导入根池,根池会自动挂载包含引导相关组件的 rpool 文件系统。
首先,成为 root 角色,然后键入 init 0(如果键盘和鼠标起作用)。
如果显示 Press any key to reboot 提示符,请按任意键以重新引导系统。
要重新引导系统,请键入 init 6。
# init 0
# reboot
如果不能使用方向键,请使用插入记号 (^) 键向上滚动,使用字母 v 键向下滚动。
# vi /etc/password
如果需要通过引导系统来解决 root 口令未知或类似问题,请使用以下过程。请注意,此过程要求您在导入根池后挂载引导环境。如果您需要恢复根池或根池快照,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"如何替换 ZFS 根池中的磁盘"。
例如:
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
zpool import -f rpool
# mkdir /a
# beadm mount solaris-instance|bename /a
例如:
# beadm mount solaris-2 /a
# TERM=vt100 # export TERM
# cd /a/etc # vi shadow # cd /
# bootadm update-archive /R /a
# beadm umount be-name
# halt
root@system:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root
如果需要通过引导系统来解决与缺省的 menu.lst 文件有关的问题,请使用以下过程。请注意,此过程不需要挂载引导环境。如果您需要恢复根池或根池快照,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"如何替换 ZFS 根池中的磁盘"。
例如:
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
zpool import -f rpool
# cd /rpool/boot/grub # vi menu.lst
# bootadm update-archive -R /a
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 -d 或 halt -d 命令,则可以使用内核调试器 kmdb 来强制实施故障转储。必须已在引导时或使用 mdb -k 命令装入了内核调试器,以下过程才能正常进行。
注 - 必须处于文本模式下,才能访问内核调试器 (kmdb)。因此,首先要退出任何窗口系统。
用于访问调试器的方法因访问系统所使用的控制台类型而异。
如果使用本地连接的键盘,请按 F1–A 组合键。
如果使用串行控制台,请使用适合于该类型的串行控制台的方法来发送中断信号。
此时将显示 kmdb 提示符。
[0]> $<systemdump
此时将显示故障消息,保存故障转储,随后系统将重新引导。
示例 9-1 x86: 使用 halt -d 强制实施系统故障转储和重新引导
本示例说明如何使用 halt -d 和 boot 命令强制实施基于 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) 的基本原理。缺省情况下将启用 savecore 功能。
引导系统时将显示 GRUB 菜单。
如果不能使用方向键,请使用插入记号 (^) 键向上滚动,使用字母 v 键向下滚动。
此时将显示引导项菜单。在此菜单中,您可以通过向 kernel$ 行的结尾处添加其他引导参数来修改引导行为。
grub edit> kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS -s -k
键入 -kmdb 或 -k 将装入调试器,然后直接引导操作系统。
用于访问调试器的方法因访问系统所使用的控制台类型而异。
如果使用本地连接的键盘,请按 F1–A 组合键。
如果使用串行控制台,请使用适合于该串行控制台类型的方法来发送中断信号。
要在系统完全引导之前访问内核调试器,请使用 -kd 选项。
使用 -kd 选项将装入调试器,然后在引导操作系统之前允许您与调试器进行交互。
首次访问内核调试器时,将显示欢迎消息。
另请参见
有关使用 kmdb 以及由 kmdb 提供的执行控制工具与系统进行交互的更多详细信息,请参见 kmdb(1) 手册页。