Ubuntu的grub修复

问题一:grub rescue

调整磁盘,利用工具分割出新分区后重启

开机后有引导,可以正常进入win7系统,但选择Linux系统进入时跳到grub rescue模式

1
2
3
4
5
GRUB loading

error:unknow filesystem

grub rescue>

这是因为新分区导致grub混淆

在 grub rescue>下输入以下命令:

1
2
3
4
5
6
grub rescue>ls
(hd0,1),...,(hd0,msdos9),(hd0,msdos10),(hd0,msdos11)
grub rescue>set root=(hd0,msdos11)
grub rescue>set prefix=(hd0,msdos11)/grub
grub rescue>insmod normal
grub rescue>normal

即可正常进入Ubuntu系统

但是问题依旧存在,下次要进入Ubuntu时还是先进入grub rescue,很烦

我们需要进入Linux中,对grub进行修复。

启动起来,进入ubuntu之后,在终端执行:

1
2
sudo update-grub
sudo grub-install /dev/sda

(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)

嗯,现在重启可以直接进入Ubuntu系统,不用进入grub rescue了

但是,有个问题…现在进不了win7了…win7的启动项弄没了,现在只能进ubuntu

问题二:win7的启动项消失

注意到“Windows 7 (loader) (on /dev/sda1)”条目

开机时点进去…假的,直接紫色花屏,mmp

我觉得还可以再抢救一下

直接改一下grub.cfg文件

先Ctrl+alt+T打开终端,输入

1
sudo gedit /boot/grub/grub.cfg

再打开的grub.cfg文件尾部添加一段:

1
2
3
4
5
menuentry 'Win7' {
set root=(hd0,1);
ntldr /bootmgr
boot
}

保存,退出。重启。也可以看到Win7启动条目了。

但这种做法不会像方法一那样更新了grub.cfg文件,删除掉了那条旧的“Windows 7 (loader) (on /dev/sda1)条目”。可以直接在grub.cfg文件中删除那一段则可。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器