Linux 啟動故障與排除

錯誤的核心檔與開機磁碟分割

如果在 GRUB 配置功能表中選擇一個系統啟動項,並將其中的核心檔案名臨時更改為錯誤的資訊,完成之後按b啟動系統,我們可以看到系統直接錯誤,並提示按任意鍵回到上一個界面重新指定核心檔案名(圖4及5)。如果當指定了錯誤的開機磁碟分割,所出現的故障現象也是如此。

圖4:進入 GRUB 啟動引導界面。
圖4:進入 GRUB 啟動引導界面。

 

圖5:在 GRUB 中指定錯誤的核心檔案名將導致的故障現象。
圖5:在 GRUB 中指定錯誤的核心檔案名將導致的故障現象。

錯誤的映像檔檔案系統 initrd

如果在 GRUB 中指定了錯誤的 initramfs 檔案名稱(圖6)並啟動系統,螢幕上沒有任何輸出顯示,這個時候系統已經無法接收任何中斷和命令(如鍵盤燈),相當於死機,只能硬來重啟。

圖6:指定錯誤的 initrd 檔案名。
圖6:指定錯誤的 initrd 檔案名。

錯誤的根分割區

如果在 GRUB 中指定了錯誤的根分割區名稱(圖7),那麼出現的錯誤現象就和剛才有明顯不同了。這種情況下,系統能夠載入並運行核心、initrd 映像檔檔案系統,所以我們能在螢幕上看到這一個過程中的日誌資訊。但是因為最終找不到根分割區,所以無法啟動上面的邏輯卷,也就自然談不上掛載根檔案系統(圖8),最終系統會出現 Kernel Panic 的錯誤(圖9)並徹底死機。

圖7:在 GRUB 中指定錯誤的根分割區。
圖7:在 GRUB 中指定錯誤的根分割區。

 

圖8:產生的錯誤。
圖8:產生的錯誤。

 

圖9:因無法切換並掛載根分割區而導致的 Kernel Panic 錯誤。
圖9:因無法切換並掛載根分割區而導致的 Kernel Panic 錯誤。

剛才我們通過臨時修改 GRUB 配置的方式,模擬這幾種現象,但在真實環境中,可能 grub.conf 在重啟之前已經被改壞了,只能在啟動到 GRUB 之後按 e 進入編輯模式,嘗試在修改相關配置內容之後,按 b 重啟系統。或者當出現系統啟動引導資訊之後,直接按 c 進入 GRUB 的命令模式,即 GRUB Shell,通過互動式的命令來指定正確資訊。如果重新指定的資訊可以使系統啟動成功,務必不要忘記在 /boot/grub/grub.conf 中將錯誤資訊徹底修改回來。不過這種修復的方法,前提是開機磁碟分割和根分割區上的所有檔都正常存在,只是在 grub.conf 中指定了錯誤的資訊而已。

檔案丟失所的錯誤

開機磁碟分割 /boot 在系統運行時基本上沒什麼用,所以一些 /boot 檔案系統上的誤操作所導致的系統啟動問題,只有在系統重啟之後才會充分暴露。其中主要的誤操作多大多集中在開機磁碟分割上的一些檔案,尤其是和啟動引導管理器 GRUB 相關的檔或配置,被破壞或者丟失而導致整個系統無法啟動。下面我們將列舉幾類誤操作所導致的故障現象,以及修復方法。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。