This tutorial is for people who have Vista and Windows 7 installed and would like to be able to boot both directly from the Grub menu. (The same tutorial works if you have two installations of Vista or two installation of Windows 7, but it does not work for XP). The tutorial assumes that you are able to boot into Vista and Windows 7 via the Windows Boot Menu.
In the following I will refer to the two Windows installation by WinA and WinB. WinA refers to one which has the boot loader "bootmgr". "bootmgr" is a hidden system file in the root directory, or C:\, of one of your two Windows installations. In most cases WinA will be the one which was installed first.
[SIZE="4"][COLOR=blue] Boot into WinA[/COLOR][/SIZE]
Step 1 Edit the WinA boot loader, so that it also will work on the WinB partition:
Go to "Start". Type "cmd" and press "Ctrl+Shift+Enter". This will open a command line as an administrator. (If this did not open the command line: Go to Start->Program Files->Accessories, Right Click "Command Prompt", Choose "Run as administrator")
Type
bcdedit /set {bootmgr} device boot
[SIZE="4"][COLOR=blue] Boot into Ubuntu.[/COLOR][/SIZE] and open a terminal (Applications->Accessories->Terminal)
Step 2 Add WinB to "menu.lst":
Open menu.lst via
gksudo gedit /boot/grub/menu.lst
The existing entry for Windows will be used for booting into WinA. Add a similar entry for WinB. If you need help with this, post the output of "sudo fdisk -lu" and the current Windows entry.
Step 3 Copy the boot files from WinA to WinB
Type
sudo fdisk -lu
and determine the device names of the WinA and WinB partitions. In the following I assume that WinA is on /dev/sda1 and WinB is on /dev/sda2.
sudo mkdir /mnt/Win{A,B}
sudo mount /dev/sda1 /mnt/WinA
sudo mount /dev/sda2 /mnt/WinB
sudo cp /mnt/Win{A,B}/bootmgr
sudo cp -R /mnt/Win{A,B}/Boot
Of course you need to replace /dev/sda1 by the device name of the WinA partition and /dev/sda2 by the device name of the WinB partition. Sometimes the directory Boot is called BOOT instead. Use "ls -l /mnt/WinA" the determine the correct spelling.
Step 4 Edit the WinA boot loader, so that it boots directly into WinA
Reboot. Choose the WinA entry at the Grub menu. The WinA boot menu will appear. Boot into WinA. Open the WinA command line as in Step 1 and type
bcdedit /set {bootmgr} default {current}
bcdedit /set {bootmgr} timeout 0
Step 5 Edit the WinB boot loader, so that it boots directly into WinB
Reboot.
Choose the WinB entry at the Grub menu. The WinB boot menu will appear. Boot into WinB. Open the WinB command line as in Step 1 and type
bcdedit /set {bootmgr} default {current}
bcdedit /set {bootmgr} timeout 0
From now on if you pick WinA at the Grub menu you should boot directly into WinA , and the same for WinB.
Here is a thread where this method was used sucessfully: