如果您需要引导系统,以解决根口令丢失或类似问题,请使用以下过程。
使用以下过程解决引导装载程序损坏问题或 root 口令问题。如果需要替换根池中的磁盘,请参见如何替换 ZFS 根池中的磁盘(SPARC 或 x86/VTOC)。如果需要执行完整系统(裸机)恢复,请参见在 Oracle Solaris 11.2 中使用统一归档文件进行系统恢复和克隆 。
x86:Live Media-从安装介质进行引导并在恢复过程中使用 GNOME 终端。
SPARC:文本安装-从安装介质或者从网络进行引导,然后从文本安装屏幕中选择 3 Shell 选项。
x86:文本安装-在 GRUB 菜单中,选择 Text Installer and command line(文本安装程序和命令行)引导项,然后从文本安装屏幕中选择 3 Shell 选项。
SPARC:自动化安装-使用以下命令从允许退出到 shell 的安装菜单直接引导。
ok boot net:dhcp
x86:自动化安装-从网络上的安装服务器进行引导需要 PXE 引导。选择 GRUB 菜单上的 Text Installer and command line(文本安装程序和命令行)项。然后,从文本安装屏幕中选择 3 Shell 选项。
例如,引导系统后,选择 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 #
要解决 root shell 错误问题,请将系统引导到单用户模式并更正 /etc/passwd 文件中的 shell 项。
在 x86 系统上,编辑选定的引导项,然后添加 –s 选项。
例如,在 SPARC 系统上,关闭系统并引导至单用户模式。作为 root 用户登录后,编辑 /etc/passwd 文件,然后修复 root shell 项。
# init 0 ok boot -s Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: tardis.central 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): xxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Aug 3 15:46:21 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.2 July 2013 su: No shell /usr/bin/mybash. Trying fallback shell /sbin/sh. root@tardis.central:~# TERM =vt100; export TERM root@tardis.central:~# vi /etc/passwd root@tardis.central:~# <Press control-d> logout svc.startd: Returning to milestone all.
解决引导装载程序损坏问题。
首先,您必须使用步骤 1 中列出的引导方法之一从介质或网络引导系统。然后,执行诸如导入根池和修复 GRUB 条目等操作。
x86# zpool import -f rpool
重新安装引导装载程序。
x86# bootadm install-bootloader -f -P rpool
其中 –f 选项将强制安装引导装载程序并绕过所有版本检查,以便不对系统上的引导装载程序版本进行降级。–P 选项用于指定根池。
您可以使用 bootadm list-menu 命令列出并修改 GRUB2 条目。有关更多信息,请参见 bootadm(1M)。
退出并重新引导系统。
x86# 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
确认系统引导成功。
解决 root 口令未知导致无法登录系统的问题。
首先,您必须使用步骤 1 中列出的引导方法之一从介质或网络引导系统。然后,导入根池 (rpool) 并挂载 BE 以删除 root 口令项。在 SPARC 平台和 x86 平台上,该过程是相同的。
# zpool import -f rpool # beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 46.95M static 2012-07-20 10:25 solaris-2 R - 3.81G static 2012-07-19 13:44 # mkdir /a # beadm mount solaris-2 /a # TERM=vt100 # export TERM # cd /a/etc # vi shadow <Carefully remove the unknown password> # cd / # beadm umount solaris-2 # halt
转至下一步设置 root 口令。
此步骤假设您在上一步中删除了未知的 root 口令。
在基于 x86 系统上,编辑选定的引导项,然后添加 –s 选项。
在基于 SPARC 系统上,将系统引导至单用户模式,以 root 身份登录,然后设置 root 口令。例如:
ok boot -s Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved Booting to milestone "milestone/single-user:default". Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): <Press return> single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Jul 20 14:09:59 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.2 July 2013 root@tardis.central:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root root@tardis.central:~# <Press control-d> logout svc.startd: Returning to milestone all.