教你不再為Linux系統(tǒng)無法正常啟動而煩惱
Linux在啟動過程中會出現(xiàn)一些故障,導致系統(tǒng)無法正常啟動,本文列舉了幾個應用單用戶模式、GRUB命令操作、Linux救援模式的典型故障修復案例幫助讀者了解此類問題的解決。
一、單用戶模式
Linux提供了單用戶模式(類似Windows安全模式),可以在最小環(huán)境中進行系統(tǒng)維護。在單用戶模式(運行級別1)中,Linux引導進入根shell,網(wǎng)絡被禁用,只有少數(shù)進程運行。單用戶模式可以用來修改文件系統(tǒng)損壞、還原配置文件、移動用戶數(shù)據(jù)等。
以下列舉了幾個單用戶模式修復系統(tǒng)故障的典型案例:
案例一:硬盤扇區(qū)錯亂
在啟動過程中最容易遇到的問題就是硬盤可能有壞道或扇區(qū)錯亂(數(shù)據(jù)損壞)的情況,這種情況多由于異常斷電、不正常關機導致。
此種問題發(fā)生,在系統(tǒng)啟動的時候,屏幕會顯示:
Press root password or ctrl+D:
此時輸入root密碼系統(tǒng)自動進入單用戶模式,輸入“fsck -y /dev/hda6”(fsck為文件系統(tǒng)檢測修復命令,“-y”設定檢測到錯誤自動修復,/dev/hda6為發(fā)生錯誤的硬盤分區(qū),請依據(jù)具體情況更改 此參數(shù)),系統(tǒng)修復完成后,用命令“reboot”重新啟動即可。
案例二:root密碼忘記
在單用戶模式 中,Linux不需要root密碼(Red Hat系統(tǒng)不需要root密碼,但SuSe則需要,不同Linux系統(tǒng)稍有差別,本文以Fedora Core 6為例講解),這使更改root密碼非常容易。了解當系統(tǒng)引導進入多用戶模式失敗時,如何進入單用戶模式,非常重要。
1、 在系統(tǒng)啟動過程中,會出現(xiàn)圖1所示畫面,按任意鍵,進入GRUB菜單選項。
圖1 進入GRBU菜單選項
若希望以后無此提示,直接進入GRUB菜單選項,刪除配置文件grub.conf中“hiddenmenu”項即可。
2、 按“e”鍵編輯GRUB引導菜單選項,圖2顯示為按“e”鍵后的GRUB屏幕。
圖2 GRUB引導菜單選項
通過箭頭鍵下移到kernel行,并按“e”鍵,得到圖3中顯示的編輯界面:
圖3 kernel行編輯界面
在尾行光標處添加single,按回車鍵返回前一個屏幕,按“b”鍵進行引導,則系統(tǒng)自動進入單用戶模式,如果要改變root密碼,則執(zhí)行命令:
sh-3.1# passwd root
更改成功后,執(zhí)行命令exit退出重啟即可。
我們可以在單用戶模式中去糾正阻止系統(tǒng)正常啟動的很多問題,比如:1、 禁用可能中止系統(tǒng)運行的服務如禁用Samba服務,則執(zhí)行:sh-3.1# chkconfig smb off下次系統(tǒng)引導就不會啟動Samba服務了。
2、 更改系統(tǒng)缺省運行級如果X Window無法啟動或者出現(xiàn)故障,可以編輯/etc/inittab文件,采用文本方式登錄,更改initdefault引導級別為3:id:3:initdefault:
案例三、GRUB選項設置錯誤
下圖是一個系統(tǒng)管理員不希望看到的控制臺信息,“Error 15”顯示系統(tǒng)無法找到grub.conf中指定的內核。
圖4 GRUB引導錯誤信息
我們觀察發(fā)現(xiàn)因為打字錯誤,內核文件的“vmlinuz”打成了“vmlinux”,所以系統(tǒng)無法找到內核的可執(zhí)行文件。我們可以按任意鍵回到GRUB 編輯界面,修改此錯誤,回車保存后按“b”鍵即可正常引導,當然不要忘記進入系統(tǒng)后修改grub.conf文件中此處錯誤。
這是很多初學Linux的用戶在修改GRUB設置時很容易犯的錯誤,出現(xiàn)此黑屏提示時注意觀察報錯信息,即可針對性修復。
二、GRUB引導故障排除
有時Linux啟動后會直接進入GRUB命令行界面(只有“grub>”提示符),此時很多用戶就選擇了重新安裝GRUB甚至重新安裝系統(tǒng)。其實 一般而言此故障的原因最常見的有兩個:一是GRUB配置文件中選項設置錯誤;二是GRUB配置文件丟失(還有少數(shù)原因,如內核文件或鏡像文件損壞、丟 失,/boot目錄誤刪除等),如果是第一種情況,可以首先通過GRUB命令引導系統(tǒng)后修復;若是第二種情況,則要使用Linux救援模式修復了(本文后 續(xù)有描述)。
首先,我們需要了解GRUB啟動系統(tǒng)的引導過程,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引導的系統(tǒng):“root”段指定了/boot分區(qū)所在的位置:“kernel”段指定了內核文件所在位置,內核加載 時權限屬性為只讀(“ro”)以及指定根分區(qū)所在位置(root=LABEL=/);initrd指定了鏡像文件所在位置。所以GRUB在引導時順序為首 先加載/boot分區(qū),然后依次載入內核與鏡像文件。
案例:“title Fedora Core (2.6.18-1.2798.fc6)”段被誤刪除
此時,系統(tǒng)啟動后會自動進入“GRUB>”命令行,為排除故障我們可以依次做如下操作:
1、查找/boot/grub/grub.conf文件所在分區(qū)GRUB> find /boot/grub/grub.conf(hd0,0)
2、查看grub.conf文件錯誤GRUB>cat (hd0,0)/boot/grub/grub.conf建議系統(tǒng)安裝設置好后,要將grub.conf文件備份,如果有備份文件如 grub.conf.bak,則此時可以查看備份文件,與當前文件比較,發(fā)現(xiàn)錯誤:GRUB>cat (hd0,0)/boot/grub/grub.conf.bak
3、確認錯誤后,先通過命令行方式完成GRUB引導,進入系統(tǒng)后再行修復grub.conf文件錯誤:1)指定/boot分區(qū)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分區(qū)啟動boot (hd0,0)
命令行模式可以在GRUB菜單模式中通過按“c”鍵調用,也可以用于測試新編譯的內核(設置kernel、initrd引導新內核及鏡像文件)。增加對GRUB引導以及Linux系統(tǒng)引導知識的了解將對此類故障排除大有幫助。
三、Linux救援模式應用
當系統(tǒng)連單用戶模式都無法進入時或出現(xiàn)GRUB命令行也不能解決的引導問題,我們就需要使用Linux救援模式來進行故障排除了。步驟如下:
1、將Linux安裝光盤(如果使用CD光盤,則放入第一張引導光盤)放入光驅,設置固件CMOS/BIOS為光盤引導,當Linux安裝畫面出現(xiàn)后, 在“boot:”提示符后輸入“linux rescue”回車進入救援模式。(想了解救援模式詳細信息,還可以按F5鍵查看)
圖5 進入救援模式
2、系統(tǒng)會檢測硬件,引導光盤上的Linux環(huán)境,依次提示你選擇救援模式下使用的語言(建議選擇默認的英文即可,根據(jù)筆者測試,部分Linux系統(tǒng)選 擇中文會出現(xiàn)亂碼);鍵盤設置用默認的“us”就好;網(wǎng)絡設置可以根據(jù)需要,大部分故障修復不需要網(wǎng)絡連接,可不進行此項設置,選擇“No”。
3、接下來系統(tǒng)將試圖查找根分區(qū),出現(xiàn)以下提示:圖6 掛載設置
默認在救援模式,硬盤的根分區(qū)將掛載到光盤Linux環(huán)境的/mnt/sysimage目錄下,默認選項“continue”表示掛載權限為讀 寫:“Read-only”為只讀,如果出現(xiàn)檢測失敗可以選擇“skip”跳過。此處,因為要對系統(tǒng)進行修復,所以需要有讀寫權限,一般選擇默認選項 “continue”。
進入下一步后,系統(tǒng)提示執(zhí)行“chroot /mnt/sysimage”命令,可以將根目錄掛載到我們硬盤系統(tǒng)的根目錄中去。
案例一:雙系統(tǒng)啟動修復
當我們安裝雙系統(tǒng)環(huán)境,先安裝Linux再安裝Windows;或者已經(jīng)安裝好雙系統(tǒng)環(huán)境的Windows損壞,在重新安裝Windows后,保存 GRUB的MBR(Master Boot Record,主引導記錄)會被Windows系統(tǒng)的自舉程序NTLDR所覆蓋,造成Linux系統(tǒng)無法引導。
1、如果要恢復雙系統(tǒng)引導,首先用上述方法進入救援模式,執(zhí)行chroot命令如下:sh-3.1# chroot /mnt/sysimage
2、將根目錄切換到硬盤系統(tǒng)的根目錄中,然后執(zhí)行grub-install命令重新安裝GRUB:sh-3.1# grub-install /dev/hda“/dev/hda”為硬盤名稱,如使用SCSI硬盤或Linux安裝在第二塊IDE硬盤,此項設置要做相應調整。
3、然后依次執(zhí)行exit命令,退出chroot模式及救援模式(執(zhí)行兩次exit命令):sh-3.1# exit系統(tǒng)重啟后,將恢復GRUB引導的雙系統(tǒng)啟動。
案例二:系統(tǒng)配置文件丟失修復
系統(tǒng)在引導期間,很重要的一個過程就是init進程讀取其配置文件/etc/inittab,啟動系統(tǒng)基本服務程序及默認運行級別的服務程序完成系統(tǒng)引 導,如果/etc/inittab誤刪除或修改錯誤,Linux將無法正常啟動,如圖7所示。此時,只有通過救援模式才可以解決此類問題。
圖7 /etc/inittab文件丟失引導錯誤示例
1、有備份文件的恢復辦法進入救援模式,執(zhí)行chroot命令后,如果有此文件的備份(強烈建議系統(tǒng)中的重要數(shù)據(jù)目錄,如/etc、/boot等要進行 備份),直接將備份文件拷貝回去,退出重啟即可。如果是配置文件修改錯誤,如比較典型的/boot/grub/grub.conf及/etc /passwd的文件修改錯誤,也可以直接修正恢復。假設有備份文件/etc/inittab.bak,則在救援模式下執(zhí)行:sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab
2、 沒有備份文件的恢復辦法如果一些配置文件丟失或軟件誤刪除,且無備份,可以通過重新安裝軟件包來恢復
關鍵詞:Linux系統(tǒng)
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0