1. 找到ubuntu的镜像文件

可以从官网http://www.ubuntu.com/上下载镜像文件。(此镜像文件的版本不必和硬盘里装好的ubuntu的版本保持一致,因为它只是用来临时执行的一些linux命令。我的镜像文件为:ubuntu-12.04-dvd-amd64.iso)

2. 把相关文件复制到C盘

将下载的Ubuntu的镜像文件放到C盘的根目录下,然后用虚拟光驱或解压缩软件将iso打开,将casper文件夹目录下的vmlinuz和 initrd.lz复制或解压到C盘根目录下。

3. 用EasyBCD增加系统启动项

下载EasyBCD最新版并安装,然后启动软件:

ecliose添加启动项 easybcd添加启动项_ubuntu

按照上图的序号(随手画的,字比较难看)点击,点到3后出面下面的界面:

ecliose添加启动项 easybcd添加启动项_Ubuntu_02

点击上图红框中的按钮,会用记事本打开一个文件,将如下代码粘贴到文件尾部:

#begin
title Install Ubuntu 11.04
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-12.04-dvd-amd64.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
#end

上面代码的有下划线的部分是可能需要修改的地方。此处的iso文件名一定要和放在C盘的镜像文件的文件名保持一致。

((hd0,0)表示是第0块硬盘的第0个分区,一般就是C盘。如果你的PC是单硬盘的,一般情况下,D盘就是(hd0,1),E盘就是(hd0,2),以此类推。由于我的PC是双硬盘的,C盘在第二块硬盘上,所以改成了(hd1,0)才成功。镜像文件放在C盘的好处就在于,多硬盘的情况下,可以很快地一个个尝试:(hd0,0)、(hd1,0)、(hd2,0)…)

到此,EasyBCD部分就操作完了。

重新启动PC,选择NeoGrub Bootloader启动项,就会进入Ubuntu桌面。

4. 恢复ubuntu引导

进入到ubuntu桌面后,打开终端(快捷键组合是Ctrl+Alt+T);

1)在终端下输入sudo -i(获得管理员权限)

2)在终端下输入fdisk -l(是小写的字母'L',查看盘符列表),会出现类似下面的信息:

Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x907ffc47

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   250066943   125032448    7  HPFS/NTFS/exFAT

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xb60dfb88

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   852219903   426108928    7  HPFS/NTFS/exFAT
/dev/sdb2       852221950   976771071    62274561    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sdb5       852221952   960327679    54052864   83  Linux
/dev/sdb6       960329728   976771071     8220672   82  Linux swap / Solaris

     然后找到ID为83的盘符,根据上面显示的信息可知,当初ubuntu是装在sdb5这个分区。

3)在终端输入 mount /dev/sdb* /mnt (*代表ubuntu系统所在的分区,即上一步显示结果中ID为83的分区号,如上面显示的是在sdb5这个分区,所以输入的是mount /dev/sdb5 /mnt  注意:mount后面有一个空格,sdb5后面也有一个空格,这两个空格千万不要漏掉,否则会报错)

4)上一步结束之后,继续在终端中输入grub-install --root-directory=/mnt /dev/sdb

   等待一会儿,若只出现Installation finished,No Error Reported则表示成功了

   (注意:grub-install之间没有空格,--root前面有一个空格,--root前面是两个'-',/mnt后面有一个空格)

5)到此,ubuntu引导基本恢复,重启电脑后,就可以看到熟悉的ubuntu引导界面了,进入ubuntu系统,打开终端输入

           sudo update-grub

    等待片刻,如果没报错,恢复工作便全部完成了。

(注意:由于我的电脑是双硬盘,原来的Ubuntu在sdb上,所以上述所有命令都用sdb。单硬盘的电脑应该输入以下的命令:

sudo –i

fdisk –l

mount /dev/sda* /mnt

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

参考文献

[1]win7-ubuntu双系统安装教程

[2]重装win7后恢复ubuntu