Ubuntu 16.04 grub rescue 模式下修复 grub

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

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

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

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

  进入 Ubuntu 时,画面如下:

  首先,使用 ls 命令,找到 Ubuntu 的分区,执行 ls 命令后的结果如下:

ls

  此时会看到硬盘上的分区情况,例如(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)
#......

  执行结果如下:

  执行完之后,发现 (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

  执行完之后,发现 (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

  执行完上述命令之后,就可以看到 Ubuntu 的 grub2 引导画面,可以正常进入 Ubuntu 了。

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

  重新执行上述的命令,进入 Ubuntu。然后在终端执行如下命令更新 grub:

sudo update-grub2
sudo grub-install /dev/sda

  注意: /dev/sda 后面不要加分区号,例如 sda1,sda2 之类的。
  执行结果如下:

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

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

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

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

  ——————————————————————————————————

  在一般情况下,有人可能直接修改GRUB配置文件“/boot/grub/grub.cfg”,但使用“sudu vim /boot/grub/grub.cfg”发现提示这个是系统自动生成的文件,不建议直接编辑,而应该到“/etc/grub.d”和“/etc/default/grub”去修改。

  “/etc/grub.d”是操作系统菜单目录,一般由系统生成,我们无需修改,接下来就是修改“/etc/default/grub”文件了。使用“sudo vim /etc/default/grub”命令打开该配置文件。

  其中的“GRUB_DEFAULT=0”就是设置的默认启动项了。GRUB启动项是按照启动菜单依次使用数字进行索引了,起始数字为0。结合前面的系统启动菜单,我们可以看到,Windows8的启动项在第5项,因此这里我们就需要修改为4(因为第一项是从0开始的)

  修改完成,保存退出之后,还需要执行一下“sudo update-grub”来重新生成GRUB启动配置项。(修改GRUB配置之后,注意使用update-grub更新启动程序,否则修改将不会生效。)

参考资料:

http://blog.csdn.net/liangxanhai/article/details/7654478

http://my.oschina.net/junn/blog/135450

时间: 2024-10-25 14:48:49

Ubuntu 16.04 grub rescue 模式下修复 grub的相关文章

win7 +v Ubuntu 16.04 grub rescue 模式下修复 grub

前几天整理了下电脑的分区,合并并删除一些分区,结果导致 grub 被破坏了,Ubuntu进不去了,启动后直接进入了 rescure 模式.后来又折腾了下,终于修复好了,现总结一下. 先说一下我的系统环境,我是 Win7 + Ubuntu 16.04 双系统,先安装的 Win7,后安装的 Ubuntu.采用的是 Windows 引导 Ubuntu 的方式,使用的工具是"EasyBCD 2.3 个人版本".Ubuntu 分区时,"/boot" 是单独分区的.详细分区情况

华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核

Linux系统rescue模式下修复内核和grub 故障现象 处理思路,内核报错,因此重新安装内核,通过光盘启动,进入救援模式.1.进入救援模式(1)华为服务器没有光驱,通过mgmt管理口登录,挂载iso镜像来引导.连接服务器mgmt口至数据中心网络,浏览器登录,默认IP地址192.168.2.100,默认账号root,默认密码Huawei12#$.登录如下图 单击远程控制链接,进入远程控制管理页面,选择独占模式,如下图 打开远程管理控制台,java信息提示,点击继续这里要求远控操作电脑安装好j

ubuntu 16.04 开机鼠标键盘失灵修复

[原因]:os图形界面配置文件损坏 [修复步骤] 进入 recovery mode 第一步 : 打开手机热点,设置成不需要密码就能链接,加密方式为 无 第二步 : 产看网卡名称  ifconfig ,并启用网卡 执行:ifconfig wlp2s0 up 第三步 : nmcli device wifi connect  "手机热点名称" ifname  网卡名称 第四步: sudo apt-get install ubuntu-desktop 原文地址:https://www.cnbl

Ubuntu 16.04安装 sogou 遗留下的问题

错误提示: [email protected]5576:/var/www/html$ sudo apt-get install -y git Reading package lists... Done Building dependency tree Reading state information... Done E: The package sogoupinyin needs to be reinstalled, but I can't find an archive for it. 解决

Ubuntu 16.04下安装64位谷歌Chrome浏览器

最近把Ubuntu系统更新到16.04,发现自带的Firefox浏览器有一些问题,但是懒得安装插件,折腾已知的问题,于是决定安装Chrome看看,果然,很多问题没有了. 因为安装的Linux是64位的Ubuntu 16.04系统,所以本人决定也安装64位的谷歌Chrome浏览器.在 Ubuntu 16.04 中,要想使用谷歌的 Chrome 浏览器,可以通过命令行的方式手动安装. Ubuntu 16.04中安装Chromium浏览器  http://www.linuxidc.com/Linux/

在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器

进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 也可以按下 Win 键(或叫 Super 键),在 Dash 的搜索框中输入 terminal 或“终端”字样,Dash 即返回终端的结果,回车即可启动. 2 在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ 将下载源加入到系统的源列表.命令的反馈结果如

Ubuntu 16.04中安装谷歌Chrome浏览器

1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 2.在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/ 将下载源加入到系统的源列表 3.在终端中,输入以下命令: wget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sud

Ubuntu——grub rescue 主引导修复

长期使用windows 和 ubuntu 双系统的人,很有可能碰到重装某一个系统,或者另外添加分区,导致系统重启出现 : GRUB loading error:unknow filesystem grub rescue> 转载请注明出处:http://blog.csdn.net/jscese/article/details/36865449 一.概念 BIOS:"Basic Input Output System",中文名称就是"基本输入输出系统".其实,它是

Ubuntu下修复grub引导

很多时候,特别是在linux调整分区后,开机重启时会出现 error : unknow filesystem grub rescue> 的字样,系统就是进不去.这表示你的grub2的配置文件坏了…… 由于分区调整或分区UUID改变造成grub2不能正常启动,从而进入修复模式了(grub rescue),也称救援模式. 在救援模式下只有很少的命令可以用:set  ,  ls , insmod , root , prefix (1)set  查看环境变量,这里可以查看启动路径和分区. (2)ls