Dual Boot for Vista Beta 2 and Linux Using BCD

NOTE: Do not do this to any of your production machines – you will make then unusuable!

So here is a way that should work for getting the Vista BootMgr to load Linux or Solaris. Note that I did not yet get this working – this is very much work in progress:

Essentially you install both OSes and boot into Linux. You then start GRUB and install the loader into the partition where Linux lives:

> root (hd1,0)
> setup (hd1,0)

After that, you need to get a copy of the bootsector. Following these instructions from O’Reilly, you need to do this:

dd if=/dev/hdb1 of=/tmp/grub.bin bs=512 count=1

Take the grub.bin and move it to your Vista partition (eg. by USB stick).

On Vista, start a CMD shell (remember to run as administrator!) and copy ntldr, ntconfig.exe, and grub.bin into your C:\ root directory.

You need then to edit boot.ini to reference grub.bin – again, take a look at the O’Reilly article for details.

After this, you need to tell BCD to use the legacy loader and include it in the boot menu:

bcdedit /displayorder {current} {ntldr}

At this point, the Vista boot manager should be able to load Linux. For me, it does not work yet. If you get this to work, please tell me how… Otherwise stay tuned for more.

For some more information on the bootsector, see:


One thought

  1. Before I installed Vista Beta2, I had XP booting Linux with boot.ini. Upon installation Vista automatically added both entries I had in boot.ini to its new boot manager. Funny enough, bcdedit does not list the Linux entry when I run the command in a cmd prompt. It does show up at boot time though. I was trying to make Linux default at boot time, and I haven’t figured out how since it’s not listed in bcdedit.

Leave a Reply

Your email address will not be published. Required fields are marked *