以前曾经写过一篇文章,关于“开机遇到grub>的解决方法“曾经被不少人转载,当然我现在从新写不是为了宣传,而是为了让更多人遇到这个问题后能够找到解决的办法。

同时我发现自己的5d6d论坛,中国Linux初学者论坛,每天的的IP有十几个都来自百度同一个问题“开机grub”,所以今天来从新总结一下这篇文章,以前写的不好,现在改进一下,如有不妥的地方,还望大家多多提出宝贵意见,我的博客,蛐蛐工作室www.qqgzs.com。下面开始引入正文。

开机无法引导,出现"grub>",相信不少网友都遇到这样的问题,像这样的问题大多数出自学习Linux者的电脑上,为了学习Linux,安装了Windows与Linux双系统,另外还有一原因,你并没有装过Linux,那是因为你安装了某种备份软件。解决的方法,用安装版的光盘安装系统,或者在纯dos下:fdisk/mbr(修复主引导记录)

  

  

下面就Windows与Linux双系统遇到这个问题详细说明一下

grub.conf出错导致无法启动同样会出现 "grub>"因为grub无法加载linux内核

如果出现这种情况 当务之急是先启动LINUX或WINDOWS再说

 

一、LINUX启动方法:

第一步:(如果知道linux具体在哪个分区,则可以略过第一步)

查找/boot/grub/grub.conf分区所在的目录:

输入以下命令:

grub> find /boot/grub/grub.conf

会返回你Linux内核所在分区

我这里返回(hd0,7),说明我LINUX在第一磁盘第4逻辑分区(这里hd0表示第一块磁盘,7表示第4逻辑分区,为什么???因为在这里表示方法是 0 1 2 3 4 5 6 ……,一块硬盘最多有4个主分区,所以从4开始就是逻辑分区了,所以嘛……不多说了,傻瓜都懂



第二步:查看一下自己linux内核信息

输入以下命令:

cat (hd0,7)/boot/grub/grub.conf   (返回信息不说了) 关于内核信息的,看一下就明白了。

按照下面命令依次输入

指定/boot分区使用命令:grub>root (hd0,0)

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

下面两行是内核信息,你输入cat (hd0,7)/boot/grub/grub.conf会返回给你的,你按照返回的信息输入,可以借助tab键自动添加

grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回车

grub>initrd /boot/initrd-2.6.18-53.el5.img 回车

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

grub>boot (hd0,7)   回车(从此分区启动)这里直接输入boot也行



OK,下面就等着LINUX启动吧

如果你的Linux没有启动,在确认没有输错的情况下,请在下面留言,或者到我的博客留言 www.qqgzs.com,把你的错误信息发过来,因为我还没遇到,看怎么帮你解决。

 

二、WINDOWS启动方法:

敲入以下命令:

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

grub>root (hd0,0) 回车(你WINDOW不会装在其它分区吧?)

grub>rootnoverify(hd0,0)回车

grub>chainloader +1回车

boot (hd0,0)   回车(从此分区启动)这里直接输入boot也行-

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



说了这么多问题还没解决,上面的方法只是应急措施,总不能每次开机都要这样输入吧?下面分别来介绍一下如何修复主引导记录和介绍另外一款引导软件(很简单的哟!!!)

修复主引导记录:

1.用RHEL安装盘启动计算机

2.等安装界面出来后,输入:linux rescue 后 回车进入linux救援模式。



3.救援模做了什么:只是linux安装的前两步,语言和键盘。然后选择中文还是英文取决于你(建议选英文)。不用选择网卡

跳过网卡配置这一步。往后会出现continue readonly 和 skip三个选项:

continue:搜索硬盘上的linux系统并挂载到/mnt/sysimage 目录下 实际上是自动rescue模式。

readonly:当然是readonly模式

skip:     直接出现单用户的根shell,是手工救援模式,不查找linux系统文件。



我们选择continue

4.硬盘上的系统已经被找到并挂载在/mnt/sysimage 下,提示通过命令chroot /mnt/sysimage 改变根目录

linux rescue中使用的shell是SH shell,常用命令和bash shell一样。

进入 linux rescue后会出现这样的字符

sh#

此时有两种方法:

方法一:

输入命令

sh#grub

会出现这样的字符

grub>

我们可以在此输入

grub>root (hd0,7)

grub>setup (hd0)

OK主引导记录修复成功

方法二:

用linux 启动盘(系统盘也行)进入系统

2.用root登陆执行下面的语句

#/sbin/grub

然后会出现grub>提示符

4.再执行下面命令

grub> root (hd0,7)

grub>setup (hd0)

OK主引导记录修复成功

 

第三种方法:

具体:用第一张修复盘启动进入linux rescue出现#时输入命令

#chroot /mnt/sysimages

#grub -install /dev/hda(第一块硬盘)

等待一会

#exit

OK主引导记录修复成功

 



介绍另外一款引导软件(很简单的)

用迅雷下载grud4dos,地址在ftp://ftp5.linuxeden.com/system/grub4dos-0.4.3.zip,解开压缩包,把grldr和menu.lst放到C盘根目录

然后修改boot.ini

操作系统文件(推荐),把前面的勾去掉,就可以了),在boot.ini最后添加一行:

C:\grldr=linux boot

grldr会搜索C盘根目录寻找menu.lst文件。

用记事本打开menu.lst,编辑内容如下:

title Red Flag Linux

root (hd0,7)

kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet

initrd /boot/initrd-2.6.18-53.el5.img

Boot

更新内核以后,需要手动同步Windows的C盘的menu.lst的内容。否则无法用新内核启动。解决方法很简单,grub很强大,支持一条configfile的命令:

把你的C盘根目录的menu.lst改成

timeout 5

configfile (hd0,7)/grub/menu.lst

    这样,grldr就会重新加载(hd0,7)/grub目录下的menu.lst,显示这个menu.lst的启动菜单。

    更新了内核也不用修改Windows下面的任何东西了。重装系统也不怕了。仅仅需要两个文件(grldr和menu.lst),修改一个文件(boot.ini),

一切就都OK。

不想选择两次才进入linux,可以修改C盘根目录menu.lst的timeout为0



下面是我menu.lst的内容,可以参考一下:

color black/cyan yellow/cyan

timeout 5

default /default

title Red Hat Enterprise Linux Server (2.6.18-53.el5)

root (hd0,7)

kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet

initrd /boot/initrd-2.6.18-53.el5.img

boot