GRUB错误大全,修复你的GRUB!!!

原文链接:http://blog.china.com.cn/pc-it/art/317816.html

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(再此之前确认一下该目录下放置了kernelsource code)重新compile一个命令如下:


  # cd /usr/src/linux/

  # make menuconfig

  # make


  完成之后拷贝进/boot:


  # cp /usr/src/linux/arch/i386/boot/bzImage /boot


  重命名一下kernel, 和你在grub.conf中指定的一样就可以了顺便再检查一下grub.confkernel那行引用的分区是否正确.


  除了kernel的丢失或损坏, BIOS无法识别存放Grubstageskernel的硬盘分区也会出现相同的Missing 错误.同时存放Grubstageskernel的分区不应该是使用software RAID-5(或者是使用其他优化存储技术的分区比如LVMLVM2).


  解决方法 (第二种情况) :


  第一检查grub.confroot行和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



使用Ubuntu Live CD启动后,打开终端命令行


$sudo grub

$find /boot/grub/stage1

#find命令会返回一个值,比如(hd0,7)

$root (hdx,x)

#如果find命令返回的(hd0,7),这里你就root (hd0,7)

$setup (hdx)

#如果find命令返回的是(hd0,num),你就 setup (hd0)


如果提示ok、成功后,重启系统,Done


grub error 17:无法挂载分区也就是Grub可以确认所使用的分区存在但是该分区上使用的文件系统无法被Grub识别.



----------------------------------------------------------------------------------------

 

 6, Grub error 18


  kernel (hd1,4)/bzImage root=/dev/hdb7


  Error 18: Selected cylinder exceeds max supported by BIOS


  解决方法:


  该错误经常发生在古老的硬件和新的硬盘连接的时候当试图访问一个BIOS无法转换的地址时(换句话说就是Grub试图读取的地址已经超过了BIOS可以访问的极限). 尝试升级一下BIOS或把/boot分区尽量移动到可使用硬盘空间的前面对于偶们来说估计没有谁还在用8G以下的硬盘吧呵呵.



---------------------------------------------------------------------------------


  7. GRUB GRUB GRUB GRUB GRUB ...


  出现症状:


  GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB

   GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB

  ...


  解决方法:


  一种可能的情况是你在BIOS里设定了AUTO 检测HDD, 可以尝试把BIOS的相关条目改成 User Type HDD看看.


  另一种可能的情况是当你在已经在MBR中安装了Grub, 但是为了修改分区或增加硬盘而重新安装了Grub, 但是在再次安装的时候却犯了某些错误对这种情况来说重新安装一遍Grub比查出哪里犯了错更迅速也更解决问题.



  8. Probing Devices to Guess BIOS Drives. This May Take a Long Time.


  出现症状:


  在安装Grub时候屏幕显示下述文字后系统挂起:


  # grub


  Probing devices to guess BIOS drives. This may take a long time.


  解决方法:


  检查一下你的硬件配置可能在同一根IDE连接线上既连接了Ultra DMA的设备也连接了不支持Ultra DMA的设备.



-------------------------------------------------------------------------------------------------

  9. 安装Grub系统挂起


  出现症状:


  运行grub命令后屏幕无任何其他显示后系统挂起.


  # grub


  (这个时候系统挂起)


  解决方法:


  grub命令会优先检查floopy, 如果没有软驱请使用下面的附加参数跳过floopy检查.


  # grub --no-floppy




-------------------------------------------------------------------------------


  10, Uncompressing Linux... Ok, booting the kernel.


  出现症状:


  系统在显示完下面的内容后挂起.


  Uncompressing Linux... Ok, booting the kernel.


  解决方法:


  确切来说这个error并不是Grub的错误可能的原因是你使用的内核或你编译的内核其用了ACPI, 但是实际ACPI并没有工作正常可以在BIOSdisableACPI或在启动该 kernel 时加入 no acpi 参数.



  11. Grub只显示了一个Grub提示符


  出现症状:


  在引导计算机时本来应该出现的各个启动条目被一个Grub提示符取代.


  解决方法:


  用livecdrescue 盘启动并挂载/boot分区检查一下其中的grub.conf是否丢失.


  # mount /dev/hda1 /mnt/someplace/boot


  # cat /mnt/someplace/boot/grub/grub.conf


  另外也检查一下其中menu.lst的符号连接是否存在.


  # ls -l /mnt/gentoo/boot/grub/menu.lst

  lrwxrwxrwx 1 root root 9 Mar 7 14:00 /mnt/gentoo/boot/grub/menu.lst -> grub.conf


  如果没有找到这个符号连接, just make it.


  # cd /mnt/gentoo/boot/grub

  # ln -snf grub.conf menu.lst


  然后重新安装一遍Grub


  (chroot环境中运行如下命令)


  # grub-install --root-directory=/boot /dev/hda


终于在最后找到了我的问题所在,装了一下午的Gentoo,编译完成了,结果grub.conf被我修改错了,各种纠结。明天接着看能不能修复吧,我可不想重新编译,那么慢。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值