1. ubuntu liveCD模式,找到ubuntu的系统盘位置,挂载到系统上面,然后使用grub进行修复
  2. ubuntu liveCD模式下是用boot-repair软件进行修复
  3. grub急救模式

1. ubuntu liveCD模式 + grub修复

一种情况是grub已经损坏或者丢失,开机后直接进windows,没法进入grub,也没法进入急救模式resume,

此时需要使用ubuntu安装盘选择try ubuntu without installing,进入liveCD模式,挂载ubuntu系统盘,

如果不知道哪个盘是ubuntu安装盘,可以使用下面的命令查看磁盘,可以看到sda5是linux的系统盘

sudo fdisk -l

找到ubuntu的系统盘后,使用下面的命令将磁盘挂载到系统上

sudo mount /dev/sda5 /mnt

grub-install 会恢复grub文件夹中丢失的文件,但是不会恢复故意删除和损坏的文件,

所以要完成引导的修复,需要grub2完全被卸载并重新安装

下一步开始恢复grub2的引导,此时要注意如果是grub执行的是--root-directory,grub2才是执行的下面这个命令,现在基本上都是grub2

sudo grub-install --boot-directory=/mnt/boot /dev/sda

如果没有报错,就代表修复完成

如果重启后grub的引导界面上没有windows系统,则进入ubuntu后,更新一下grub的引导项

sudo update-grub

上图就是修复了grub的启动项,包括ubuntu和windows

2. 使用boot-repair来修复grub引导项

第一步进入ubuntu liveCD模式,

第二步安装boot-repair

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

等待一会就会出先boot-repair的界面

点击Recommended repair,修复过程中它可能会要求你去执行一些命令,按照他的要求,打开终端,执行命令,执行完毕后,点击forward(下一步)

在boot-repair修复完成后,重新启动,就可以见到久违的启动菜单了

3. grub急救模式

开机后,进不去系统,进入grub管理页面,这表示grub的配置文件损坏,进入了急救模式,

在急救模式下只有少数几个命令可以使用:

set:查看系统环境变量,这里可以查看启动路径和分区

ls: 查看设备

insmod:加载模块

root:用于启动系统的分区,在救援模式下设置grub启动分区

prefix:设定grub启动路径

具体修复步骤如下:

3.1 寻找ubuntu的系统盘

首先查看有哪些磁盘,然后去找ubuntu的系统盘

ls
ls(hd0,msdos6)

挨个去试,直到找到ubuntu的系统盘

3.2 安装MBR

grub rescue>set root=(hd0,msdos6)
grub rescue>set prefix=(hd0,msdos6)/grub
grub rescue>insmod normal //加载normal
grub rescue>normal

自动重启后就可以看到grub的启动菜单栏了

选择ubuntu后,发现还是进入不了系统,这是因为还没有真正的修复grub,这个需要到ubuntu系统中进行修复

怎么进入ubuntu系统呢?

进入系统启动界面,按c进入命令行模式

grub >set root=hd0,msdos6
grub >set prefix=(hd0,msdos6)/grub
grub >linux (hd0,msdos6)/boot/vmlinuz-xxx-xxx root=/dev/sda6 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd (hd0,msdos6)/boot/initrd.img-xxx-xxx
grub >boot

这样就可以进入ubuntu了

3.3 进入ubuntu修复grub

前面的工作已经恢复了MBR,下一步需要更新下grub引导项

sudo update-grub

重启后就可以看到grub引导菜单中有windows和ubuntu了

如果不行的话,回到第三步,在更新grub引导项后,再执行命令

sudo grub-install /dev/sda

此时可能会报错"grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory"

解决方式是安装一下grub-pc-bin这个包,然后重新执行一下上面的命令

sudo apt-get install grub-pc-bin

参考文档

https://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/

https://blog.csdn.net/gatieme/article/details/59127020

https://lesca.me/archives/restore-boot-menu-after-reinstalling-windows.html

https://askubuntu.com/questions/737059/problem-installing-windows-over-ubuntu-grub-install-error

https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot

http://yhz61010.iteye.com/blog/2302418

http://blog.sina.com.cn/s/blog_7deb436e0101nzkq.html

