如果 Oracle Solaris 11 系統變成無法啟動,您極有可能需要執行復原啟動。您可以從安裝媒體啟動,或者也可以啟動備份 BE。
如果您需要執行完整系統 (裸機) 復原,請參閱Using Unified Archives for System Recovery and Cloning in Oracle Solaris 11.2 中的How to Create a Recovery Archive。
下列錯誤與復原情況與舊版類似:
您可以使用 boot –a 指令,略過 /etc/system 檔案中的問題。出現提示符號時,請使用類似以下的語法:
Name of system file [/etc/system]: /dev/null
請視需要在其他提示符號處按 Return 鍵。
在進行大部分 pkg update 作業期間自動建立備份 BE。此功能可讓您在進行影像更新程序時若發生錯誤,能夠啟動回到先前的 BE。進行系統配置變更之前,請考慮建立備份 BE。
# beadm create solaris-backup # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris R - 4.01G static 2013-02-08 16:53 solaris-backup N / 47.95M static 2013-02-11 10:48
請參閱如何從備份 BE 啟動以進行復原,瞭解從備份 BE 啟動的步驟。
可從安裝媒體啟動或透過網路從安裝伺服器啟動,以便解決導致系統無法啟動的問題,或解決遺失 root 密碼的情況。
在單一使用者模式啟動系統以解決輕微的問題,例如更正 /etc/passwd 檔案中的 root shell 項目或變更 NIS 伺服器。
解決啟動配置問題一般涉及匯入根集區、掛載 BE 以及修正問題,例如重新安裝損毀的 x86 開機管理程式。
SPARC 和 x86 平台已不再支援啟動故障安全防護歸檔。請儘可能使用最新的備份 BE 進行復原。BE 是 Oracle Solaris 影像加上所有其他安裝到該影像之應用程式軟體套裝軟體的可啟動實例。由於備份 BE 會保留原始 BE,因此多個 BE 可降低更新軟體時的風險。
您可以根據使用中或非使用中的啟動環境建立新的 BE。或者,您可以根據原始 BE 的複製 (Clone) 建立新的 BE。複製 (Clone) 會複製 (Copy) 原始 BE 的根資料集和主根資料集底下的所有階層項目。請參閱Creating and Administering Oracle Solaris 11.2 Boot Environments 。
如果系統不能從使用中的 BE 啟動,請選取要用以啟動的備份 BE。
ok boot -L
Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a File and args: -L 1 Oracle Solaris 11.2 SPARC 2 solaris-backup Select environment to boot: [ 1 - 2 ]: 2
在先前的輸出中,使用中的 BE 是 Oracle Solaris 11.2 SPARC,很可能與實際的 BE 名稱不同,但它代表目前的 BE。
選取要用以啟動的 BE 之後,請記住螢幕上的啟動路徑,並於提示符號處輸入該資訊。
To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/solaris-backup Program terminated {0} ok boot -Z rpool/ROOT/solaris-backup
如果系統未啟動,請審閱如何啟動系統以進行復原中的其他啟動復原步驟。
如果系統未從備份 BE 啟動,請審閱如何啟動系統以進行復原中的其他啟動復原步驟。
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 系統上,請編輯從 GRUB 功能表中選取的啟動項目,然後在 $kernel 行的結尾處加上 –s Kernel 引數。
在 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: systema.domain 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 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@systema.domain:~# TERM =vt100; export TERM root@systema.domain:~# vi /etc/passwd root@systema.domian:~# <Press control-d> logout svc.startd: Returning to milestone all.
解決損毀的開機管理程式問題。
首先,使用步驟 1 中所列的其中一種啟動方法,從媒體或網路啟動。接著,匯入根集區。
# zpool import -f rpool
接著,依如下所示重新安裝開機管理程式:
# bootadm install-bootloader -f -P rpool
其中 –f 會強制安裝開機管理程式,並且略過所有與不降級系統上之開機管理程式版本有關的檢查。–P 選項則指定根集區。
結束並重新啟動系統。
# 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 - - 11.45M static 2011-10-22 00:30 solaris-2 R - 12.69G static 2011-10-21 21:04 # 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 密碼。
ok boot -s Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a File and args: -s SunOS Release 5.11 Version 11.2 64-bit Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: systema.domain 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): <Press return> single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode . . . root@sysadma.domain:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root root@systema.central:~# <Press control-d> logout svc.startd: Returning to milestone all.