常見系統啟動類故障
?? 在linux系統的啟動過程中,涉及到MBR主引導記錄、GRUB啟動菜單、系統初始化配置文件inittab等各方面,其中任何一個環節出現故障都有可能會導致系統啟動失敗。因此一定要注意做好相關文件的備份工作。
1、MBR扇區故障?
? MBR引導記錄位于物理磁盤的第1個扇區(512B),該扇區又稱為主引導扇區(MBR扇區),除了包含系統引導程序的部分數據外,還包含了整個硬盤的分區表記錄。在MBR扇區中1~446B是系統的引導程序(也稱GRUB),447~510B是系統的分區表記錄,剩下的2B“55 AA”是分區結束的標志。?
當主引導扇區發生故障時,將可能無法進入系統,通過該硬盤引導主機時很有可能進入黑屏狀態。?
備份MBR扇區數據?
由于MBR扇區中包含了整個硬盤的分區列表記錄,因此該扇區的備份文件必須存放到其他的存儲設備中,否則恢復時無法讀取到備份的文件。?
如下:使用“dd”命令可以備份sda硬盤上的MBR扇區數據到sdb硬盤上。
?
模擬MBR扇區損壞?
這里仍然使用“dd”命令,人為的將MBR扇區的記錄覆蓋掉,以便模擬出MBR扇區被破壞的故障情景(注意:要先做好備份,而且將備份文件放到其他硬盤上)?
如下:使用“dd”命令覆蓋MBR扇區的數據。
?
重新啟動系統發現無法進入系統。
?
從備份文件中恢復MBR扇區的數據?
由于MBR扇區被破壞以后,已經無法再從該硬盤啟動系統,所以需要使用其他硬盤的操作系統進行引導,或者直接使用系統安裝光盤進行引導。不管使用哪種方式,目的都是相同的——獲取一個可執行命令的shell環境,以便從備份文件中恢復扇區中的數據。?
如下:使用系統安裝光盤進行引導,先將光盤插入光驅,在BIOS中選擇從光盤引導,當出現安裝向導時在“boot:”后面輸入“linux rescue”回車將以“急救模式”引導光盤中的linux系統。
在進入“急救模式”之前需要確認接收的語言以及鍵盤格式,默認即可。
?
在提示是否配置網卡時一般選擇“NO”。
?
然后系統會自動查找硬盤中的linux分區并嘗試將其掛載到“/mnt/sysimage”目錄下,選擇“Continue”確認繼續。
?
接下來會出項是否初始化磁盤的警告提示,選擇“NO”。避免對硬盤數據造成不必要的損壞。
?
最后選擇“OK”確認后將進入帶“sh-3.2#”提示符的Bash Shell環境。
?
在帶“sh-3.2#”提示符的Bash Shell環境中執行“mount”命令將保存有備份文件的硬盤掛在到相應的目錄下使用“dd”命令恢復即可。
?
恢復完成后使用“exit”命令退出Shell環境,系統將自動重新啟動。
2、GRUB引導故障?
? GRUB是大多數linux系統默認使用的引導程序,可以通過啟動菜單的方式選擇進入不同的操作系統。?
如下:查看GRUB的配置文件的詳細信息。
?
其中,各主要配置項的含義說明如下。?
title:指定在啟動菜單中顯示的操作系統名稱。?
root:指定包含內核等引導文件的/boot分區所在的位置。?
kernel:指定內核文件所在的位置,內核加載時權限為只讀“ro”,并通過“root=”指定跟分區的的設備文件。?
initd:指定啟動內核所使用的臨時系統鏡像文件所在的位置。?
當配置文件“/boot/grub/grub.conf”文件丟失、或關鍵配置出錯、或者MBR記錄中的引導程序遭到破壞時,linux主機啟動后只能出現“grub>”的提示符,無法完成進一步的系統啟動過程。?
如下:我們可以將GRUB的配置文件“/boot/grub/grub.conf”刪除模擬GRUB損壞。
?
修復GRUB引導故障?
方法一:在啟動提示符后進行編輯,通過輸入相應的引導命令(可以參考相同版本的linux的GRUB配置文件),然后執行“boot”命令即可正常啟動系統了。不過在進入系統后需要修復“/boot/grub/grub.conf”配置文件,也可以新建。不然下次啟動還是會出現這樣的錯誤。
?
方法二:通過系統安裝光盤進入到“急救模式”,在“急救模式”可以修復或新建“/boot/grub/grub.cong”配置文件。?
如果是MBR扇區中的引導程序出現損壞,可能在重建grub.conf配置文件后仍然無法啟動,這時需要進入到“急救模式”執行“、grub-install /dev/sda”命令重新安裝grub引導程序。
上述方法同樣適用于在linux系統中安裝windows系統實現雙系統,導致windows系統覆蓋了MBR扇區中的引導程序,而只能啟動windows系統,不能啟動linux系統的問題。
3、init配置文件丟失?
“/etc/inittab”文件是系統初始化進程init的配置文件,當該文件被誤刪除或者存在錯誤配置時,可能導致無法啟動系統。丟失“/etc/inittab”文件后,啟動時將會出現“INIT:NO inittab file found”的錯誤提示信息。如下:
?
這類故障同樣可以使用系統安裝光盤進入“急救模式”進行修復。如果是文件配置錯誤,則進行糾正或則從備份中恢復即可。如果inittab文件已經丟失,則沒有備份,我們還可以通過重新安裝“initscripts”軟件包生成inisttab文件。(此軟件包在系統安裝光盤中的Server目錄下)
?
在“急救模式”的shell環境中通常不會有“/dev/cdrom”的鏈接文件,因此可直接通過設備文件“/dev/hdc”使用光盤。安裝完畢后退出光盤環境重啟系統即可。
本文轉自yun5277 51CTO博客,原文鏈接:http://blog.51cto.com/dengqi/1191306,如需轉載請自行聯系原作者