自从安装了ubuntu14.04系统后(win7+ubuntu双系统),一直使用grub来引导win7和ubuntu,很长一段时间都使用的很好。突然前两天win7进不去了,无奈之下就用pe修复了win7的启动项,开机后grub的启动界面消失了,变为了windows的启动界面(笔者猜想,pe在修复win的启动项时,修改了mbr的内容,以前mbr中存放的是grub的部分程序,修复之后的mbr变成了win的引导程序,会去加载win所在分区的pbr,猜想不一定正确)。无论怎样,windows总算能进去了。接着,笔者又在win7下用EasyBCD添加了ubuntu的启动项,如下图:

类型选择了第一项GRUB(legacy),驱动器选择了ubuntu被安装所在的分区。添加成功后,重启发现进不去ubuntu了,一直是黑屏,左上角有个光标不停闪烁。在此,笔者又猜想可能是当初在装ubuntu14.04时,grub的部分程序仅仅被写入了磁盘的mbr中,而没有写入ubuntu分区的pbr(分区引导记录),因此一旦mbr中的grub被修改,就很难通过pbr进入ubuntu了。而笔者曾经在一篇博文中貌似看到过,ubuntu在安装时会把grub的部分程序在mbr和pbr中各拷贝一份,这样的话,通过mbr和pbr均能引导成功ubuntu。不知此猜想是否正确。然后笔者用U盘制作了ubuntu14.04的启动盘,在livecd模式中进行修复,步骤如下:

1.开机u盘启动,进入ubuntu安装程序,图形界面出来后,选择try ubuntu,不要选择install ubuntu。

2.之后便进入了ubuntu的体验环境。

3.打开一个Terminal

执行:sudo -i   (切换成root用户)

fdisk -l    (查看磁盘的分区情况,笔者的/boot目录是单独的分区,大小200M,因此一眼就看出了,分区设备为/dev/sda8)

mkdir /mnt/root    (目录创建在哪里不重要,目的是为了挂载/dev/sda8设备)

    mount /dev/sda8 /mnt/root

gurb-install --boot-directoty=/mnt/root /dev/sda     (安装grub,将其安装在/mnt/root/grub目录下,/dev/sda指示了/mnt/root所在的设备)

至此,会提示no error reported,安装成功。重启电脑后又恢复成了grub来引导。(笔者猜想,在进行grub安装时,又将mbr内容修改为grub的部分程序,才能在开机时出现grub的引导界面)

在grub的引导界面中,有多个启动项可供选择,其中第一个启动项是ubuntu,最后一个是win7启动项。笔者选择ubuntu,可以正常进入ubuntu中;选择win7时,又会出现win7的启动项选择界面(grub加载了win7所在分区的引导程序pbr),该界面有两个启动项,win7和ubuntu(该ubuntu启动项是以前用easyBCD设置的),此时再选择ubuntu的话,依然是黑屏,左上角光标闪烁,进不去系统。因此,笔者分析,上边的第二个猜想是错的,应该不是ubuntu所在分区的pbr没有被写入的原因,因为grub已经被修复了,grub部分程序一定被写入pbr中了,却还是进不去ubuntu系统。笔者大胆猜想,ubuntu14.04作为最新版的系统,会不会是grub版本的问题,于是在easyBCD中,重新制作ubuntu启动项,类型选择为第二项GRUB 2,结果重启后果然出现了grub的启动界面(说明了ubuntu分区的pbr中存放了grub的部分程序,启动顺序:开机,bois,mbr(grub部分程序),加载ubuntu分区的grub程序,grub启动项选择界面,选择win7,加载win7所在分区的pbr,读取bcd表,win的启动项选择界面,选择Ubuntu,加载ubuntu分区的pbr(grub部分程序 ,和mbr中内容相同,此处就用到了bpr,可见其并不多余),加载ubuntu分区的grub程序,grub启动项界面。绕了这么一大圈是为了证明笔者猜想),成功了。如下图:

在此,笔者大胆总结下,在安装win+ubuntu双系统时,其实无所谓安装顺序,大不了后安装的系统的引导程序覆盖掉了mbr,将启动界面变为了后安装系统的启动项。我们只要加以修复即可。如果后安装win的话,win的loadboot覆盖掉了mbr,没关系,我们进入win后,在easyBCD中设置一下ubuntu的启动项,驱动器选择ubuntu被安装的分区,类型选择时要小心,根据ubuntu的版本高低,选择第一项GRUB(legacy)或者第二项GRUB 2,高版本的话选第二项(此处如果选择不合适的话,照样无法启动ubuntu系统,会出现黑屏并且左上角光标闪烁的现象);如果后安装ubuntu的话,grub部分程序将覆盖掉mbr,这样更好,grub的启动界面上最后一项已经帮我们把win7的启动项自动添加上了,直接选择就可进入win。

