歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux故障排除技術詳解

Linux故障排除技術詳解

日期:2017/2/28 14:45:05   编辑: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系統引導知識的了解將對此類故障排除大有幫助。

Copyright © Linux教程網 All Rights Reserved