章 36. 基本系統復原

當問題發生時,總是會有辦法解決。然而,這些方法需要您對系統有相當的了解。這個章節將描述如何開機進入救援模式、單機使用者模式以及緊急模式,在其中您可以使用您的知識來修復系統。

36.1. 救援模式

36.1.1. 一般問題

因為下列的原因,您也許需要開機進入這些救援模式的其中之一:
  • 無法正常地開機進入 Red Hat Enterprise Linux(runlevel 3 或 5)。
  • 您有硬體或軟體上的問題,而您想要從您系統的硬碟中取出一些重要的檔案。
  • 您忘記您的 root 密碼。

36.1.1.1. 無法啟動 Red Hat Enterprise Linux

這問題通常是在安裝了 Red Hat Enterprise Linux 之後,又安裝了另一種作業系統所致。有些作業系統會假定電腦上沒有其它作業系統,並覆寫原先包含 GRUB 開機載入程式的 MBR。如果開機載入程式被這種方式覆寫,那除非您進入救援模式、重新配置開機載入程式,否則 Red Hat Enterprise Linux 將無法啟動。
另一個可能性是安裝完後當您使用磁碟分割工具來重新調整一個分割區或從剩餘空間建立一個新的分割區,而且更改了分割區的順序,如果 / 分割區的號碼更改了,開機管理程式將無法找到並掛載該分割區。 如要修復這個問題,請開機進入救援模式,並修改 /boot/grub/grub.conf
有關於如何在救援環境下重新安裝 GRUB 開機載入程式的相關資訊,請參照 節 36.1.2.1, “重新安裝開機管理程式”

36.1.1.2. 硬體/軟體問題

這個類別包含了多種不同的情況。兩個範例包括硬碟錯誤,並在開機載入配置檔裡,指定了錯誤的 root 裝置或 kernel。如果其中一種情況發生,您就無法重新啟動 Red Hat Enterprise Linux。然而,如果您開機進入系統復原模式,也許就可以解決這些問題,或至少把重要的檔案備份出來。

36.1.1.3. Root 密碼

如果您忘記您的 root 密碼?如要重設它為另一個密碼,請開機進入救援模式或單機使用者模式,然後使用 passwd 指令來重設 root 密碼。

36.1.2. 開機進入救援模式

救援模式能讓使用者藉由光碟(或其它開機方法)啟動基本的 Red Hat Enterprise Linux 環境;而不是藉由系統硬碟來啟動。
如名稱所示,救援模式可以將系統從某些狀況中解救出來。在正常操作中,Red Hat Enterprise Linux 系統會使用硬碟裡的檔案來進行所有工作 — 執行程式、儲存檔案等等。
然而,在某些情況下,Red Hat Enterprise Linux 會無法完整存取系統的硬碟。透過使用救援模式,即使您無法由某個硬碟執行 Red Hat Enterprise Linux,您依然能夠存取儲存在該硬碟上的檔案。
若要啟動救援模式,您必須要能夠使用下列方式之一[14]來啟動系統:
  • 透過開機 CD-ROM 或 DVD 來啟動系統。
  • 從安裝啟動媒體(例如 USB 隨身)碟開機。
  • 透過 Red Hat Enterprise Linux 安裝 DVD 來啟動系統。
