Unix Tools
unix tutorials, unix security, unix help

 

Dual Boot Windows and Linux:
Single and Multiple Hard Drives  

by David Picella


Copyright 2005 Majella.us

The internet is full of technical articles, many of which are way too complicated for the average computer user who just wants to solve a simple problem. If you pay close attention, the internet is also a place where the "gurus" spend a lot of time yelling for help in discussion boards and forums. So don't feel bad, nobody has all the answers.

So you want to dual boot Windows and Linux on the same computer--it is really quite easy. I only have enough room here to tell you the most common way to do this on a single hard drive or using multiple hard drives. Obviously then, there are many ways to get the job done, but there are some critical things you should know. Let's start with some critical information.

Windows and Linux: Same Hard Drive

The windows operating system MUST occupy the master boot record (MBR). Linux, on the other hand does not have to. In this scenario, you must install windows first! After Windows has been successfully installed, then you can install Linux. This is critical! The Linux "boot loader" is called GRUB. When you install Linux--MAKE SURE YOU DO NOT INSTALL THE LINUX BOOT LOADER TO THE MBR.

Configure the Windows Boot Loader: A Two Step Process It is also possible to use GRUB to dual boot Windows and Linux on the same drive but this is a bit more complex--the Windows boot loader will get the job done. In the following commands, you will create a copy of the Linux boot sector and then save it in a file in the top level directory under Windows (C:).

Step 1: Linux From the shell in your Linux installation (boot from your installation disks): Execute the following shell command, replacing /dev/hda3 with the location of your Linux boot partition.

shell# dd if=/dev/hda3 of=/bootsect.lnx bs=512 count=1

Copy the new file--bootsect.lnx--to a floppy disk and reboot to Windows.

Step 2: Windows Copy bootsect.lnx to C: in Windows. Then execute the following command at the DOS prompt.

C:> attrib -H -R -S boot.ini

Edit boot.ini so that the first two lines are:

[boot loader] timeout=30

After the last line, add:

c:bootsect.lnx="Start Linux"

That's it, you are done! Reboot your machine and you will see a menu allowing you to select either Windows or Linux. Congratulations.

Windows and Linux: Two Hard Drives This is also quite easy. In this case, you will boot to the Linux drive. We will add Windows to the Linux boot loader (i.e., GRUB). GRUB is my favorite boot loader.

Edit the /boot/grub/grub.conf file. One of the very first lines should contain:

timeout=30

After the last line add:

title Start Windows map (hd1) (hd0) map (hd0) (hd1) rootnoverify (hd1,0) makeactive chainloader +1

Reboot your machine to the Linux drive and you will see a menu allowing you to select between Linux or Windows. Nice work!

This article is obviously short and does not include any explanations of how these commands work. There are variations on what I have shown here depending on your hardware setup, but I believe that these are the most common and should get the job done nicely. I would be happy to direct you to additional resources if this does not work for you.

About the Author

David Picella is a Family Nurse Practitioner and PhD Student at UW Milwaukee. You can find additional technichal resources for this article in the technology section at: http://www.majella.us/