Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
章 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.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 邏輯卷冊。若分割區類型為 ext2
或 ext3
的話,請將 ext4
取代為 ext2
或 ext3
。
如果您不知道實體分割區的名稱,請使用下列指令來將它們列出:
fdisk -l
若您不知道所有 LVM2 實體卷冊、卷冊群組或邏輯卷冊的名稱,請使用相應的
pvdisplay
、vgdisplay
或 lvdisplay
指令。
在提示符號下,您可以執行許多有用的指令,如:
ssh
,scp
與ping
:測試網路是否已啟動dump
與restore
:適用於擁有磁帶機的使用者parted
與fdisk
:用來管理分割區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 當作開機管理程式,請使用下列的步驟來開機進入單機使用者模式:
- 在開機時的 GRUB 顯示畫面,按任一鍵進入 GRUB 互動選單。
- 請選擇您想要啟動的 Red Hat Enterprise Linux kernel 版本,然後按下
a
來附加那一行的資料。 - 在該行的最後輸入另一個字
single
(按下 空白鍵 然後再輸入single
),再按下 Enter 以離開編輯模式。