GRUB常见问题的解决方法
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 0x83
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 0x83
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
4. Grub error 16
出现症状:
Error 16: Inconsistent filesystem structure
翻成中文的意思是不兼容的文档系统, 也就是说您的/boot无法被Grub识别(可能是使用了Grub没法识别但linux能够识别的文档系统),
假如您的/boot不是单独分区的话, 那代表着您的根分区也就是/无法被Grub识别。
解决方法:
同样使用rescue盘或livecd或第二个能够使用的linux系统, 启动完成后不要挂载原系统的/或/boot,
能够先使用fdisk查看一下所使用的文档系统再使用fsck -y检查。
5. Grub Error 17
出现症状:
root (hd0,0)
filesystem type unknown partition type 0x7
Error 17 : Cannot mount selected partition
解决方法:
中文意思为无法挂载分区, 也就是Grub能够确认所使用的分区存在但是该分区上使用的文档系统无法被Grub识别。
确认一下再grub.conf中的root(x,y)配置是否正确。
假如在选择启动Windows时出现上述错误, 请检查一下grub.conf关于Win的配置中是否有 root (hdX,Y) (或
rootnoverify (hdX,Y)) 和 chainloader (hdX,Y) 1。
6. Grub error 18
kernel (hd1,4)/bzImage root=/dev/hdb7
Error 18: Selected cylinder exceeds max supported by BIOS
解决方法:
该错误经常发生在古老的硬件和新的硬盘连接的时候,

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!