centos系統啓動故障的分類與排除

                                              centos系統啓動故障的分類與排除

實驗環境:VMware workstation10

系統版本: centos 6.4

其他:linux的centos 6.4安裝鏡像

  系統的grub對啓動來說非常重要,他在MBR中也佔有舉足輕重的地位,那麼如果我們硬盤中的文件一不小心勿操作被刪除或修改了,那我們不是啓動不了系統了 ? grub菜單在啓動過程中起了很重要的做用,那我們就先打開grub所在的文件路徑,看一下他的內容: 

174020154.jpg

 

174240401.jpg

我們會發現在stage1中,他的大小隻有512,而stage2卻大得多,這說明階段1是可以寫在MBR中的,二階段卻無法寫入,這也決定了階段1中的內容是和引導和分區表相關文件,而階段就只能寫在磁盤上了,同時你也會發現有很多的階段1.5,仔細觀察會發現他們的前綴都是文件系統的格式,所有也可以得出他屬於識別文件系統的一箇中間階段

175720682.jpg

 

那麼下面我們模擬第一階段的文件失效,來進行故障的的排除;有階段1可以知道,他的主要作用應該是加載和引導,既bootloader,我們利用 dd  if=/dev/zero  of=/dev/sda bs=446 count=1 來清除一階段的數據:

183223459.jpg

然後執行重啓命令:183535381.jpg

 

會發現已經啓動不了:

183743521.jpg

 

183927180.jpg

 

當發現在系統啓動不了時,CMOS會自定嘗試其他的啓動選項,比如光驅(如果光盤有,那出故障時我們肯定是我們的首選)這時我們在等待時間內按任意鍵就會出現以下界面:

185849976.jpg

 

在該界面我們可以大致瞭解該光盤的功能參數,比如,重裝,內存測試等等,而我們要使用的就是其中的rescue installed system 來急救我們以安裝的系統,

190806652.jpg

可以直接回車選擇,也可以按esc進入命令模式輸入:linux rescue後回車

190822728.jpg

接下來就是一些圖形化的選項選擇了,這是的選則就可以視個人喜好而定了,比如鍵盤

192010260.jpg

語言

192031678.jpg

 

而到這步光盤鏡像位置時我們肯定是要選擇本地了

192104188.jpg

 

接下問是否啓用網絡功能,而這是我們完全沒有這個必要,就選則no

 

192128724.jpg

 

然後會出現一個關於急救模式的說明文檔,如圖

 

192150773.jpg

 

到這時其實我們只需要選擇Continue就夠了,然後看到如下圖的界面他只是告訴我們,我們的系統已經被掛載到/mnt/sysp_w_picpath目錄下了,我們只需點ok就行

192808991.jpg

 

 

接下來的只是一個確認信息,我們確認就行

192923267.jpg

 接下來的信息分別是開啓一個shell,運行診斷工具,還有重啓,當然我們要選擇第一項

193356182.jpg

接下來,我們按照以前的說明文檔,切換root到/mnt/sysmage/中去

193739888.jpg

 

 然後在此環境中用grub-install命令來重建/dev/sda/中的bootloader,如圖:

194247628.jpg

 

 

然後,我們輸入兩次exit命令來離開該頁面,如圖,

194451308.jpg

 

然後我們選擇重新啓動系統:

194548907.jpg

 

之後重啓我們會發現階段1失效已經同過該方法解決了

194848272.jpg

 

二階段grub失效的模擬 

首先我們進入階段二所在的相關路徑,然後用rm -f stage2直接把他刪除,然後重啓我們的系統,如圖:

200748458.jpg

此時會發現無法啓動,比且屏幕上會顯示Error 15 的提示:

201034758.jpg

這時候就需要用上我們的livelinuxCD了,這種不需安裝可獨立運行的系統,類似於我們在windows中常用的win pe,功能很實用,當我們將livelinuxCD放入虛擬機相關位置後,如圖:200051765.jpg

 

然後開機按esc鍵進入快速啓動項(不進bios的,僅限於本次開機的)的選擇界面,選擇CD-ROM啓動,如圖

200141896.jpg


在啓動後,出現的等待界面中(10秒鐘內)我們按下任意鍵進入光盤的啓動選擇項中,不做選擇默認會從第一項啓動(verify and boot)如圖,選擇第二項boot

 

200232307.jpg

