首先,本文采用的全部是手动制作引导的方式,没有使用第3方的EasyBCD等软件实现Win7的NT6.x引导ubuntu12.04系统。

 本文讨论也是单独分区安装ubuntu12.04系统,不是虚拟机安装和wubi安装的引导。

  一、新安装ubuntu12.04后在NT6.x下添加引导菜单
1、ubuntu的安装需要注意:不要把grub2的引导菜单安装在sda上。而是安装在当前根分区 / 上,否则就是grub引导win7和ubuntu了。

2、要NT6.x能引导ubuntu,需要一个启动文件,这个启动文件就是安装在ubuntu分区的grub2的内容,一般这些内容在ubuntu分区的头512字节。启动文件的制作方式如下: 
A、
在 Ubuntu中制作命令:可以用dd命令很方便地提取出来 (经过实际验证这种方式制作的bin文件准确率不高)
                dd if=/dev/sda2 of=/ubuntu.bin bs=512 count=1

B、在Windows中需要借助工具,我这里用的是WinHex16.6绿色版。(由于在Win下没有进入ubuntu的系统制作的bin文件准确率高)
         下载WinHex,打开WinHex,点击Tools->Open Disk,选择Physical Media中的硬盘,OK。选中Ubuntu分区,点击Edit->Copy Sector->Into New File,保存到C盘根目录,文件名 Ubuntu.bin

 3、添加启动项,并且获得GUID号
     用Win7的安装光盘启动电脑,选择“修复计算机”,进入“故障修复台”。然后Shift+F10调出命令模式。或者进入Win7系统中,
管理员身份运行win7自带的“命令行提示符”,进入后,当前目录应该是“c:\windows\system32”
  A、添加Ubuntu启动项
          bcdedit /create /d “Ubuntu 12.04″ /application bootsector
       此时会返回一个{GUID}号,例如{a97c0b74-ec35-11e1-b2db-f26baba90706}之类的,把你的那个复制下来,以下的{GUID}就用 这个代替
   B、 bcdedit /set {GUID} device partition=C:  (如果操作无法成功,见2-2-B修复办法)
   C、 bcdedit /set {GUID} path \Ubuntu.bin
   D、 bcdedit /displayorder {GUID} /addlast
     至此就可以了,开机你就会发现多出了Ubuntu 12.04的开机菜单了,选择进入可以看到熟悉的grub引导菜单了,在grub引导菜单里面 还会有一个windows X Loder的选项,选择可以返回win7引导菜单。如果你也是选择的Windows引导Ubuntu的话,以上算是一种很完美的了。

二、NT6引导菜单出现错误后的修复

1、开机后没有NT6引导菜单,或无法进入Win7系统
     用win7光盘启动系统,并且进入到“故障修复台”,然后Shift+F10调出命令模式。
     bootrec /fixmbr
(/fixmbr修复mbr, /FixBoot修复启动扇区,/ScanOs检测已安装的win7,/RebuildBc
d重建bcd)

2、Grub2菜单消失,重新安装在根分区
    Grub菜单应该是在NT6菜单中选择了Ubuntu系统后出现的多选项菜单,Grub菜单消失后需要修复,重新安装在根分区 /上,而不是安装在sda上。
    sudo -i
    mount /dev/sda5 /mnt
    grub-install --force --root-director=/mnt /dev/sda5

3、删除或重建NT6的引导菜单
  A、查看NT6的引导菜单      bcdedit /enum
  B、删除NT6的引导菜单      bcdedit /delete {GUID} /cleanup 
    在实际操作中发现,每次建立引导菜单时,通过/create 返回的GUID号会有细微差别,即GUID号第一个字段的最后一个数字,每create一次就加1。{a97c0b74…}中的4会每次加1,我从最开始的4到现在的9了。不过这个无关紧要。但是在删除引导菜单的时候,应该尝试多删除一些可能生成的多余GUID号,否则就会造成后面的bcdedit /set {GUID} device partition=C: 命令无法执行。

4、NT6菜单引导Grub的多选项菜单出现grub rescue错误的修复
     正常情况下NT6菜单中的ubuntu选定并回车以后会出现Grub的多选项菜单,然后选择第一项进入ubuntu系统。但是引导错误可能会出现在2个菜单之间,即NT6引导ubuntu后,出现“grub rescue>”提示,
无法找到Grub菜单进入系统。
    故障在于之前制作的"ubuntu.bin"文件不正确,需要重新提取分区的512字节信息。
   如何在
“grub rescue>”下通过命令,手动调用Grub菜单,将拟文详细说明。

三、补充用EasyBCD软件添加引导的方法
   先下载easybcd最新版本,下载完成并安装后运行之(如下图),先点【Add New Entry】,然后【Linux/BSD】,再然后在Type项点下拉菜单选中【GRUB 2】,最后是点【Add Entry】添加Ubuntu 12.04的菜单。

说明:Name项目里面是可以自己填写的!

 添加完启动菜单后,基本已经完成了,如果你还要调整一下菜单的启动顺序就继续往下看,点【Edit Boot Menu】设置启动菜单,然后在【Default】默认启动项上选择你要设置为默认启动的系统菜单。另外,还可以通过【Up】和【Down】键来调整系统菜单的顺位。第3点就是设置默认系统启动时间,完了再点【Save Settings】保存退出。