⚱️

2017-08-07-Ubuntu的grub修复

问题一:grub rescue

调整磁盘,利用工具分割出新分区后重启
开机后有引导,可以正常进入win7系统,但选择Linux系统进入时跳到grub rescue模式
GRUB loading error:unknow filesystem grub rescue>
这是因为新分区导致grub混淆
在 grub rescue>下输入以下命令:
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之后,在终端执行:
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打开终端,输入
sudo gedit /boot/grub/grub.cfg
再打开的grub.cfg文件尾部添加一段:
menuentry 'Win7' { set root=(hd0,1); ntldr /bootmgr boot }
保存,退出。重启。也可以看到Win7启动条目了。
但这种做法不会像方法一那样更新了grub.cfg文件,删除掉了那条旧的“Windows 7 (loader) (on /dev/sda1)条目”。可以直接在grub.cfg文件中删除那一段则可。