Ubuntu+Windows双系统下grub的恢复手记

  • Ubuntu 9.10之前的发行版,使用的是grub,恢复方法如下
    (参考
    http://www.cnblogs.com/nniixl/archive/2008/05/10/1191562.html

使用Ubuntu livecd启动,打开Terminal,在终端下输入:

sudo su
grub

在grub> 提示符后接着输入:
root (hdx,y)
setup (hdx) 

其中hd表示硬盘,格式是(hd硬盘号,分区号) 硬盘号、分区号都是从零开始计算。所以(hd0,0)表示第一个硬盘的第1个分区,(hd0,1)表示第一个硬盘第2个分区,(hd1,4)表示第2个硬盘第5个分区。

root (hdx,y) 这里的(hdx,y) 是/boot 目录所在的分区
(通常情况下也就是ubuntu 系统的根目录所在分区,如果安装时把/boot单独分离出来则需要将其设定为/boot所在分区。)
如果你不知道你把ubuntu 装在第几个分区,可以通过命令 fdisk -l /dev/sd*  查看当前的硬盘分区情况。(注意,-l是小写的L而不是1 ) 

最后在grub->提示符下输入
quit

退出grub,重启即可。

 


 

  • Ubuntu 9.10及Ubuntu 10.04采用的是grub2,恢复grub2的方法如下:

使用Ubuntu livecd启动,打开Terminal,在终端下输入: sudo -i 切换至root权限,

然后通过命令 fdisk -l /dev/sd*  查看当前的硬盘分区情况,例如sda8为ubuntu的根目录所在分区,而sda5为boot所在分区,然后执行:

 

mount /dev/sda8 /mnt

mount /dev/sda5 /mnt/boot (这一步尤为重要,之前我尝试过几次都失败就是因为没有进行这一步操作)

 

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

 

 

 

 

当看见Installation finished.No Error Reported 就表示成功了,但是此时重启只能引导进入ubuntu而不能进入重装后的Windows,因为原来的grub记录的之前的windows版本的信息。因此重启进入Ubuntu, 打开终端:

首先需要安装grub2和grub-pc,即 sudo apt-get install grub2 grub-pc

 

然后重建GRUB列表            sudo update-grub2

重新写入第一分区mbr           sudo grub-install /dev/sda

如果想修改启动顺序,可以修改/boot/grub目录下的grub.cfg文件。这里注意此文件不可写的,可以先运行一下命令

sudo chmod +w /boot/grub/grub.cfg

然后再运行sudo gedit /boot/grub/grub.cfg,就可以修改了,类似于GRUB 1的menu.lst修改。

 

 

你可能感兴趣的:(Ubuntu+Windows双系统下grub的恢复手记)