歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Grub錯誤說明大全

Grub錯誤說明大全

日期:2017/2/28 17:15:29   编辑:Linux教程

收集整理了Grub錯誤的說明,應該比較全面的了,如果還有,請到Linux公社補充.

1. Grub loading, please wait...

出現症狀: 代碼:

GRUB loading stage 1.5
GRUB loading, please wait...

屏幕出現這段文字之後, 系統停止, 如果嘗試使用一張linux啟動軟盤(也就是有安裝在軟盤上的grub)可以引導系統.

解決方法:
設置本機的bios, 不要使用floopy作為第一啟動設備, 改用hard drive作為第一啟動.


對於gentoo的用戶來說, 錯誤的CFLAGS也會導致該錯誤的發生, 雖然現在的grub ebuild文件已經過濾掉了-fstack-protector, 但是當問題還是無法解決的時候用干淨的CFLAGS重新編譯一下grub也不失是一個好辦法.

# CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe" emerge grub

2. Grub Error 12

出現症狀:
代碼:
12 : Invalid device requested.

該症狀是當設備描述符正確但是隨後出現沒定義過的某個錯誤時出現.

解決方法:
該錯誤一般出現在使用交互式的Grub安裝方式(也就是Grub>下的安裝方法)時沒有輸入以下兩行.
代碼:

grub> root (hd0,0)

grub> setup (hd0)

(hd0,0) 必須用你自己的引導扇區代替, (hd0)也必須同時用你選擇的hard drive代替, 因為上述兩條命令的實質就是在把bootloader安裝到第一個硬盤(The primary master)的 Master Boot Record上.

3. Grub Error 15

出現症狀:
該錯誤可能出現在Grub配置的兩個不同的階段, 一種可能是出現在Grub的安裝配置階段(也就是在MBR上安裝Grub的時候), 屏幕顯示如下:
代碼:
grub> root (hd0,0)
Filesystem type is xfs, partition type 0×83

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... no

Error 15: File not found

還有一種情況就是啟動電腦後選擇啟動linux或其他在Grub啟動列表中列出的系統時, 屏幕顯示如下:
代碼:

Booting 'gentoo Linux'

root (hd0,0)
Filesystem type is ext2fs, partition type 0×83
kernel (hd0,0)/boot/kernel-2.4.20 root=/dev/hda3 vga=792

Error 15: File not found
Press any key to continue...

解決方法 (第一種情況) :
該錯誤在找不到指定的文件時出現, 但是此時像磁盤或分區信息這樣的其他配置都沒問題(只是找得到相應的分區或磁盤, 至於對不對它可不管). 一般來說沒找到的文件以kernel居多. 首先需要確認一下在你的/boot裡的那個kernel, 如果需要存在於你/boot裡那個kenel的完整的文件名, 使用livecd, rescue盤或其他安裝在硬盤上的linux系統引導成功後掛載那時在配置Grub時候指定的/分區和/boot(需要的話), 然後使用chroot進入那時的根分區, 使用下面的命令進行查找.
代碼:

# cd /boot
# ls

如果發現kernel文件丟失, 進入/usr/src/linux(再此之前確認一下該目錄下放置了kernel的source code)重新compile一個, 命令如下:
代碼:

# cd /usr/src/linux/
# make menuconfig
# make

完成之後拷貝進/boot:
# cp /usr/src/linux/arch/i386/boot/bzImage /boot

重命名一下kernel, 和你在grub.conf中指定的一樣就可以了. 順便再檢查一下grub.conf中kernel那行引用的分區是否正確.

除了kernel的丟失或損壞, BIOS無法識別存放Grub的stages和kernel的硬盤分區也會出現相同的Missing 錯誤.同時存放Grub的stages和kernel的分區不應該是使用software RAID-5(或者是使用其他優化存儲技術的分區, 比如LVM或LVM2)的.

解決方法 (第二種情況) :
第一, 檢查grub.conf的root行和setup行配置正確.如果你確認你使用的方法是正確的, 那可能你使用的Grub版本存在bug(比如0.93.20031222這個版本), 使用你所用發行版的軟件工具新安裝一個或是升級你原來所用的Grub).

Gentoo用戶可以使用下面的命令:

(在chroot環境下執行該命令)
# echo "=sys-boot/grub-0.93.20031222" >> /etc/portage/package.mask
# emerge grub -p

然後你也可以使用Grub開發人員建議使用的 grub-install腳本進行Grub的在MBR中的安裝:

(--root-directory 在你使用單獨的/boot分區時是必選項)
# grub-install --root-directory=/boot /dev/hda

如果上面的方法你都試過, 但是還是沒法解決問題的話, 請檢查一下你的/boot分區, 可能是你的/boot分區存在問題:

(確認一下你將要進行fsck的分區是處於unmount狀態下的, 在給出的例子中使用的是/dev/hda1.)
代碼:

# fsck -y /dev/hda1

Copyright © Linux教程網 All Rights Reserved