背景:win7下装完双系统,重新启动出现 grub rescue>
模 式 黑屏,无法正常启动
解决办法: 使用grub rescue模式下引导命令,手动引导。首先给出参考文献来自于ubuntu官方论坛 还有一篇博客某博客
解决步骤为:
- 执行ls命令
grub rescue> ls
找到ubuntu系统所在分区 - 执行set root命令
root=(hd0,n)
或者root=(hd0,msdos+n)
n是代表数字,至于是n还是msdos+n取决于ls显示的内容 - 执行 prefix 命令
prefix=(hd0,n)/boot/grub
- 执行 insmod命令
insmod normal
- 执行 normal 命令
normal
- 最后启动系统后执行
update-grub
和grub-install /dev/sda
命令,这样就可以避免下次启动再次出现rescue了
其实以上内容都不是我想要说的
个人总结
上面的解决步骤是大部分博客给出的解决方案,某种情况下十分完美的解决了问题,但是也有水土不服的时候,在什么情况下上述解决方案水土不服,以及又如何解决才是我真正想要说的。
其实grub引导系统启动的真正程序是通过找到grub.cfg文件,这个文件记录了如何找到引导程序进行正确引导。
水土不服的时候
大家看步骤3 prefix=(hd0,n)/boot/grub
这一步骤的目的就是指定grub.cfg文件所在目录地址,以便找到grub.cfg文件。但是这个步骤只适用于安装时没有对/boot挂载点单独分区的情况。当对/boot挂载点单独分区时,会把内容直接放在分区里。所以执行步骤3的时候可能会报错,报错内容为找不到/boot/grub/grub.cfg文件
。此时只需要找到/boot挂载点所在分区,比如为(hd0,m),然后执行 prefix=(hd0,m)/grub
就可以了
与此类似,当你有两块硬盘时,你可能需要把hd0替换为hd1