使用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 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修改。