win + ubuntu 双系统 grub引导项修复的更多相关文章

  1. 安装windows7和ubuntu双系统后引导项设置

    win7系统,U盘安装ubuntu,在选择[安装启动引导器的设备]时,1.如果你选择的是/dev/sda,即整个硬盘,他会将启动引导器使用grub进行系统引导,而不再使用windows loader, ...

  2. windows+Ubuntu双系统 windows引导修复

    我的博客:http://blog.csdn.net/muyang_ren 装完windows+Ubuntu麒麟双系统后,发现引导是Ubuntu的. Ubuntu的引导是GRUP windows的引导是 ...

  3. ubuntu 16.04(Windows 10双系统+grub引导)无法进入tt1~tt6(NVIDIA驱动安装相关-黑屏,login loop,分辨率)

    目录 前言回顾 最终解决: 0.关闭x服务 1.禁用nouveau 2.加入 3.更新 4.查找匹配驱动 5.选择推荐版本 6.等待安装后重启,nvidia-smi查看是否安装成功,或者lsmod | ...

  4. 双系统开机引导菜单修复方法 进win7无须重启|metro引导|双系统菜单名字修改

    此文转自互联网,一部分是原创. 主要内容 1.修复双系统菜单(win7与win8双系统),进入win7不再需要重启,普通菜单样式(普通引导,非metro界面),更加简洁,实用,开机即可选择操作系统 2 ...

  5. 双系统Grub引导下恢复windows引导的方法

    此方法适用于windows系统正常,linux和windows 双系统下恢复windows系统引导.需要使用windows安装u盘 1. 启动至windows安装u盘,点击修复计算机 2. 进入命令行 ...

  6. [CrunchBang]修改win+ubuntu 双 系统菜单的 启动顺序 引导

    说到启动就不得不说GRUB,Linux下大名鼎鼎的启动管理工具(曾经的LILO已经风光不再),当然现在已经是GRUB2了,GRUB2和GRUB最重要的区别就是,GRUB存放系统启动信息的文件为/boo ...

  7. win7 debian 双系统修改引导项顺序

    转载:http://jingyan.baidu.com/article/72ee561aa1d123e16138df81.html 问题描述: 个人在宿舍使用的比较多的是Window 7,而它的启动项 ...

  8. 「linux」win+linux 双系统 默认启动项 的修改

    修改/etc/default/grub文件,其中的GRUB_DEFAULT表示默认启动项: sudo gedit /etc/default/grub 注意:启动项是从0开始计数. 要使修改生效需要运行 ...

  9. 双系统 windows引导项添加

    [root@MiWiFi-R2D-srv ~]# vi /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0# This file provides a ...

随机推荐

  1. Jenkins安装总结

    Jenkins官方文档说的安装步骤,http://jenkins.io/zh/doc/pipeline/tour/getting-started/ 相关安装资源可在官方文档下载 安装Jenkins之前 ...

  2. Pytorch Bi-LSTM + CRF 代码详解

    久闻LSTM + CRF的效果强大,最近在看Pytorch官网文档的时候,看到了这段代码,前前后后查了很多资料,终于把代码弄懂了.我希望在后来人看这段代码的时候,直接就看我的博客就能完全弄懂这段代码. ...

  3. Codeforces Round #190 (Div. 1 + Div. 2)

    A. Ciel and Dancing 模拟. B. Ciel and Flowers 混合类型的数量只能为0.1.2,否则3个可以分成各种类型各自合成. C. Ciel and Robot 考虑一组 ...

  4. axis2 wsdl2java工具

    wsdl2java工具使用方法描述: C:\Users\Administrator>wsdl2java -h Using AXIS2_HOME: E:\Apache_Projects\axis2 ...

  5. HDU 6623"Minimal Power of Prime"(数学)

    传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 定义 $ans$ 表示最终答案: ①如果 $ans \ge 5 ...

  6. Laravel Form-builder使用

    添加formbuilder插件: Composer应用 composer require kris/laravel-form-builder 下载成功 修改配置文件 在config/app.php ‘ ...

  7. java Eclipse的使用技巧

    eclipse与myeclipse的关系(都属于java开发的工具): 后者是前者的一个插件,后来为了方便使用,myeclipse集合了eclipse,后者是收费的. 可大部分人都是用 eclipse ...

  8. JavaScript DOM查询,原生js实现元素子节点的获取

    在网页网页开发中,经常会需要获取某个网页元素的子元素,然后对其进行事件绑定.或样式修改等行为.这些操作对于jquery来说很容易,但是对于原生js会稍微麻烦一些,这里将介绍四种方法获取元素的子元素(本 ...

  9. 2018-10-19-C#-AddRange-添加位置

    title author date CreateTime categories C# AddRange 添加位置 lindexi 2018-10-19 9:3:8 +0800 2018-2-13 17 ...

  10. 测试驱动开发实践—从testList开始

    [内容指引]运行单元测试:装配一条数据:模拟更多数据测试列表:测试无搜索列表:测试标准查询:测试高级查询. 一.运行单元测试 我们以文档分类(Category)这个领域类为例,示范如何通过编写测试用例 ...