之前是双系统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设置,调整机械键盘为第一启动顺序,搞定。
一在grub提示符下,输入以下命令临时进入windows系统:
1
引导进入winxp系统:
find
--set-root
/ntldr
chainloader
/ntldr
boot
2
引导进入win
vista
及以后的系统:
find
--set-root
/bootmgr
chainloader
/bootmgr
boot
3
引导进入第一个硬盘第一个分区:
chainloader
(hd0,0)+1
boot
注意:如果以上命令的find命令报错,用search来代替;注意命令中的空格位置。
进入windows后,使用bootice等工具修复硬盘引导区。
二
也可以在pe系统下运行dism++来修改硬盘引导区为win7的引导。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)