恢复Ubuntu15.04和Windows 7双系统启动项简记

时间:2021-08-07 20:29:09

声明

郑重声明:博文为原创内容,可以转载或引用,但须在明显位置标明原文作者和出处,未经同意不得擅自修改本文内容!博客地址:http://blog.csdn.net/luzhenrong45


原来的电脑里面有3块硬盘,装了Win7和Ubuntu15.04双系统,Win7是装在固态硬盘(120G)上的,Ubuntu是从一块2000G的机械硬盘划出500G空间来安装的,还有一块1000G的硬盘专门放文件的。

最近Windows系统出了异常,启动不了,于是一怒之下重装了Win7。结果发现重装之后,Ubuntu启动项不见了,以前通过EasyBCD是可以恢复回来的,现在试了一直不行。于是各种搜索,后来发现有一种方法是可用的,网上也大多是使用这种方法来恢复启动项,但是,有一些细节还是要注意的,否则也是无济于事。

特此记录一下启程:

1. 制作Ubuntu启动盘,可以是光盘,也可以是U盘

首先到Ubuntu或其他网站下载Ubuntu安装镜像(iso格式),比如我这里下载的是 ubuntu-15.04-desktop-amd64.iso

2. 将ubuntu安装镜像刻录到U盘上

下载Win32DiskImager,使用Win32DiskImager将ubuntu安装镜像刻录到U盘上(使用方法很简单,自行搜索一下)

3. 插入U盘,开机选择U盘启动

电脑开机选择U盘启动,进入Ubuntu系统,选择 “试用模式”

4. 确定ubuntu的安装分区

按 CTRL+ALT+T 进入命令行模式,执行以下命令:

sudo -i (临时切换到root权限)

fdisk -l (查看电脑分区)

通过 fdisk -l 命令可以看到我的电脑各个分区的情况,查看有Linux关键字的各个分区,像我的电脑,Linux分区分别为:
/dev/sdc8,/dev/sdc9,/dev/sdc10,/dev/sdc11,按照之前我安装Ubuntu系统的分区,可确定如下对应关系:

/dev/sdc8 ---> /boot 分区 
/dev/sdc9 ---> / 分区
/dev/sdc10 ---> /home 分区
/dev/sdc11 ---> swap 分区

注意:如果安装Ubuntu的时候是选择默认配置安装的,一般只有两个分区,即根分区(/)和交换分区。其中根分区会包含boot目录和home目录。

这里就有一个地方需要注意了:网上绝大多数教程说到的“找到Ubuntu安装分区,然后将该安装分区挂载到/mnt目录下”,由于大多数人的都是默认分区方案,只有两个ubuntu分区,因此比较容易确认哪个是安装分区。

而我的电脑在安装的时候,是自己分区各个分区的,那么,这里说的“安装分区”具体指哪个分区呢?boot? home? 还是根分区?

答案是 boot启动文件目录所在的分区,具体到像我的电脑这种情况,就是boot分区,而不是网上大多数人说的根分区(因为他们的boot目录就是在根分区的,而我的是独立分区的)。

因此,对boot分区进行挂载:

mount /dev/sdc8 /mnt

5. 重装安装grub

grub-install --root-directory=/mnt /dev/sdc

网上绝大多数教程都是介绍按以上命令进行grub的安装,可我的试了就是不行!
这里还是一些细节也是要注意一下:

  • –root-directory在ubuntu较新的版本已经不再适用,而是改用–boot-directory (我的ubuntu系统版本是15.04)

  • 最后面的参数 /dev/sdc 指的是grub的安装位置,我一直以为是Ubuntu所在的硬盘,即/dev/sdc,但试了一直不行。后面改成 /dev/sdb(即win7系统所有的硬盘),重新开机,ubuntu引导项竟奇迹般出现了!

所以,针对我的电脑,最终有效的命令为:

grub-install --boot-directory=/mnt /dev/sdb

对于为什么不能是 /dev/sdc(ubuntu本身所在的硬盘),我这里也不太理解,这里暂时做个记录吧。

6. 修改启动项默认顺序

电脑开机,会有好几个启动项,经过以上修改,默认启动的是Ubuntu,则不是Windows 7, 如果想修改为默认Windows 7启动。需要进入ubuntu系统,修改以下文件:/boot/grub/grub.cfg( 系统根据/etc/default/grub生成),将Windows 7的选项菜单移动到最上面。因为当前配置为第一个选项(GRUB_DEFAULT=0)为默认启动项。

ps: 如果执行了 update-grub, /boot/grub/grub.cfg会被重新覆盖掉的。因此,如果不想反复改/boot/grub/grub.cfg,也可以修改 /etc/default/grub 文件里的“GRUB_DEFAULT”字段,比如在/boot/grub/grub.cfg中,windows 7系统是第5个菜单,则将“GRUB_DEFAULT=0” 改为 “GRUB_DEFAULT=4”即可。

修改启动项默认顺序这一块,网上有许多资料,自行搜索即可。