出现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和Ubuntu18.04。Ubuntu18安装的时候分区/10G还有swap2G,/boot256M,剩下的都是/home,用了一阵子/满了,而且我感觉装了些不靠谱的东西,打算重装一下仔细配置我的Ubuntu系统,给/分大点。然后我就在windows下用磁盘管理工具把linux的4个分区删了。
重新安装Ubuntu,/分了40G,剩下的都是/home。装成功之后重启就是grub rescue了。
解决过程
网上的办法大多一样,并没有完全解决我的问题。
一步一步来吧。
grub rescue>
一、寻找grub的位置
先输入set,查看设置。
ls 看磁盘的情况。
然后找grub所在的位置。
ls (hd1,msdos1)/等等
不在linux系统的磁盘时,会提示文件系统无法识别,很快就锁定了两个磁盘(hd1,msdos8)(hd1,msdos9)
在msdos8里面有boot,再进去就看到了grub。
二、重建配置
set root=hd1,msdos8
set prefix=(hd1,msdos8)/boot/grub
三、进入引导菜单
insmod normal
normal
四、进入linux 系统,打开终端,输入
sudo update-grub
sudo grub-install /dev/sda
--------------------------------------------
重启之后,又进入了 grub rescue,set的值 还是原来的。
cmdpath
当前被加载的"core.img"所在目录(绝对路径)。例如:UEFI启动可能是'(hd0,gpt1)/EFI/UBUNTU'或'(cd0)/EFI/BOOT',BIOS启动可能是'(hd0)'。由GRUB2自动设置。你只应该使用此变量,而不应该修改它。
结果
开机按了一下F11,试着从另一个硬盘启动。现在是win7 装在ssd上,linux装在机械硬盘上。
直接就进入grub菜单了,重启,修改bios设置,调整机械键盘为第一启动顺序,搞定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)