恢复被win7覆盖的Ubuntu Grub
情景:本本装有Ubuntu 12.04 + Win7 32。重装Win7 64后,Ubuntu启动菜单被覆盖。
恢复的方法有多种,思路都一样。第一步,进入Linux环境;第二步。修改Grub使其重新覆盖windows的MBR。
我使用的方法为easyBCD。
步骤:
在win7上安装easyBCD;打开该软件后如下图:

可以看到只有一个启动项。我们再加一个引导Linux的启动项,如下图:点击添加新条目->NeroGrub->安装。

安装成功后在C盘会看到以下NeoGrub文件和NST文件夹。

重启,选择NeoGrub,然后便能进入grub。
到这里之后,进行下一步操作之前,我们先要明白自己的硬盘分区是什么结构。以我的为例:
右击计算机->管理->磁盘管理,如下图:

(备注:以sd表示磁盘,磁盘0表示为sda,若有磁盘1,则表示为sdb,磁盘2表示为sdc……)
系统保留分区为sda1,C盘系统盘为sda2,DEF三个逻辑分区合起来为一个扩展分区,叫sda3,然后具体的D盘为sda4,E盘为sda5,F盘为sda6,Linux分区为sda7,linux交换空间为sda8。
但是在Ubuntu 下看到的跟这个略为不同:

用fdisk -l命令查看:

可以看见区别么?少了sda4。我在网上查资料,说是linux约定sda1~4为基本分区(主分区+扩展分区),所以不可能把sda4这个称呼给D盘,因为D盘是逻辑分区。
另一个区别是linux把自己的系统分区和交换空间也放在扩展分区里的。
好,说到这里,我们继续恢复Ubuntu Grub的步骤。
通过以上的铺垫,我们知道了Linux系统分区位于sda8。不知道也没关系,一个个分区试也能试出来。
grub> root(hd0,x)
grub> ls 轮换使用上述两个命令,直到看到了linux系统下的文件夹(如lost+found,etc等等),此时的(hd0,x)即是linux分区。另一个区别是linux文件系统格式为ext2(或者ext3、ext4)。windows分区为ntfs。
之前的操作到了重启,选择NeoGrub启动菜单进入grub命令行,用root(hdm,n)命令选择m块硬盘上的n分区。对我的机器来说就是:
grub> root(hd0,)
有同学可能会纳闷了,之前不是说在sda8分区上吗,怎么选择的是(hd0,7)啊。这是因为hd(hard drive)是从0开始计数的,而sda从1开始。从hd0也能看出hd是从0的。hd0就表示你的第一块硬盘。下一步:
grub> kernel /boot/vmlinuz-x.x.x-xx-generic root=/dev/sda
vmlinuz-x.x.x-xx-generic中的x为kernel的版本,可以按Tab键自动补全,也可以用 ls /boot/ 命令查看一下。下一步:
grub> initrd /boot/initrd.img-x.x.x-xx.generic
最后一步:
grub> boot
这样就能进入Ubuntu 了。
进去之后,修改grub,用grub覆盖windows 7的MBR:
$ sudo update-grub
$ sudo grub-install /dev/sda

