Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have Vista and Windows 8 installed each on a primary partition and use Grub as boot manager. The problem is that Grub can no longer directly boot into Vista after the installation of Windows 8, as Windows 8 overwrites the Vista boot manager with it's own, which on top has the nasty habit of requiring an additional reboot before going into Vista (i.e. Grub -> WindowsBoot -> reboot -> Grub again -> Vista). Restoring the Vista boot manager isn't hard, but it wouldn't help, as the Windows 8 partition itself isn't bootable on it's own.

How can I configure it so that I can boot right into Vista and Windows 8 from Grub without having to use the Windows boot manager?

Edit: To clarify it a bit, what I want is simply: Vista bootmgr on the Vista partition, Windows 8 bootmgr on the Windows 8 partition and Grub in the MBR to select which one to boot.

Edit2: A partial answer can be found at:

With that I managed to get a somewhat working configuration (copied c:\boot over to drive e:, fudged around with bcdedit.exe to set some drives from c: to e:). Still have some remaining trouble such as Vista refusing to skip the boot menu automatically and Vista booting from the Windows 8 BCD and vice versa for some reason.

share|improve this question
I don't think it's possible for Grub to directly boot a Windows volume. I believe Grub boots the Windows volume's bootloader, which then boots the Windows system. For what you want to work, you'd probably have to ensure that the Vista volume has the Vista bootloader, and the Windows 8 volume has the Windows 8 bootloader. – Huskehn Jul 14 '12 at 3:34
The problem isn't using the Windows bootloader itself, that's fine, but not being able to generate separate Grub entries for both Windows partitions, as the Windows 8 partition isn't bootable by default and the Vista partition get's the annoying Windows 8 bootloader. There should be some bcdedit/bootsect magic to fix that and make the Win8 partition bootable itself and restore the Vista bootloader to the Vista partition, just haven't figured out how yet. – Grumbel Jul 14 '12 at 8:33
I think this is to do with Windows 8 changing the game completely with its UEFI implementation. – user3463 Jul 14 '12 at 20:08
It's not really Windows 8 specific, as the whole BCD stuff seems to work pretty much the same as in Vista and the same problems would probably happen just the same with Windows 7 or two copies of Vista. – Grumbel Jul 14 '12 at 20:39
up vote 2 down vote accepted

First step, install Vista, Windows 8 and Linux as usual. Windows 8 will install it's boot manager on the Vista partition, thus destroying the Vista bootloader.

Second step, copy the C:\Boot\ directory from the Vista to the Windows 8 partition, so the Windows 8 boot loader is where it belongs. This might need to be done from within Linux or the Windows recovery console, as Windows keeps a lock on some of the files.

Third step, use bcdedit to let the Windows 8 boot manager point to the Windows 8 partition, instead of the Vista one:

bcdedit.exe /store E:\boot\bcd /set {bootmgr} device partition=E:

This might need to be done from a Windows Installation disc in recovery mode.

Fourth step, boot with the Windows recovery disc and let it repair the Windows Vista boot or do it manually with:

bootrec /fixboot

The Windows Vista and Windows 8 boot loaders should now be each on their own partition where they belong.

To get rid of the boot menu one has to delete the Windows 8 menu entries from the Vista BCD and the Vista entry from the Windows 8 BCD, as timeout 0 and displaybootmenu No don't seem to work on their own. This can be done easily with EasyBCD.

Another thing to keep in mind, most of the Windows boot fix tools will work only on the partition with the boot flag set and do not allow to operate on a different partition. Thus one needs to ensure with cfdisk that the boot flag is set for the proper partition. This caused most of my confusion in the process, as even tools like EasyBCD would constantly try to operate on the wrong drive (i.e. the Windows 8 partition was marked bootable, needed to reset that to the first partition).

If everything is done update-grub should properly detect both Windows partitions and be able to boot into each directly without the Windows boot menu.

share|improve this answer
Took me a bit to get it to work right (using Windows 7, Windows 8, and Ubuntu), but following the instructions in this post got it working smoothly. EasyBCD allows you to edit BCD files on other partitions, so the boot flag wasn't a big deal. It also took a while, cause booting off of windows disks and ubuntu install jump drives took 5-10 minutes per reboot, but wasn't much actual effort. I would +2 this post if I could. – CoatedMoose Mar 18 '13 at 4:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .