一些 Linux 系統(tǒng)故障修復(fù)和修復(fù)技巧

來(lái)源:小禾的空間八毯,作者:csghjnbj
鏈接:http://blog.chinaunix.net/uid-26567710-id-3050269.html

我發(fā)現(xiàn)Linux系統(tǒng)在啟動(dòng)過(guò)程中會(huì)出現(xiàn)一些故障,導(dǎo)致系統(tǒng)無(wú)法正常啟動(dòng)腻格,我在這里寫(xiě)了幾個(gè)應(yīng)用單用戶模式米母、GRUB命令操作楚堤、Linux救援模式的故障修復(fù)案例幫助大家了解此類問(wèn)題的解決茧妒。
一身笤、單用戶模式

Linux系統(tǒng)提供了單用戶模式(類似Windows安全模式),可以在最小環(huán)境中進(jìn)行系統(tǒng)維護(hù)斤彼。在單用戶模式(運(yùn)行級(jí)別1)中分瘦,Linux引導(dǎo)進(jìn)入根shell,網(wǎng)絡(luò)被禁用琉苇,只有少數(shù)進(jìn)程運(yùn)行嘲玫。單用戶模式可以用來(lái)修改文件系統(tǒng)損壞、還原配置文件并扇、移動(dòng)用戶數(shù)據(jù)等去团。
以下列舉了幾個(gè)單用戶模式修復(fù)系統(tǒng)故障的典型案例:
案例一:root密碼忘記

在單用戶模式中,Linux不需要root密碼(Red Hat系統(tǒng)不需要root密碼穷蛹,但SuSe則需要土陪,不同Linux系統(tǒng)稍有差別,本文以Fedora Core 6為例講解)肴熏,這使更改root密碼非常容易鬼雀。了解當(dāng)系統(tǒng)引導(dǎo)進(jìn)入多用戶模式失敗時(shí),如何進(jìn)入單用戶模式蛙吏,非常重要取刃。
1蹋肮、 在系統(tǒng)啟動(dòng)過(guò)程中,會(huì)出現(xiàn)開(kāi)始界面璧疗,按任意鍵坯辩,進(jìn)入GRUB菜單選項(xiàng)。(若希望以后無(wú)此提示崩侠,直接進(jìn)入GRUB菜單選項(xiàng)漆魔,刪除配置文件grub.conf中“hiddenmenu”項(xiàng)即可。)
2却音、 按“e”鍵編輯GRUB引導(dǎo)菜單選項(xiàng)改抡,按“e”鍵后的GRUB屏幕。通過(guò)箭頭鍵下移到kernel行系瓢,并按“e”鍵阿纤,
3、在尾行光標(biāo)處添加single夷陋,按回車(chē)鍵返回前一個(gè)屏幕欠拾,按“b”鍵進(jìn)行引導(dǎo),則系統(tǒng)自動(dòng)進(jìn)入單用戶模式骗绕,如果要改變r(jià)oot密碼藐窄,則執(zhí)行命令:sh-3.1# passwd root
更改成功后,執(zhí)行命令exit退出重啟即可酬土。
大家可以在單用戶模式中去糾正阻止系統(tǒng)正常啟動(dòng)的很多問(wèn)題荆忍,比如:
1、 禁用可能中止系統(tǒng)運(yùn)行的服務(wù)如禁用Samba服務(wù)撤缴,則執(zhí)行:sh-3.1# chkconfig smb off下次系統(tǒng)引導(dǎo)就不會(huì)啟動(dòng)Samba服務(wù)了刹枉。
2、 更改系統(tǒng)缺省運(yùn)行級(jí)如果X Window無(wú)法啟動(dòng)或者出現(xiàn)故障屈呕,可以編輯/etc/inittab文件微宝,采用文本方式登錄,更改initdefault引導(dǎo)級(jí)別為3:id:3:initdefault:
案例二:硬盤(pán)扇區(qū)錯(cuò)亂

在啟動(dòng)過(guò)程中最容易遇到的問(wèn)題就是硬盤(pán)可能有壞道或扇區(qū)錯(cuò)亂(數(shù)據(jù)損壞)的情況凉袱,這種情況多由于異常斷電、不正常關(guān)機(jī)導(dǎo)致侦铜。
此種問(wèn)題發(fā)生专甩,在系統(tǒng)啟動(dòng)的時(shí)候,屏幕會(huì)顯示:
Press root password or ctrl+D:
此時(shí)輸入root密碼系統(tǒng)自動(dòng)進(jìn)入單用戶模式钉稍,輸入:

fsck -y /dev/hda6

(fsck為文件系統(tǒng)檢測(cè)修復(fù)命令涤躲,“-y”設(shè)定檢測(cè)到錯(cuò)誤自動(dòng)修復(fù),/dev/hda6為發(fā)生錯(cuò)誤的硬盤(pán)分區(qū)贡未,請(qǐng)依據(jù)具體情況更改此參數(shù))
系統(tǒng)修復(fù)完成后种樱,用命令“reboot”重新啟動(dòng)即可蒙袍。
案例三、GRUB選項(xiàng)設(shè)置錯(cuò)誤
“Error 15”顯示系統(tǒng)無(wú)法找到grub.conf中指定的內(nèi)核嫩挤。
GRUB引導(dǎo)錯(cuò)誤信息害幅,我們觀察發(fā)現(xiàn)因?yàn)榇蜃皱e(cuò)誤,內(nèi)核文件的“vmlinuz”打成了“vmlinux”岂昭,所以系統(tǒng)無(wú)法找到內(nèi)核的可執(zhí)行文件以现。
我們可以按任意鍵回到GRUB編輯界面,修改此錯(cuò)誤约啊,回車(chē)保存后按“b”鍵即可正常引導(dǎo)邑遏,當(dāng)然不要忘記進(jìn)入系統(tǒng)后修改grub.conf文件中此處錯(cuò)誤。
這是很多初學(xué)Linux的用戶在修改GRUB設(shè)置時(shí)很容易犯的錯(cuò)誤恰矩,出現(xiàn)此黑屏提示時(shí)注意觀察報(bào)錯(cuò)信息记盒,即可針對(duì)性修復(fù)。
二外傅、GRUB引導(dǎo)故障排除

我發(fā)現(xiàn)有時(shí)Linux啟動(dòng)后會(huì)直接進(jìn)入GRUB命令行界面(只有“grub>”提示符)纪吮,此時(shí)很多用戶就選擇了重新安裝GRUB甚至重新安裝系統(tǒng)。
其實(shí)一般而言此故障的原因最常見(jiàn)的有兩個(gè):
一是GRUB配置文件中選項(xiàng)設(shè)置錯(cuò)誤;
二是GRUB配置文件丟失(還有少數(shù)原因栏豺,如內(nèi)核文件或鏡像文件損壞彬碱、丟失,/boot目錄誤刪除等)
如果是第一種情況奥洼,可以首先通過(guò)GRUB命令引導(dǎo)系統(tǒng)后修復(fù);若是第二種情況巷疼,則要使用Linux救援模式修復(fù)了(本文后續(xù)有描述)。
  
首先灵奖,我們需要了解GRUB啟動(dòng)系統(tǒng)的引導(dǎo)過(guò)程嚼沿,grub.conf文件中主要的配置選項(xiàng)如下:
(注意,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引導(dǎo)的系統(tǒng):
“root”段指定了/boot分區(qū)所在的位置:
“kernel”段指定了內(nèi)核文件所在位置,內(nèi)核加載時(shí)權(quán)限屬性為只讀(“ro”)以及指定根分區(qū)所在位置(root=LABEL=/);
“initrd”指定了鏡像文件所在位置擅编。

所以GRUB在引導(dǎo)時(shí)順序?yàn)槭紫燃虞d/boot分區(qū)攀细,然后依次載入內(nèi)核與鏡像文件。
案例

“title Fedora Core (2.6.18-1.2798.fc6)”段被誤刪除
此時(shí)爱态,系統(tǒng)啟動(dòng)后會(huì)自動(dòng)進(jìn)入“GRUB>”命令行谭贪,為排除故障我們可以依次做如下操作:  
1、查找/boot/grub/grub.conf文件所在分區(qū)GRUB> find /boot/grub/grub.conf(hd0锦担,0)  
2俭识、查看grub.conf文件錯(cuò)誤GRUB>cat (hd0,0)/boot/grub/grub.conf建議系統(tǒng)安裝設(shè)置好后洞渔,要將grub.conf文件備份套媚,如果有備份文件如grub.conf.bak缚态,則此時(shí)可以查看備份文件,與當(dāng)前文件比較堤瘤,發(fā)現(xiàn)錯(cuò)誤:GRUB>cat (hd0玫芦,0)/boot/grub/grub.conf.bak
  
3、確認(rèn)錯(cuò)誤后宙橱,先通過(guò)命令行方式完成GRUB引導(dǎo)姨俩,進(jìn)入系統(tǒng)后再行修復(fù)grub.conf文件錯(cuò)誤:
1)指定/boot分區(qū)root (hd0,0)
2)指定內(nèi)核加載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鍵命令補(bǔ)全功能
4师郑、從/boot分區(qū)啟動(dòng)boot (hd0环葵,0)
命令行模式可以在GRUB菜單模式中通過(guò)按“c”鍵調(diào)用,也可以用于測(cè)試新編譯的內(nèi)核(設(shè)置kernel宝冕、initrd引導(dǎo)新內(nèi)核及鏡像文件)张遭。增加對(duì)GRUB引導(dǎo)以及Linux系統(tǒng)引導(dǎo)知識(shí)的了解將對(duì)此類故障排除大有幫助。
三地梨、Linux救援模式應(yīng)用

當(dāng)系統(tǒng)連單用戶模式都無(wú)法進(jìn)入時(shí)或出現(xiàn)GRUB命令行也不能解決的引導(dǎo)問(wèn)題菊卷,我們就需要使用Linux救援模式來(lái)進(jìn)行故障排除了。
步驟如下:
1宝剖、將Linux安裝光盤(pán)(如果使用CD光盤(pán)洁闰,則放入第一張引導(dǎo)光盤(pán))放入光驅(qū),設(shè)置固件CMOS/BIOS為光盤(pán)引導(dǎo)万细,當(dāng)Linux安裝畫(huà)面出現(xiàn)后扑眉,在“boot:”提示符后輸入“l(fā)inux rescue”回車(chē)進(jìn)入救援模式。(想了解救援模式詳細(xì)信息赖钞,還可以按F5鍵查看)
  
2腰素、系統(tǒng)會(huì)檢測(cè)硬件,引導(dǎo)光盤(pán)上的Linux環(huán)境雪营,依次提示你選擇救援模式下使用的語(yǔ)言(建議選擇默認(rèn)的英文即可弓千,根據(jù)筆者測(cè)試,部分Linux系統(tǒng)選擇中文會(huì)出現(xiàn)亂碼);鍵盤(pán)設(shè)置用默認(rèn)的“us”就好;網(wǎng)絡(luò)設(shè)置可以根據(jù)需要献起,大部分故障修復(fù)不需要網(wǎng)絡(luò)連接洋访,可不進(jìn)行此項(xiàng)設(shè)置,選擇“No”谴餐。
  
3姻政、接下來(lái)系統(tǒng)將試圖查找根分區(qū),出現(xiàn)掛載提示总寒,設(shè)置默認(rèn)在救援模式扶歪,硬盤(pán)的根分區(qū)將掛載到光盤(pán)Linux環(huán)境的/mnt/sysimage目錄下理肺,默認(rèn)選項(xiàng)“continue”表示掛載權(quán)限為讀寫(xiě):“Read-only”為只讀摄闸,如果出現(xiàn)檢測(cè)失敗可以選擇“skip”跳過(guò)善镰。此處,因?yàn)橐獙?duì)系統(tǒng)進(jìn)行修復(fù)年枕,所以需要有讀寫(xiě)權(quán)限炫欺,一般選擇默認(rèn)選項(xiàng)“continue”。
  
