Dual boot linux and windows with windows boot manager — Windows Vista and Windows 7

They are many documents on the web for doing that. However most of them needs to have an installed linux based system to do that. Installing linux without destruction your harddisk is possible for years. I assume that you have windows installed. Here is the walkthrough to do that.

  1. Allocate space for linux partition. The main partition for linux has to be primary partition just like your windows partition. You might need a partition tool to resize and change partition type to do that operation.
  2. Install linux on the partition that you have just created. On the installation screens, for the boot loader, select the partition itself as the partition (don’t select mbr). When the installation has finished, your computer restarts and windows will be restarted. Don’t be afraid linux is somewhere in your disk.
  3. You need dd for windows to set linux to the boot manager.
  4. Extract the contents of dd in a folder and run
    dd --list

    D:\Tools\dd>dd –list
    rawwrite dd for windows version 0.3.
    Written by John Newbigin
    This program is covered by the GPL. See copying.txt for details
    Win32 Available Volume Information
    \\.\Volume{c5d941f0-8093-11da-b7d7-806d6172696f}\
    link to \\?\Device\HarddiskVolume1
    fixed media
    Mounted on c:\
    \\.\Volume{c5d941f1-8093-11da-b7d7-806d6172696f}\
    link to \\?\Device\HarddiskVolume3
    fixed media
    Mounted on d:\
    \\.\Volume{5c5aa360-7406-11da-b7c2-806d6172696f}\
    link to \\?\Device\CdRom0
    CD-ROM
    Mounted on e:\
    \\.\Volume{23c0e842-75dd-11da-a45d-000e3536c876}\
    link to \\?\Device\CdRom1
    CD-ROM
    Mounted on x:\
    NT Block Device Objects
    \\?\Device\CdRom0
    \\?\Device\CdRom1
    \\?\Device\Harddisk0\Partition0
    link to \\?\Device\Harddisk0\DR0
    Fixed hard disk media. Block size = 512
    \\?\Device\Harddisk0\Partition1
    link to \\?\Device\HarddiskVolume1
    \\?\Device\Harddisk0\Partition2
    link to \\?\Device\HarddiskVolume2
    Fixed hard disk media. Block size = 512
    \\?\Device\Harddisk0\Partition3
    link to \\?\Device\HarddiskVolume3
    \\?\Device\Harddisk0\Partition4
    link to \\?\Device\HarddiskVolume4
    Fixed hard disk media. Block size = 512


    to find the linux partition.

  5. Once you think you’ve found it just use this command to generate the boot file.
    dd if=\\?\Device\HarddiskVolume2 of=linux.boot bs=512 count=1

    D:\Tools\dd>dd if=\\?\Device\HarddiskVolume2 of=linux.bot bs=512 count=1
    rawwrite dd for windows version 0.3.
    Written by John Newbigin
    This program is covered by the GPL. See copying.txt for details
    1+0 records in
    1+0 records out

    Here Partition2 is the linux partition. You need to feel that from the dd –list output

  6. Move the generated file to the root C:
  7. Then add
    C:\LINUX.BOOT="Linux"

    to boot.ini file.

Vista Update

The above process is still working for Windows Vista beside boot.ini file. Instead we need to bcdedit to add the new entry.

Run cmd and execute the following commands to add the linux entry

bcdedit /create /d “Linux” /application BOOTSECTOR
bcdedit /set {LinuxID} device boot
bcdedit /set {LinuxID} PATH \LINUX.BOOT
bcdedit /displayorder {LinuxID} /addlast
bcdedit /timeout 5

Here you are you have used windows boot manager to do that inside windows.

13 Comments

  1. Pinguino says:

    What do you mean by {Linux ID}? What do we put there?

    Are we supposed to change “device” to anything?

    “path”?

  2. Singularity says:

    {Linux ID}? is the id that returns from the first bcdedit create command

  3. [...] Cyber Tech Help Support Forums wrote an interesting post today on Can Erten " Blog Archive " Dual boot linux and windows with windows…Here’s a quick excerpt [...]

  4. Pierre Gd says:

    How do we use DD for windows?!? I try to write something and then when I press enter, it repeat the same line I typed… What’s the problem ?

  5. Falcon006 says:

    It should look something like this.

    C:\Users\Falcon>bcdedit /create /d "Linux" /application BOOTSECTOR

    The entry {27385c40-b336-11dc-a4e7-9b7501ef3253} was successfully created.

    C:\Users\Falcon>bcdedit /set {27385c40-b336-11dc-a4e7-9b7501ef3253} device boot
    The operation completed successfully.

    C:\Users\Falcon>bcdedit /set {27385c40-b336-11dc-a4e7-9b7501ef3253} PATH c:\linu
    x2.b

    The operation completed successfully.

    C:\Users\Falcon>bcdedit /displayorder {27385c40-b336-11dc-a4e7-9b7501ef3253} /ad
    dlast

    The operation completed successfully.

    C:\Users\Falcon>bcdedit /timeout 5
    The operation completed successfully.

    run bcdedit one more time to check if it was entered.
    C:\Users\Falcon>bcdedit

    You should get something like this.

    Real-mode Boot Sector
    ———————
    identifier {27385c40-b336-11dc-a4e7-9b7501ef3253}
    device boot
    path c:\linux2.b
    description Linux

  6. Falcon006 says:

    I lied, that didn’t work.

    You needed to change two things.

    bcdedit /set {ID} device Partation=c:

    and

    bcdedit /set {ID} PATH \linux2.b

    My dump looks like this now.

    Real-mode Boot Sector
    ———————
    identifier {27385c40-b336-11dc-a4e7-9b7501ef3253}
    device partition=C:
    path \linux2.b
    description Linux

    I sure miss boot.ini. Microsoft can’t write a parser anymore? Such crap.

  7. fstyle.de says:

    Install Ubuntu without GRUB using Vista Bootmanager…

    I am aware that this article is a mess! It’s been created in a hurry.

    Maybe with time I’ll be able to format it correctly and order things a litlle.

    This is the big Tutorial for it:
    Link to the original tutorial.

    Problem to solve: Install …

  8. Ilya says:

    Thanks a lot! Very useful.

  9. [...] Use Windows Boot Manager to boot to Linux This goes back to the fact that Windows does not play nice with others – and the fact that I seem to have a non-booting somthing under GRUB rather frequently. During the Ubuntu setup, there is a point where you are asked to confirm the details of your installation – and an “Advanced” button. THis button gives you an option to install GRUB somewhere other than the MBR – so, as I had just specified Linux be installed on SDA1, I used (hd0,0) for GRUB – specifying a partition, not a disk. Windows Boot Manager is pointed to that disk, and you have a solution that keeps getting you into windows no matter how many times you “broke” Linux. [...]

  10. [...] directly. With Windows Vista, the process for adding an entry to the boot menu has changed. Follow these directions to add a Linux entry to the boot menu. Don’t follow the main directions; look at [...]

  11. ubestos says:

    Hi,

    all works fine for me to create Real time bootsector, but my question is, how can I delete that entry(the ubuntu) later?

    thanks :)

  12. Can says:

    Hi, similar way. If it’s the boot.ini file you will just delete it from there. If it’s bcdedit, you will use
    bcdedit /delete {id}
    in that case id will be the new entry id. You could get the id of anything by just listing the entries with
    bcdedit /enum all /v

    Hope this helps.

Leave a Reply