ubuntu14.04修复启动项的更多相关文章

  1. Ubuntu14.04+ROS 启动本地摄像头

    STEP1安装usb_cam 创建一个工作空间,make一下 mkdir  -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make STEP2下面是安装usb_c ...

  2. nginx(二)----ubuntu14.04下启动或重启和关闭nginx

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 *转载请注明出处 */ 一.启动 /usr/local/nginx/sbin/nginx或者cd /usr/ ...

  3. Caffe搭建:Ubuntu14.04 + CUDA7.0 + opencv3.0 + Matlab2014A

    从Hinton在science上发表深度学习训练开创新的文章以来,深度学习火了整整有3年多,而且随着新的硬件和算法的提出,深度学习正在应用于越来越多的领域,发挥其算法的优势. 实验室并没有赶上第一波深 ...

  4. Ubuntu14.04 dd命令克隆系统镜像安装到另一台机器上

    linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.当拷贝完硬盘后,就可以拿这个硬盘放到其它设备上跑了.也就是完成了“烧写”了. 用U盘 ...

  5. Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

    嗯 这个方法我暂时弄不出来,用了另外一个方法:SLAM14讲 第一次课 使用摄像头或视频运行 ORB-SLAM2 前面的准备: Ubuntu14.04安装 ROS 安装步骤和问题总结 Ubuntu14 ...

  6. Ubuntu14.04、win7双系统如何设置win7为默认启动项

    Ubuntu14.04.win7双系统如何设置win7为默认启动项 Ubuntu14.04.win7双系统设置win7为默认启动项方法: 在启动项选择菜单处记住windows 7对应的序号. 从上至下 ...

  7. ubuntu 14.04.02 LTS 启动项误写入 /dev/sda1 (win 7 loader) 修复

    问题描述: 在win7下安装Ubuntu14.04,由于启动项 /boot loader 安装位置错误(/dev/sda1 (win 7 loader) )导致无法进入Windows(在GRUB界面能 ...

  8. win7 ubuntu10.04双系统,重装win7后,修复双启动项

    进入ubuntu的liveCD(即在试用ubuntu里),在终端里操作 首先要找到自己的ubuntu系统挂载在那个sda下面.可以用sudo fdisk -l 这个命令.然后: 1. sudo -i ...

  9. windows和ubuntu14.04双系统设置默认启动项

    首先开机或者重启,在启动项选择菜单处记住win7对应的序号,从上至下的序号从0开始计数,我的win7系统选项处于第5个,那么序号就应该是4,记住后,打开ubuntu系统. 2 按下Ctrl+alt+T ...

随机推荐

  1. RPC 原理的前生今世

    (如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 在校期间大家都写过不少程序, ...

  2. svn服务器及客户端安装使用

    一.服务器安装: 1.yum install subversion   2.输入rpm -ql subversion查看安装位置,如下图:   我们知道svn在bin目录下生成了几个二进制文件. 输入 ...

  3. 使用C#开发ActiveX控件(新) 转 http://www.cnblogs.com/yilin/p/csharp-activex.html

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  4. JavaScript —— 对象的取值与赋值

    可能是因为用惯了 Java ,对一个对象取值/赋值喜欢用 setXXX() 和 getXXX() . 在 JavaScript 中使用 setValue() 时,遇到了个奇怪的问题,所以查了下 Jav ...

  5. python lambda函数详细解析(面试经常遇到)

    1 作用:通常是用来在python中创建匿名函数的 2 格式: lambda 参数[,参数] : 表达式 3 注意: (1)lambda定义的是单行函数, 如果需要复杂的函数,应该定义普通函数 (2) ...

  6. [HDOJ4325]Flowers(树状数组 离散化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4325 关于离散化的简介:http://blog.csdn.net/gokou_ruri/article ...

  7. Hadoop集群(第10期)_MapReduce与MySQL交互

    2.MapReduce与MySQL交互 MapReduce技术推出后,曾遭到关系数据库研究者的挑剔和批评,认为MapReduce不具备有类似于关系数据库中的结构化数据存储和处理能力.为此,Google ...

  8. 浅谈网络爬虫爬js动态加载网页(二)

    没错,最后我还是使用了Selenium,去实现上一篇我所说的问题,别的没有试,只试了一下firefox的引擎,总体效果对我来说还是可以接受的. 继续昨天的话题,既然要实现上篇所说的问题,那么就需要一个 ...

  9. HTML元素margin、padding的默认值

    HTML元素margin.padding的默认值 element margin(单位像素) padding html 0 0 body 8 0 div 0 0 h1 21 0 h2 19 0 19 0 ...

  10. noSession or session is close 错误

    <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>or ...