Linux系統的救援模式應用詳解

     當系統連單用戶模式都無法進入時或出現GRUB命令行也不能解決的引導問題,我們就需要使用Linux救援模式來進行故障排除了。步驟如下:

  1、將Linux安裝光盤(如果使用CD光盤,則放入第一張引導光盤)放入光驅,設置固件CMOS/BIOS爲光盤引導,當Linux安裝畫面出現後,在“boot:”提示符後輸入“linux rescue”回車進入救援模式。(想了解救援模式詳細信息,還可以按F5鍵查看)
  2、系統會檢測硬件,引導光盤上的Linux環境,依次提示你選擇救援模式下使用的語言(建議選擇默認的英文即可,根據筆者測試,部分Linux系統選擇中文會出現亂碼);鍵盤設置用默認的“us”就好;網絡設置可以根據需要,大部分故障修復不需要網絡連接,可不進行此項設置,選擇“No”。
  3、接下來系統將試圖查找根分區。
  默認在救援模式,硬盤的根分區將掛載到光盤Linux環境的/mnt/sysp_w_picpath目錄下,默認選項“continue”表示掛載權限爲讀寫;“Read-only”爲只讀,如果出現檢測失敗可以選擇“skip”跳過。此處,因爲要對系統進行修復,所以需要有讀寫權限,一般選擇默認選項“continue”。進入下一步後,系統提示執行“chroot /mnt/sysp_w_picpath”命令,可以將根目錄掛載到我們硬盤系統的根目錄中去。
  案例一:雙系統啓動修復
  當我們安裝雙系統環境,先安裝Linux再安裝Windows;或者已經安裝好雙系統環境的Windows損壞,在重新安裝Windows後,保存 GRUB的MBR(Master Boot Record,主引導記錄)會被Windows系統的自舉程序NTLDR所覆蓋,造成Linux系統無法引導。
  1、如果要恢復雙系統引導,首先用上述方法進入救援模式,執行chroot命令如下: 
  sh-3.1# chroot /mnt/sysp_w_picpath
  2、將根目錄切換到硬盤系統的根目錄中,然後執行grub-install命令重新安裝GRUB:
  sh-3.1# grub-install /dev/hda
  “/dev/hda”爲硬盤名稱,如使用SCSI硬盤或Linux安裝在第二塊IDE硬盤,此項設置要做相應調整。
  3、然後依次執行exit命令,退出chroot模式及救援模式(執行兩次exit命令):
  sh-3.1# exit
  sh-3.1# exit
  系統重啓後,將恢復GRUB引導的雙系統啓動。
  案例二:系統配置文件丟失修復
  系統在引導期間,很重要的一個過程就是init進程讀取其配置文件/etc/inittab,啓動系統基本服務程序及默認運行級別的服務程序完成系統引導,如果/etc/inittab誤刪除或修改錯誤,Linux將無法正常啓動。此時,只有通過救援模式纔可以解決此類問題。
  1、有備份文件的恢復辦法
  進入救援模式,執行chroot命令後,如果有此文件的備份(強烈建議系統中的重要數據目錄,如/etc、/boot等要進行備份),直接將備份文件拷貝回去,退出重啓即可。如果是配置文件修改錯誤,如比較典型的/boot/grub/grub.conf及/etc/passwd的文件修改錯誤,也可以直接修正恢復。假設有備份文件/etc/inittab.bak,則在救援模式下執行:
  sh-3.1# chroot /mnt/sysp_w_picpath
  sh-3.1# cp /etc/inittab.bak /etc/inittab
  2、沒有備份文件的恢復辦法
  如果一些配置文件丟失或軟件誤刪除,且無備份,可以通過重新安裝軟件包來恢復,首先查找到/etc/inittab屬於哪一個RPM包(即便文件丟失,因爲存在RPM數據庫,一樣可以查找到結果):
  sh-3.1# chroot /mnt/sysp_w_picpath
  sh-3.1# rpm -qf /etc/inittab
  initscripts-8.45.3-1
  退出chroot模式:
  sh-3.1# exit
  掛載存放RPM包的安裝光盤(在救援模式下,光盤通常掛載在/mnt/source目錄下):
  sh-3.1# mount /dev/hdc /mnt/source
  Fedora系統的RPM包存放在光盤Fedora/RPMS目錄下,其他Linux存放位置大同小異,這裏不一一列舉;另外,因爲要修復的硬盤系統的根目錄在/mnt/sysp_w_picpath下,需要使用--root選項指定其位置。覆蓋安裝/etc/inittab文件所在的RPM包:
  sh-3.1# rpm -ivh --replacepkgs --root /mnt/sysp_w_picpath /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm
  其中的rpm命令選項“--replacepkgs”表示覆蓋安裝,執行完成後,即已經恢復了此文件。
  如果想只提取RPM包中的/etc/inittab文件進行恢復,可以在進入救援模式後,執行命令:
  sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm
  | cpio -idv ./etc/inittab
  sh-3.1# cp etc/inittab /mnt/sysp_w_picpath/etc
  注意此命令執行時不能將文件直接恢復至/etc目錄,只能提取到當前目錄下,且恢復的文件名稱所在路徑要寫完整的絕對路徑。提取文件成功後,將其複製到根分區所在的/mnt/sysp_w_picpath目錄下相應位置即可。
救援模式是維護Linux的有力武器,本文以上述兩個例子講解了它的應用方法,希望能夠給讀者一點啓示。解決Linux系統啓動的故障,必須充分理解Linux的引導過程,才能夠對故障進行有效的判斷和處理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章