Cyril Voisin (aka Voy) on security

Security is not important. Well... as long as your level of security is high enough!

How to use Windows Vista’s Boot Manager to boot Linux

How to use Windows Vista’s Boot Manager to boot Linux

  • Comments 6
  • Likes

The Web is full of explanations on how to dual boot Windows and Linux using a Linux boot manager like GRUB or LILO. If you want to dual boot Windows Vista and Linux using Windows Vista’s Boot Manager, please read on. I will assume that you already have installed Linux on your machine using GRUB as your boot loader.

 

Step 1 – Install GRUB on the Linux partition (outside of MBR)

As Windows Vista will replace the Master Boot Record (MBR) with its own, we need to relocate GRUB elsewhere by running grub-install with the Linux partition as a parameter.

        On Linux, launch a Terminal with root privileges

•    Find the name of the partition Linux is installed on by running fdisk –l (the partition you’re looking for is the one whose system is Linux, can be  something like /dev/sda1 or /dev/hda1. For the rest of this post, I’ll use /dev/sda1)

•    Install GRUB on the Linux partition by running : grub-install /dev/sda1

 

Step 2 – Get a copy of Linux boot sector

We will need to instruct Windows Boot Manager how to boot correctly Linux using Linux boot sector, which we will extract using dd.

        On Linux, launch a Terminal with root privileges

        Take a copy of Linux boot sector : dd if=/dev/sda1 of=/tmp/linux.bin bs=512 count=1

        Copy linux.bin on a FAT formatted USB key or any storage accessible from Windows Vista

 

Step 3 – Install Windows Vista

 

Step 4 –  Configure dual booting in Windows Vista

We will create an entry for GRUB in Windows Vista boot configuration data store using bcdedit.

        On Windows Vista, launch a command prompt with administrative privileges (by right clicking on cmd and choosing Run as Administrator)

        Copy Linux boot sector on the root of the Windows boot (active) partition, namely the one containing bootmgr. If you don’t know for sure you can use diskpart or diskmgmt.msc to find out which one it is.

        Create an entry for GRUB :

o   bcdedit /create /d “GRUB” /application BOOTSECTOR

o   Note: bcdedit will return an ID for this entry that we will call {LinuxID} below. You will need to replace {LinuxID} by the returned identifier in this step. An example of {LinuxID} is {81ed7925-47ee-11db-bd26-cbb4e160eb27}

        Specify which device hosts a copy of the Linux boot sector

o   bcdedit /set {LinuxID} device boot

        Specify the path to a copy of the Linux boot sector

o   bcdedit /set {LinuxID}  PATH \linux.bin

        Add Linux entry to the displayed menu at boot time

o   bcdedit /displayorder {LinuxID} /addlast

        Let the menu be displayed 10 seconds to allow for OS selection

o   bcdedit /timeout 10

 

I want to thank Pascal Sauliere (http://blogs.technet.com/pascals) and Mathieu Malaise (http://www.microsoft.com/france/securite) for help on Linux/GRUB and for helping research bcdedit options.

Comments
Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment