轉換 Oracle® Solaris 10 至 Oracle Solaris 11.2

結束列印檢視

更新日期: 2014 年 12 月
 
 

啟動系統以進行復原

如果 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 密碼的情況。


    備註 -  在 SPARC 系統上,boot net:dhcp 指令已取代 Oracle Solaris 10 發行版本中使用的 boot net 指令。
  • 在單一使用者模式啟動系統以解決輕微的問題,例如更正 /etc/passwd 檔案中的 root shell 項目或變更 NIS 伺服器。

  • 解決啟動配置問題一般涉及匯入根集區、掛載 BE 以及修正問題,例如重新安裝損毀的 x86 開機管理程式。

如何從備份 BE 啟動以進行復原

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。

  • 從備份 BE 啟動的方法如下:
    • SPARC:啟動系統以選取替代或備份 BE。
      1. 使用 boot –L 指令啟動。
        ok boot -L
      2. 選取替代或備份 BE。
        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。

      3. 啟動備份 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

        如果系統未啟動,請審閱如何啟動系統以進行復原中的其他啟動復原步驟。

    • x86:啟動系統以從 GRUB 功能表中識別替代或備份 BE。
      1. GRUB 功能表顯示後,請識別備份 BE。
      2. 選取備份 BE,然後按 Return 鍵以啟動該項目。

        如果系統未從備份 BE 啟動,請審閱如何啟動系統以進行復原中的其他啟動復原步驟。

如何啟動系統以進行復原

  1. 選取適當的啟動方法:
    • 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
    #
  2. 從下列的啟動復原問題中選取:
    • 解決無效的 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

      備註 -  除非確定要將開機管理程式覆寫為媒體上的版本,否則請勿使用 –f 選項。請參閱Booting and Shutting Down Oracle Solaris 11.2 Systems 中的Installing GRUB 2 by Using the bootadm install-bootloader Command。

      接著,依如下所示重新安裝開機管理程式:

      # 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
  3. 以單一使用者模式啟動並設定 root 密碼。

    此步驟假設您已在前一個步驟中移除不明的 root 密碼。

    • 在 x86 系統上,請編輯從 GRUB 功能表中選取的啟動項目,然後在 $kernel 行中加上 –s 選項。
    • 在 SPARC 系統上,以單一使用者模式啟動系統,以 root 身分登入,然後設定 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.