首頁 > IT問答庫 >Linux雲計算 > Linux培訓學習之故障修複

Linux培訓學習之故障修複

  Linux系統在啟動過程中會出現一些故障,導緻系統無法正常啟動,我在這裡寫了幾個應用單用戶模式、GRUB命令操作、Linux救援模式的故障修複案例幫助大家了解此類問題的解決。
  (一)單用戶模式
  Linux系統提供了單用戶模式(類似Windows安全模式),可以在最小環境中進行系統維護。在單用戶模式(運行級别1)中,Linux引導進入根shell,網絡被禁用,隻有少數進程運行。單用戶模式可以用來修改文件系統損壞、還原配置文件、移動用戶數據等。
  以下列舉了幾個單用戶模式修複系統故障的典型案例:
  案例一:root密碼忘記
  在單用戶模式中,Linux不需要root密碼(Red Hat系統不需要root密碼,但SuSe則需要,不同Linux系統稍有差别,本文以Fedora Core 6為例講解),這使更改root密碼非常容易。了解當系統引導進入多用戶模式失敗時,如何進入單用戶模式,非常重要。
  1、 在系統啟動過程中,會出現開始界面,按任意鍵,進入GRUB菜單選項。
  若希望以後無此提示,直接進入GRUB菜單選項,删除配置文件grub.conf中“hiddenmenu”項即可。
  2、 按“e”鍵編輯GRUB引導菜單選項,按“e”鍵後的GRUB屏幕。通過箭頭鍵下移到kernel行,并按“e”鍵,
  3、在尾行光标處添加single,按回車鍵返回前一個屏幕,按“b”鍵進行引導,則系統自動進入單用戶模式,如果要改變root密碼,則執行命令:sh-3.1# passwd root
  更改成功後,執行命令exit退出重啟即可。
  大家可以在單用戶模式中去糾正阻止系統正常啟動的很多問題,比如:
  1、 禁用可能中止系統運行的服務如禁用Samba服務,則執行:sh-3.1# chkconfig smb off下次系統引導就不會啟動Samba服務了。
  2、 更改系統缺省運行級如果X Window無法啟動或者出現故障,可以編輯/etc/inittab文件,采用文本方式登錄,更改initdefault引導級别為3:id:3:initdefault:
  案例二:硬盤扇區錯亂
  在啟動過程中最容易遇到的問題就是硬盤可能有壞道或扇區錯亂(數據損壞)的情況,這種情況多由于異常斷電、不正常關機導緻。此種問題發生,在系統啟動的時候,屏幕會顯示:
  Press root password or ctrl+D:此時輸入root密碼系統自動進入單用戶模式,輸入“fsck -y /dev/hda6”(fsck為文件系統檢測修複命令,“-y”設定檢測到錯誤自動修複,/dev/hda6為發生錯誤的硬盤分區,請依據具體情況更改此參數),系統修複完成後,用命令“reboot”重新啟動即可。
  案例三、GRUB選項設置錯誤
  “Error 15”顯示系統無法找到grub.conf中指定的内核。 GRUB引導錯誤信息,我們觀察發現因為打字錯誤,内核文件的“vmlinuz”打成了“vmlinux”,所以系統無法找到内核的可執行文件。我們可以按任意鍵回到GRUB編輯界面,修改此錯誤,回車保存後按“b”鍵即可正常引導,當然不要忘記進入系統後修改grub.conf文件中此處錯誤。這是很多初學Linux的用戶在修改GRUB設置時很容易犯的錯誤,出現此黑屏提示時注意觀察報錯信息,即可針對性修複。
  (二)GRUB引導故障排除
  我發現有時Linux啟動後會直接進入GRUB命令行界面(隻有“grub>”提示符),此時很多用戶就選擇了重新安裝GRUB甚至重新安裝系統。其實一般而言此故障的原因最常見的有兩個:一是GRUB配置文件中選項設置錯誤;二是GRUB配置文件丢失(還有少數原因,如内核文件或鏡像文件損壞、丢失,/boot目錄誤删除等),如果是第一種情況,可以首先通過GRUB命令引導系統後修複;若是第二種情況,則要使用Linux救援模式修複了(本文後續有描述)。
  首先,我們需要了解GRUB啟動系統的引導過程,grub.conf文件中主要的配置選項如下(注意,GRUB配置文件為/boot/grub/grub.conf, /etc/grub.conf隻是此文件的軟鍊接):
  title Fedora Core (2.6.18-1.2798.fc6)
  root (hd0,0)
  kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img
  其中“title”段指定了GRUB引導的系統:“root”段指定了/boot分區所在的位置:“kernel”段指定了内核文件所在位置,内核加載時權限屬性為隻讀(“ro”)以及指定根分區所在位置(root=LABEL=/);initrd指定了鏡像文件所在位置。所以GRUB在引導時順序為首先加載/boot分區,然後依次載入内核與鏡像文件。
  案例:“title Fedora Core (2.6.18-1.2798.fc6)”段被誤删除
  此時,系統啟動後會自動進入“GRUB>”命令行,為排除故障我們可以依次做如下操作:
  1、查找/boot/grub/grub.conf文件所在分區GRUB> find /boot/grub/grub.conf(hd0,0)
  2、查看grub.conf文件錯誤GRUB>cat (hd0,0)/boot/grub/grub.conf建議系統安裝設置好後,要将grub.conf文件備份,如果有備份文件如grub.conf.bak,則此時可以查看備份文件,與當前文件比較,發現錯誤:GRUB>cat (hd0,0)/boot/grub/grub.conf.bak
  3、确認錯誤後,先通過命令行方式完成GRUB引導,進入系統後再行修複grub.conf文件錯誤:1)指定/boot分區root (hd0,0)
  2)指定内核加載kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet 3)指定鏡像文件所在位置initrd /boot/initrd-2.6.18-1.2798.fc6.img
  提示:GRUB支持tab鍵命令補全功能
  4、從/boot分區啟動boot (hd0,0)
  命令行模式可以在GRUB菜單模式中通過按“c”鍵調用,也可以用于測試新編譯的内核(設置kernel、initrd引導新内核及鏡像文件)。增加對GRUB引導以及Linux系統引導知識的了解将對此類故障排除大有幫助。
  (三)Linux救援模式應用
  當系統連單用戶模式都無法進入時或出現GRUB命令行也不能解決的引導問題,我們就需要使用Linux救援模式來進行故障排除了。步驟如下:
  1、将Linux安裝光盤(如果使用CD光盤,則放入第一張引導光盤)放入光驅,設置固件CMOS/BIOS為光盤引導,當Linux安裝畫面出現後,在“boot:”提示符後輸入“linux rescue”回車進入救援模式。(想了解救援模式詳細信息,還可以按F5鍵查看)
  2、系統會檢測硬件,引導光盤上的Linux環境,依次提示你選擇救援模式下使用的語言(建議選擇默認的英文即可,根據筆者測試,部分Linux系統選擇中文會出現亂碼);鍵盤設置用默認的“us”就好;網絡設置可以根據需要,大部分故障修複不需要網絡連接,可不進行此項設置,選擇“No”。
  3、接下來系統将試圖查找根分區,出現挂載提示,設置默認在救援模式,硬盤的根分區将挂載到光盤Linux環境的/mnt/sysimage目錄下,默認選項“continue”表示挂載權限為讀寫:“Read-only”為隻讀,如果出現檢測失敗可以選擇“skip”跳過。此處,因為要對系統進行修複,所以需要有讀寫權限,一般選擇默認選項“continue”。
  進入下一步後,系統提示執行“chroot /mnt/sysimage”命令,可以将根目錄挂載到我們硬盤系統的根目錄中去。
  案例一:雙系統啟動修複
  當我們安裝雙系統環境,先安裝Linux再安裝Windows;或者已經安裝好雙系統環境的Windows損壞,在重新安裝Windows後,保存 GRUB的MBR(Master Boot Record,主引導記錄)會被Windows系統的自舉程序NTLDR所覆蓋,造成Linux系統無法引導。
  1、如果要恢複雙系統引導,首先用上述方法進入救援模式,執行chroot命令如下:
  sh-3.1# chroot /mnt/sysimage
  2、将根目錄切換到硬盤系統的根目錄中,然後執行grub-install命令重新安裝GRUB:
  sh-3.1# grub-install /dev/hda
  “/dev/hda”為硬盤名稱,如使用SCSI硬盤或Linux安裝在第二塊IDE硬盤,此項設置要做相應調整。
  3、然後依次執行exit命令,退出chroot模式及救援模式(執行兩次exit命令):
  sh-3.1# exit
  系統重啟後,将恢複GRUB引導的雙系統啟動。
可分享到:
上一篇 : 第一頁
下一篇 : 生活中我們是怎樣用到雲計算的
你可能感興趣的内容|INTERESTING NEWS

限時優惠
本周申請限100個名額