當您使用以上的其中一種方法開機後,請增加 rescue 當作一個核心參數,舉例來說,對於 x86 系統,請在安裝的開機提示符號輸入以下指令:
linux rescue
如果系統需要協力廠商的驅動程式,好啟動「驅動程式磁碟」(driver disc),請使用額外的選用參數 dd 來載入驅動程式。
linux rescue dd
欲知更多在開機時使用驅動程式磁碟的資訊,請參閱〈節 6.3.3, “使用開機選項來指定驅動程式更新磁碟”〉(x86)或〈節 13.3.3, “使用一項 Boot 選項來指定驅動程式更新磁碟”〉(Power System 伺服器)。
如果 RHEL 6.7 的一組驅動程式讓系統無法開機,請以 rdblacklist 選項將它加入黑名單中。例如,要不使用 foobar 驅動程式開機進入救援模式,請執行:
linux rescue rdblacklist=foobar
您會被提示回答一些基本問題,包括要使用哪些語言。它還會提示您選擇一個有效的救援映像檔位置。請由本機 CD-ROM硬碟NFS 映像檔FTP,或是 HTTP 來進行選擇。所選擇的位置必須包含一個有效的安裝目錄樹,並且安裝目錄樹的 Red Hat Enterprise Linux 版本必須和您所用來開機的 Red Hat Enterprise Linux 磁碟版本相同。若您使用了開機光碟或是其它媒介來啟動救援模式,安裝目錄樹必須來自於建立了媒介的相同目錄樹。欲取得更多有關於如何在硬碟、NFS 伺服器、FTP 伺服器,或 HTTP 伺服器上設定安裝目錄樹的相關資訊,請參閱本指南較前面的部份。
如果您選取一個不需要網路連線的救援映像檔,您仍會被訊問是否要建立一個網路連線。網路連線適用於需要備份檔案到另一部電腦會從一個共享的網路位置安裝某些 RPM 套件時。
顯示下列訊息:
救援模式現在將會嘗試尋找您的 Linux 並將它掛載在 /mnt/sysimage 下。接著,您便可依照需求針對於您的系統進行變更。若您希望進行此步驟,請選擇「繼續」。與其將您的檔案系統掛載為可讀寫,您亦可透過選取唯讀「Read-only」來選擇將您的檔案系統掛載為唯讀。若基於某些原因造成此步驟失敗,您可選擇「跳過」,這將會略過此步驟,並且您將會直接進入一個指令 shell。
如果您選取 繼續,它將會試著掛載您的檔案系統到 /mnt/sysimage/ 目錄下,如果無法掛載該分割區,系統將會提示您。如果您選取 唯讀,系統將會試著以僅能讀取的模式掛載檔案系統到 /mnt/sysimage/ 目錄下。如果您選取 略過,您的檔案系統將不會被掛載,如果您認為您的檔案系統已經毀損了,請選擇 略過
當您進入救援模式後,在虛擬主控台 1 與 2 會出現一個提示符號(使用 Ctrl-Alt-F1 按鍵組合來進入虛擬主控台 1,而使用 Ctrl-Alt-F2 來進入虛擬主控台 2):
sh-3.00b#
如果您選擇 繼續 來自動掛載您的分割區,而且成功掛載,您即會進入單機使用者模式。
即使您的檔案系統已經被掛載了,救援模式中的預設根目錄分割區只是暫時的根目錄分割區,而不是正常使用者模式(執行層級 3 或 5)檔案系統所使用的根目錄分割區。如果您選擇要掛載您的檔案系統,而且掛載順利,您可以更改救援模式環境的根目錄分割區為您檔案系統的根目錄分割區,請使用下列指令:
chroot /mnt/sysimage
這個方法適用於您需要執行例如 rpm 指令時(需要您的根目錄分割區掛載為 /)。如要離開 chroot 的環境,請輸入 exit,您則會回到提示符號。
如果您選擇 略過,您仍然可以在救援模式中試著手動掛載分割區或 LVM2 邏輯空間,您只要建立一個例如 /foo 的目錄,然後輸入以下指令:
mount -t ext4 /dev/mapper/VolGroup00-LogVol02 /foo
在上述指令當中,/foo 代表您已建立的目錄,並且 /dev/mapper/VolGroup00-LogVol02 代表您希望掛載的 LVM2 邏輯卷冊。若分割區類型為 ext2ext3 的話,請將 ext4 取代為 ext2ext3
如果您不知道實體分割區的名稱,請使用下列指令來將它們列出:
fdisk -l
若您不知道所有 LVM2 實體卷冊、卷冊群組或邏輯卷冊的名稱,請使用相應的 pvdisplayvgdisplaylvdisplay 指令。
在提示符號下,您可以執行許多有用的指令,如:
  • ssh,scpping:測試網路是否已啟動
  • dumprestore:適用於擁有磁帶機的使用者
  • partedfdisk:用來管理分割區
  • rpm:用來安裝或升級軟體
  • vi:用以編輯設定檔

36.1.2.1. 重新安裝開機管理程式

在許多情況下,GRUB 會被其它作業程式錯誤刪除、破壞或替代。
下列步驟為將 GRUB 重新安裝於主開機紀錄的程序:
  • 從安裝開機媒體啟動系統。
  • 在開機提示符號下輸入 linux rescue 以進入救援環境。
  • 請輸入 chroot /mnt/sysimage 以掛載 root 分割區。
  • 請輸入 /sbin/grub-install bootpart 以重新安裝 GRUB 開機載入程式,其中 bootpart 是啟動用的分割區(通常是 /dev/sda)。
  • /boot/grub/grub.conf 檔案,瀏覽其它 GRUB 控制其它作業系統所需的檔案。
  • 重新啟動系統。

36.1.3. 開機進入單機使用者模式

單機使用者模式的其中一個好處是您不需要一個開機磁碟片或光碟片,然而您卻無法掛載檔案系統為僅能讀取或完全能掛載。
如果您的系統可以開機,不過當完成開機時卻不允許您登入,請試著使用單機使用者模式。
在單機使用者模式,您的電腦為開機進入執行層級 1,您的本機檔案系統已經被掛載,不過您的網路尚未啟動,您可以使用一個系統維護的 shell。 單機使用者模式與救援模式不同,它會試著自動掛載檔案系統,如果您的檔案系統無法被成功掛載,請勿使用單機使用者模式。 而且如果系統上的執行層級 1 的設定已經毀損,您也無法使用單機使用者模式。
如果您是在 x86 系統使用 GRUB 當作開機管理程式,請使用下列的步驟來開機進入單機使用者模式:
  1. 在開機時的 GRUB 顯示畫面,按任一鍵進入 GRUB 互動選單。
  2. 請選擇您想要啟動的 Red Hat Enterprise Linux kernel 版本,然後按下 a 來附加那一行的資料。
  3. 在該行的最後輸入另一個字 single(按下 空白鍵 然後再輸入 single),再按下 Enter 以離開編輯模式。

36.1.4. 開機進入緊急模式

在緊急模式中,您是開機進入盡可能最小的環境中。根目錄檔案系統將會被掛載為僅能讀取,而且將不會做任何的設定。比起單機使用者模式,緊急模式最主要的優點是並不載入 init 檔案。因此當 init 檔案毀損或無法使用時,您仍然可以掛載檔案系統以回復重新安裝階段中遺失的資料。
若要進入緊急模式,請使用如 節 36.1.3, “開機進入單機使用者模式” 中所描述的方式,開機進入單機使用者模式。僅有一個不同處,那就是將關鍵字 single 取代為 emergency


[14] 詳情請參閱本指南較早之前的部份。