大功告成,重启。
恢复被win7覆盖的Ubuntu Grub的更多相关文章
- win7/ubuntu双系统下,如何恢复成win7引导及卸载ubuntu
电脑原来是win7系统,后来通过硬盘安装了Ubuntu,同时把Ubuntu设置成了开机引导项(开机时选择操作系统的界面成了紫色背景白色字体的界面),ubuntu引导开机的缺点是将来要卸载Ubuntu时 ...
- win7下安装Ubuntu后进不去win7的解决方法
win7下安装Ubuntu后进不去win7的解决方法 刚刚给同学在win7下安装了Ubuntu16.04,结果在安装完后竟然无法在电脑重启后,找到win7的进入选项. 在网上找了找,都不行!就差点重装 ...
- 【学习总结】win7下安装Ubuntu双系统的日常
参考文献 1 - [双系统中删除linux(win7适用) ] 2 - [win7(32位)U盘安装.卸载ubuntu(64位)双系统] 3 - [Windows下安装Ubuntu 16.04双系统] ...
- sql2000数据库误删除后自行恢复二次覆盖成功恢复
sql2000数据库误删除后自行恢复二次覆盖成功恢复 [数据恢复故障描述] 今天接到一个客户电话,他的速达sql2000数据库,数据库误删除了,关键之前还没有备份过.他就想自己尝试恢复,使用网上下载的 ...
- 怎么安装预装的win8三星笔记本改win7再装Ubuntu问题[zz]
随着科技的高速发展,人们对电脑的要求越来越高,对电脑系统的要求亦是,那些电脑自带的系统,很多时候已经无法满足人们的需求了,而为了满足自己的需求,人们往往会为电脑改装新系统,而本文要和大家一起分享的话题 ...
- win7下安装ubuntu双系统的方法及心得体会(ps:要死好几回的节奏)
1.win7下安装ubuntu系统后,可以很好进入ubuntu系统 但是进不去win7,开机有win7选项,但是选择后不管用 方法思路:各种修复win7的mbr 我的问题是:在winpe中发现,根本看 ...
- t420 win7 硬盘安装ubuntu 10.04 LTS 备忘
http://zhangwen.sinaapp.com/?p=5 t420 win7 硬盘安装ubuntu 10.04 LTS 备忘 发表于 2011 年 10 月 25 日 对ubuntu的新版没有 ...
- win7远程连接ubuntu,出现灰屏解决方法
问题: win7远程虚拟机ubuntu 12.04出现灰色屏幕 打开windows自带的远程桌面连接.输入ubuntu虚拟机的IP地址 可以连接上,输入username和password 点击OK ...
- win7硬盘安装ubuntu双系统——注意项
WIN7 下硬盘安装ubuntu 12.04 博客分类: ubuntu 仅为网络上的资料整理 资料引用:http://www.ctocio.com.cn/35/12325035.shtml htt ...
随机推荐
- c++11: bind用法
原型: template< class R, class F, class... Args > bind( F&& f, Args&&... args ); ...
- ADO.NET笔记——使用通用数据访问
相关知识: 前面所有示例,君是访问特定的数据库(SQL Server),因此注入SqlConnection.SqlCommand.SqlDataReader.SqlDataAdapter等类名都添加了 ...
- linux编程:环境表
每个进程在启动的时候都会收到一张环境表.环境表是由一个字符指针数组组成,每个指针包含一个以NULL结束的字符串的地址,全局变量environ包含了指针数组的地址: extern char **envi ...
- asp.net2.0 国际化
公司业务需要在国外开展了, 因此以前的系统要做多国语言了, 从网上搜集了好多资料, 最后选择了一个比较简单的方案 1. 打开vs2005, 新建网站, 首先在配置文件中添加配置: <syste ...
- 删除所有表数据的sql语句
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable 'ALTER TABLE ? ...
- Python脚本控制的WebDriver 常用操作 <十九> 获取测试对象的状态
下面将使用webdriver来模拟测试中观察测试对象的状态的操作 测试用例场景 在web自动化测试中,我们需要获取测试对象的四种状态 是否显示.使用element.is_displayed()方法: ...
- C# this指针用法
this指针是什么: 这里有一些面向对象编程的概念需要说明:类(Class)的概念和对象(Object)的概念类是对事物概括,也是C#编码时所有代码归属的基本单位:而对象是对类的实例化,也就是C#里n ...
- 用Python作GIS之三:入口程序 - stargui.py
"""gui start file for Space-Time Analysis of Regional Systems#STARS的图形用户界面入口(高级用户可以直接 ...
- Jackson怎样转换这样的字符串? String jsonStr = "{dataType:'Custom',regexp:'t\\d+',msg:'输入不正确'}";
字符串 String jsonStr = "{dataType:'Custom',regexp:'t\\d+',msg:'输入不正确'}"; 实体 package com.asia ...
- java 接口(基础思想一)
我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到 ...