Chinaunix首页 | 论坛 | 博客
  • 博客访问: 212189
  • 博文数量: 26
  • 博客积分: 390
  • 博客等级: 二等列兵
  • 技术积分: 269
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-11 18:19
文章分类

全部博文(26)

文章存档

2014年(6)

2012年(4)

2011年(16)

分类: LINUX

2011-09-18 11:41:39

开机无法引导,出现"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在第一磁盘第五分区(这里hd0表示第一块磁盘,7表示第五分
区,为什么???因为在这里表示方法是0 1 2 3 4 5 6 ……而,磁盘最最多有五个主分区,从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启动吧
 

二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,地址在,解开压缩包,把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
阅读(1629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~