出现grub rescue模式一般是硬盘分区出现变动、导致旧的grub找不到启动文件而出现的。
出现错误具体原因未知,但开机不能引导肯定是grub配置文件出错,/boot/grub2/grub.cfg
解决方法:
1,插入安装U盘或者光盘,进入救援模式,重装grub重新生成grub.cfg文件:grub2-install /dev/sda*boot目录所在分区grub2-mkconfig -o /boot/grub2/grub.cfg重启后应该就OK了。
2,grub>模式下:输入:ls 查看所有磁盘分区:hd。x,x......用:ls hd(x,x)/grub 找grub所在的分区,有正确执行结果的便是找到linux所在分区后执行setprefix=hdx,x/grubsetroot=hx,x、insmod normal再使用normal命令进入系统后,再修复grub 配置。or:查找boot分区:find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg
输入以下命令:cat hd0,7/boot/grub/grub.conf 关于内核信息的,看一下就明白了。按照下面命令依次输入指定/boot分区使用命令:grub>root hd0,0grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回车grub>initrd /boot/initrd-2.6.18-53.el5.img 回车boot 回车启动
首先 在win7上下载一个EasyBCD2.2, 然后就是下面图示过程添加 linux系统所在分区 以便引导进入linux!到这里就可以了, 我是已经把win 自己的给删除了 所以 只显示了linux的!到这里 *** 作无误的话 可以点工具重新启动了!!重新启动我们会发现出来了引导选项 进入linux系统, 但是到我这里遇到的问题就是 这个引导其实 没有找到我们在linux下 grub.conf 或者 grub.cfg所在的正确目录,(是cfg 还是 conf 后缀取决自己系统)!
所以我们要手工配置这就是说 我们最好首先 在linux系统下 查找到grub.conf/cfg所在的目录, 和 清楚自己 linux系统(终端下 fdisk -l命令查看)所在硬盘分区 再开始 *** 作!!!
好 出现这个这个情况后 按 e 进入编辑状态, 注意! 这里 只要先把grub.conf或者grub.cfg 的给修改正确 然后 (hd0, hdx) x 就是系统所在分区, 其实可以一个一个试这里不会出问题的',修改好之后 按 b 进入引导 如果无误 到这里 就会重新看到你熟悉的 grub 引导界面了! 好 进入 系统后 还需要对 grub 进行 修复, 也就是 重写mbr的引导
进入了系统之后进入终端首先就是 update-grub fdisk -l (查看系统所在分区编号)
然后就是 mount /dev/sdax /mnt (x代表你系统所在分区编号)
重装grub-install --root-directory=/mnt /dev/sda(这里sda就是硬盘 不需要加分区编号)
成功之后 可以reboot 了( 注意, 我这里重启 会进入grub recue模式, 不知道为何,难道是还需要 update-grub一下再重启)
下面 再说下 如果遇到了 grub recue 情况 怎么解决的办法
grub resuce>ls 罗列所有磁盘分区信息 比如(hd0) (hd0, msdos1) 这样
然后就是 找出 grub文件所在 分区 也就是 ls (hd0, msdosX)/boot/grub (X可变)
当罗列出一大堆 说明找到了
可以继续下面的命令:
set root=(hd0, msdosX)
set prefix=(hd0, msdosX)/boot/grub
insmod /boot/grub/normal.mod
normal
现在就可以重新看到正确的grub引导了 不过 进入 系统 还需要再最后解决下问题!
sudo update-grub
sudo grub-install /dev/sda
到这里 reboot 一般来说问题就解决了!其中个别缘由也不是太清楚, 希望以后慢慢能弄懂!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)