啓動後我們會看到如下界面,會發現我們是以普通賬號的身份進入的,

 

200323674.jpg我們可以用ctrl+alt+f2進行虛擬控制檯的切換(不需要密碼)

200415164.jpg

 

我們可以用fdisk -l 來查看我們磁盤的掛載情況


200615194.jpg

 

發現能查看,這時候我們的系統全在光盤上,所以我們要想訪問我們的硬盤,那就必須掛載到光盤的目錄中去,那我們可以先用df -h 來查看當前的系統目錄大小和掛載情況,如圖,:

200748356.jpg


然後爲了訪問其中的文件,我們把他掛載到一個目錄上去,比如/boot(小編試用過其他的目錄。但是失敗了好幾次,最後在boot上成功的,所以還是建議在boot上)

201156157.jpg

 

 

 

201931687.jpg

grub-install --root-directory=/  /dev/sda 這條命令的意思爲重建或修復boot目錄下文件(指grub)的完整性進行修復,--root-directory=/ 的意思表示要在根目錄下安裝 後跟的具體路徑或者是磁盤分區,(注意,小編在此失敗了好多次,皆因掛載在/tmp目錄下的緣故,原因可能跟/tmp目錄本身的屬性相關)

接着進入相關路徑查看stage2

 

202654367.jpg


然後我們重啓一下機器查看一下具體結果,因爲我們沒有改bios信息,所以一開始仍會按默認的啓動順序,既本地硬盤來啓動,
發現系統應經成功啓動,如圖

202835432.jpg

 

 /boot/grub/grub.conf文件丟失或損壞故障的排除

 

 

正是因爲boot目錄下grub目錄的重要性,所以,我們平常的文件操作中很容易

 

發生grub文件出錯或丟失的情況,下面我們就模擬一下,如圖,發現grub目錄

 

並且有一個叫menulst的鏈接指向她:

175157863.jpg

如圖爲grub配置文件的具體內容:

180555505.jpg

刪除它

180647260.jpg

然後重啓發現又無法啓動了;

180717902.jpg

出現這種問題,我們的解決思路是想辦法先把系統引導起來,比如說你手上現

 

在有livecd,只需要啓動後重建grubconf文件就可以了,(具體方法可參照

 

恢復grub的階段二部分)那如果沒有呢,我們可以試着如下方法,首先在grub

中指明你的引導分區,然後指明你的kernel,然後只讀引導,再然後指明引導

 

後根交給誰(既你的根所在的分區),

,然後是initrd /後跟具體的文件信息,最後boot命令

180903395.jpg

需要注意的是我們這面的操作是在grubConf配置文件丟失的情況下手動指明丟失文件中的grub選項,既rootkernelinitrd,來進行的暫時行啓動,再開機重啓仍會這樣,要解決根本我們就需要把配置文件重新編寫或生成,如圖,我們重新編寫

spacer.gif

然後重新啓動,看到可以啓動,如圖

spacer.gif

grub文件的完全丟失的情況

 在這種情況下開機都沒有grub指令菜單,只有一個報錯提示,

spacer.gif

所以這時只能用

livecd,livecd啓動後將引導分區掛載到/boot目錄下,然後執行grub-

install --root-directory=/ /dev/sda,如圖:

spacer.gif

然後查看生成後的具體內容,你會發現沒有grub的配置文件,

spacer.gif

那麼就像前面一樣再

繼續編一次,如圖,(注意,這的根一定要交給根分區,而你的根分區在哪,

這就要看你安裝時的順序了,如,小編的是2,既我是先創建的/boot分區後創

建的根分區,所以一定要是sda2,小編試sda1的時候錯了多次的。。。)

spacer.gif

然後重啓,完成,如圖,

spacer.gif

管理員口令丟失

這也是我們平常遇到的常見故障之一,他的排除可以按以下步驟來

重啓後的grub菜單等待時間內(5秒內)按下任意鍵

選擇內核版本,(沒動過內核的,一般只有一個)

spacer.gif

移動光標至第二項,按e進行編輯,光標移動至最後,什麼也不用改,在後加

singer(進入單用戶模式)(或是數字1

spacer.gif

spacer.gif

返回,按b啓動,然後在單用戶模式中,直接輸入passwd 後跟新root密碼,如圖

spacer.gif

然後重啓系統即可生效,完成密碼的更新。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章