[原创] Ubuntu 16.04 grub rescue 模式下修复 grub

  前几天整理了下电脑的分区,合并并删除一些分区,结果导致 grub 被破坏了,Ubuntu进不去了,启动后直接进入了 rescure 模式。后来又折腾了下,终于修复好了,现总结一下。

  先说一下我的系统环境,我是 Win7 + Ubuntu 16.04 双系统,先安装的 Win7,后安装的 Ubuntu。采用的是 Windows 引导 Ubuntu 的方式,使用的工具是”EasyBCD 2.3 个人版本“。Ubuntu 分区时,[color=red][b]"/boot" 是单独分区的[/b][/color]。详细分区情况如下:“/boot” 分区, “/” 分区, “swap 交换空间“。

  [b]另外需要说明的,我在安装 Ubuntu 时,“安装启动引导器的设备”选择的是 "/boot" 所在的分区。[/b]

  下面正式开始详细说明解决办法:

  进入 Ubuntu 时,画面如下:
[img]http://dl2.iteye.com/upload/attachment/0117/8006/a1986b46-9164-3c89-b5ae-8d39fec9d372.png[/img]

  首先,使用 ls 命令,找到 Ubuntu 的分区,执行 ls 命令后的结果如下:
ls
[img]http://dl2.iteye.com/upload/attachment/0117/8010/efa5f942-5fa3-339f-9bfa-357bfe213ff0.png[/img]

  此时会看到硬盘上的分区情况,例如(hd0,msdos1),(hd0,msdos2)等等,其中 hd0 中的 0 代表第 1 块硬盘(硬盘号从 0 开始),msdos1 中的 1 代表第 1 个分区。

  然后依次调用如下命令,直到找到 Ubuntu 所在的分区,命令如下:ls (hdx,msdosy)
  其中 x 代表硬盘号,y 代表分区号。
  以我的机器为例,依次查看每个分区情况:
ls (hd0,msdos1)
ls (hd0,msdos2)
ls (hd0,msdos3)
#......
  执行结果如下:
[img]http://dl2.iteye.com/upload/attachment/0117/8014/0d6ffebf-cc9f-349b-8c68-4aaf8388ea11.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0117/8016/6e4c2b17-fde7-3035-9aaf-5cc3e855939a.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0117/8018/9b633290-f4c7-397d-aa48-13aa4c896b41.png[/img]

  执行完之后,发现 (hd0,msdos5)和(hd0,msdos6)是 Ubuntu 的分区。然后分别执行如下命令,确定 grub 所在的分区:
ls (hd0,msdos5)/grub
ls (hd0,msdos6)/grub
# 若 “/boot” 没有单独分区,需要执行如下命令(待验证):
ls (hd0,msdos5)/boot/grub
ls (hd0,msdos6)/boot/grub
[img]http://dl2.iteye.com/upload/attachment/0117/8020/83c341b2-4d1f-3bb0-8d77-1dce5eee8a43.png[/img]

  执行完之后,发现 (hd0,msdos5) 中,有 grub.cfg 文件。说明 (hd0,msdos5) 是我们要找的引导分区。

  之后,再依次执行如下命令,修复 grub 引导,并进入 grub2 引导画面:
set root=(hd0,msdos5)
set prefix=(hd0,msdos5)/grub
insmod normal
normal
# 若 “/boot” 没有单独分区,需要执行如下命令(待验证):
set root=(hd0,msdos5)
set prefix=(hd0,msdos5)/boot/grub
insmod normal
normal
[img]http://dl2.iteye.com/upload/attachment/0117/8025/b2898d10-f226-37ad-b212-c19b5d9458e9.png[/img]

  执行完上述命令之后,就可以看到 Ubuntu 的 grub2 引导画面,可以正常进入 Ubuntu 了。
[img]http://dl2.iteye.com/upload/attachment/0117/8029/c8966d7e-b63e-35d9-ab3e-493bb4c5c838.png[/img]

  不过你会发现,若重新启动电脑的话,问题依旧。那是因为我们还没有执行 grub 的更新命令。

  重新执行上述的命令,进入 Ubuntu。然后在终端执行如下命令更新 grub:
sudo update-grub2
sudo grub-install /dev/sda
  [color=red][b]注意:[/b][/color] /dev/sda 后面[b][color=red]不要[/color][/b]加分区号,例如 sda1,sda2 之类的。
  执行结果如下:
[img]http://dl2.iteye.com/upload/attachment/0117/8035/c34076d6-29d3-3483-8c49-ad3c28dbbd7e.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0117/8037/e8f4f41f-f88a-3f8c-8a80-60dd6c154a8e.png[/img]

  至此,grub 终于的修复完毕。不过,此时若重新电脑的话,你会发现,启动时变成了 Ubuntu 引导 Windows 了。而修复之前是 Windows 引导 Ubuntu。

  为了解决这个问题,我用的方法是先进入 Win7,然后使用 ”EasyBCD“ 重新修复 MBR 从而解决了这个问题。

  操作方法很简单:启动 EasyBCD,选择左侧的 ”BCD部署“,然后选中右侧的 ”在MBR中安装 Windows Vista+的bootloader“,也就是默认的第一项,最后点击 ”编写 MBR“ 按钮。

  到这里,才算是直接的完成了 grub 的修复,并且可以用 Windows 引导 Ubuntu 了。

[b]参考资料:[/b]
[url]http://blog.csdn.net/liangxanhai/article/details/7654478[/url]
[url]http://my.oschina.net/junn/blog/135450[/url]
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值