The Moose Moose

Moose Tail

Dual booting Linux without changing your Windows disk

Friday 1st July 2011 - By The Moose

I have been mucking around with Linux for ages now, mainly Ubuntu.  Unfortunately I have been hampered by having a rubbish computer to run it on, zero Linux experience and the fact that using Linux drives me round the twist.  I mean, what is the point in having a GUI if getting anything done requires the command line?

Still, I was using Ubuntu for a couple of years and was starting to think it was getting better when Canonical went and did something stupid.  I tried their new-fangled dock thing.  I decided the reason I didn't get it was probably because I'm so old and crusty, maybe all the kids are into this UI.  I tried asking some - they said "Nope, that sucks."

So I nuked the box and tried something else.  I tried Fedora but I've been using apt-get for too long now.  Learning a whole new set of package names was not an option.  I went hunting for new Debian builds.  I tried Lubuntu, Xubuntu, Bodhi, CrunchBang and Debian its self.  I couldn't find anything I really liked.  Finally I remembered reading about Linux Mint.  I tried it, it took a bit of getting used to but I'm hooked.  So, why did I spend so long running Ubuntu?

Unfortunately by this time I'd formatted my old box and reinstalled XP.  I had a nice and useful set of apps on it.  I didn't want to risk damage to my setup.

I added a second hard drive and installed Mint on it with very little problem.  I had to do the partitioning manually but at least I was sure the Windows drive would be untouched.  Then I went looking for a way to make BOOT.INI pass control to my second hard drive.  Yes, I could have swapped the two drives around and then used Grub to remap the drive numbers for Windows' benifit but that seemed a bit more of a bodge than the answer I found.

I tried dumping my second drives boot sector using both dd and bootpart you see this suggested in various locations around the Internet but this method really doesn't seem to work.  GRUB4DOS on the other hand works beautifully and my XP drive remains almost entirely untouched.

How to multi-boot Windows without changing your boot disk

The method is to make NTLDR call GRUB4DOS which calls GRUB on the Linux drive.  This is called chainloading and takes next to no time.  Yes it sounds tortuous but these are all tiny little programmes that load in a fraction of a second.  You won’t notice it happening.

  • Download the latest GRUB4DOS zip file from SourceForge.  It is dated 2009 but don't worry it works fine.  The archive is rather smaller than 1MB.
  • Extract the file grldr (no extension) from the archive.  You don't need anyof the other stuff.  The one I'm using is 213kB.
  • Stick grldr into the root of C: next to ntldr and boot.ini.
  • Make a new file in the root of C:  Call it "menu.lst"  Edit it in a text editor and add the following text
    # Pass control to second HD
    # Some options
    color blue/green yellow/red white/magenta white/magenta
    timeout 0
    default /default
    # Chainload second HD
    title Linux (hd1)
    chainloader (hd1)+1
    rootnoverify (hd1)
  • Finally, one tiny change to your Windows configuration - add this text to a new line at the end of boot.ini.

Job's a good'un.  It works and my Windows installation is practically untouched.