在使用Linux的過程中,大多初學者都遇到過系統啟動到“grub>”提示符後就停止不前的問題,功夫不深的愛好者可能會束手無策,轉而選擇重裝系統,其實這隻是系統出現了一點小問題,既系統的GRUB設定檔出現了故障,此時可以採用以下兩種方案來解決問題:
1)存在GRUB設定檔備份
如果存在GRUB設定檔備份,則可以比較簡單的進行恢複,可以按如下方法進行:
使用光碟片引導機器,進入到“linux rescue”模式,即系統維護模式;在提示符”sh#”下執行cp命令,將備份檔案拷貝到/boot/grub.conf即可
Sh#cp /backup/grub.conf.bak /mnt/sysimage/boot/grub/grub.conf
假裝置份檔案為/backup/grub.conf.bak,因為大多數Linux光碟片修複模式中會將硬碟系統的”/”分區chroot到“/mnt/sysimage”處,所以拷貝的目標為“/mnt/sysimage/boot/grub/grub.conf”,而非“/boot/grub/grub.conf”。
完成後重新啟動即可。核心檔案、鏡像檔案、/boot目錄等檔案損壞或丟失,也可以使用此種方法修複。
2)如果沒有GRUB設定檔備份
如果沒有備份檔案時可以使用grub的交換功能,可以在”grub>”命令列下進行以下操作以手動啟動系統:
尋找/boot/grub/grub.conf分區所在的目錄:
grub> find /boot/grub/grub.conf
(hd0,0)
需要注意的是,上述命令將得到的是grub.conf設定檔所在的系統的分區,(hd0,0)即表示它在分區hda1
查看grub.conf檔案錯誤使用如下的命令:
grub> cat (hd0,0)/boot/grub/grub.conf
需要注意的是,可以查看設定檔到底什麼地方出現了錯誤,以便進入後修改。
指定/boot分區使用命令:root (hd0,0)
從此步驟開始,即為本文前面提到的GRUB設定檔的主要引導步驟,只是一般都是系統讀取GRUB設定檔,出現問題時我們可以使用手動啟動。
指定核心載入的命令:kernel /boot/vmlinuz ro root=LABEL=/
指定鏡像檔案所在的位置可用如下命令:initrd /boot/initrd-2.6.24-1.3194.fc7
從/boot分區啟動可以使用如下命令:boot (hd0,0)
此時系統即可正常啟動,實際上以上步驟就是執行了GRUB引導期間載入grub.conf檔案的步驟,當系統正常啟動後將GRUB設定檔修改正確後即可。