進(jìn)入下一步后熏兄,系統(tǒng)提示執(zhí)行“chroot /mnt/sysimage”命令品洛,可以將根目錄掛載到我們硬盤(pán)系統(tǒng)的根目錄中去。
案例一:雙系統(tǒng)啟動(dòng)修復(fù)

當(dāng)我們安裝雙系統(tǒng)環(huán)境摩桶,先安裝Linux再安裝Windows;或者已經(jīng)安裝好雙系統(tǒng)環(huán)境的Windows損壞桥状,在重新安裝Windows后,保存 GRUB的MBR(Master Boot Record硝清,主引導(dǎo)記錄)會(huì)被Windows系統(tǒng)的自舉程序NTLDR所覆蓋辅斟,造成Linux系統(tǒng)無(wú)法引導(dǎo)。
1芦拿、如果要恢復(fù)雙系統(tǒng)引導(dǎo)士飒,首先用上述方法進(jìn)入救援模式,執(zhí)行chroot命令如下:sh-3.1# chroot /mnt/sysimage
  
2蔗崎、將根目錄切換到硬盤(pán)系統(tǒng)的根目錄中酵幕,然后執(zhí)行g(shù)rub-install命令重新安裝GRUB:sh-3.1# grub-install /dev/hda“/dev/hda”為硬盤(pán)名稱,如使用SCSI硬盤(pán)或Linux安裝在第二塊IDE硬盤(pán)缓苛,此項(xiàng)設(shè)置要做相應(yīng)調(diào)整芳撒。
  
3、然后依次執(zhí)行exit命令他嫡,退出chroot模式及救援模式(執(zhí)行兩次exit命令):sh-3.1# exit系統(tǒng)重啟后番官,將恢復(fù)GRUB引導(dǎo)的雙系統(tǒng)啟動(dòng)「质簦 
案例二:系統(tǒng)配置文件丟失修復(fù)

系統(tǒng)在引導(dǎo)期間徘熔,很重要的一個(gè)過(guò)程就是init進(jìn)程讀取其配置文件/etc/inittab,啟動(dòng)系統(tǒng)基本服務(wù)程序及默認(rèn)運(yùn)行級(jí)別的服務(wù)程序完成系統(tǒng)引導(dǎo)淆党,如果/etc/inittab誤刪除或修改錯(cuò)誤酷师,Linux將無(wú)法正常啟動(dòng)。此時(shí)染乌,只有通過(guò)救援模式才可以解決此類問(wèn)題山孔。
/etc/inittab文件丟失引導(dǎo)錯(cuò)誤示例
  
1、有備份文件的恢復(fù)辦法進(jìn)入救援模式荷憋,執(zhí)行chroot命令后台颠,如果有此文件的備份(強(qiáng)烈建議系統(tǒng)中的重要數(shù)據(jù)目錄,如/etc、/boot等要進(jìn)行備份)串前,直接將備份文件拷貝回去瘫里,退出重啟即可。
如果是配置文件修改錯(cuò)誤荡碾,如比較典型的/boot/grub/grub.conf及/etc/passwd的文件修改錯(cuò)誤谨读,也可以直接修正恢復(fù)。
假設(shè)有備份文件/etc/inittab.bak坛吁,則在救援模式下執(zhí)行:

sh-3.1# chroot /mnt/sysimage sh-3.1# cp /etc/inittab.bak /etc/inittab

2劳殖、沒(méi)有備份文件的恢復(fù)辦法如果一些配置文件丟失或軟件誤刪除,且無(wú)備份拨脉,可以通過(guò)重新安裝軟件包來(lái)恢復(fù)哆姻。
首先查找到/etc/inittab屬于哪一個(gè)RPM包(即便文件丟失,因?yàn)榇嬖赗PM數(shù)據(jù)庫(kù)玫膀,一樣可以查找到結(jié)果):

sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1

退出chroot模式:

sh-3.1# exit

掛載存放RPM包的安裝光盤(pán)(在救援模式下填具,光盤(pán)通常掛載在/mnt/source目錄下):

sh-3.1# mount /dev/hdc /mnt/source

Fedora系統(tǒng)的RPM包存放在光盤(pán)Fedora/RPMS目錄下,其他Linux存放位置大同小異匆骗,我在這里不一一列舉;
另外劳景,因?yàn)橐迯?fù)的硬盤(pán)系統(tǒng)的根目錄在/mnt/sysimage下,需要使用——root選項(xiàng)指定其位置碉就。
覆蓋安裝/etc/inittab文件所在的RPM包:

sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm

其中的rpm命令選項(xiàng)“——replacepkgs”表示覆蓋安裝盟广,執(zhí)行完成后,即已經(jīng)恢復(fù)了此文件瓮钥。
  
如果想只提取RPM包中的/etc/inittab文件進(jìn)行恢復(fù)筋量,可以在進(jìn)入救援模式后,執(zhí)行命令:

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/sysimage/etc

注意此命令執(zhí)行時(shí)不能將文件直接恢復(fù)至/etc目錄碉熄,只能提取到當(dāng)前目錄下桨武,且恢復(fù)的文件名稱所在路徑要寫(xiě)完整的絕對(duì)路徑。提取文件成功后锈津,將其復(fù)制到根分區(qū)所在的/mnt/sysimage目錄下相應(yīng)位置即可呀酸。
救援模式是維護(hù)Linux的有力武器,本文以上述兩個(gè)例子講解了它的應(yīng)用方法琼梆,希望能夠給讀者一點(diǎn)啟示性誉。解決Linux系統(tǒng)啟動(dòng)的故障,必須充分理解Linux的引導(dǎo)過(guò)程茎杂,才能夠?qū)收线M(jìn)行有效的判斷和處理错览。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市煌往,隨后出現(xiàn)的幾起案子倾哺,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羞海,死亡現(xiàn)場(chǎng)離奇詭異闲勺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扣猫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翘地,“玉大人申尤,你說(shuō)我怎么就攤上這事⊙酶” “怎么了昧穿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,755評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)橙喘。 經(jīng)常有香客問(wèn)我时鸵,道長(zhǎng),這世上最難降的妖魔是什么厅瞎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,528評(píng)論 1 296
  • 正文 為了忘掉前任饰潜,我火速辦了婚禮,結(jié)果婚禮上和簸,老公的妹妹穿的比我還像新娘彭雾。我一直安慰自己,他們只是感情好锁保,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,526評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布薯酝。 她就那樣靜靜地躺著,像睡著了一般爽柒。 火紅的嫁衣襯著肌膚如雪吴菠。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,166評(píng)論 1 308
  • 那天浩村,我揣著相機(jī)與錄音做葵,去河邊找鬼。 笑死心墅,一個(gè)胖子當(dāng)著我的面吹牛蜂挪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嗓化,決...
    沈念sama閱讀 40,768評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼棠涮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了刺覆?” 一聲冷哼從身側(cè)響起严肪,我...
    開(kāi)封第一講書(shū)人閱讀 39,664評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后驳糯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體篇梭,經(jīng)...
    沈念sama閱讀 46,205評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,290評(píng)論 3 340
  • 正文 我和宋清朗相戀三年酝枢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恬偷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,435評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帘睦,死狀恐怖袍患,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竣付,我是刑警寧澤诡延,帶...
    沈念sama閱讀 36,126評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站古胆,受9級(jí)特大地震影響肆良,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逸绎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,804評(píng)論 3 333
  • 文/蒙蒙 一惹恃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棺牧,春花似錦座舍、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,276評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疲牵,卻和暖如春承二,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纲爸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工亥鸠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人识啦。 一個(gè)月前我還...
    沈念sama閱讀 48,818評(píng)論 3 376
  • 正文 我出身青樓负蚊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親颓哮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子家妆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,442評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容