Windows Linux DualBoot Tutorial

This tutorial was written to help set up a dual boot on a SATA drive but it will also work for PATA so continue forward and I will let you know if you need to skip something. In order to have a fully functional dual boot system it is preferred that Windows be loaded first. After that you can load Linux and easily dump the boot configuration on Windows NTLDR file (comparable to Linux boot file).

At least one of the following scenarios exist and that is why you are here reading this tutorial;

  • You have a new Serial HDD (SATA) with no software installed,
  • You have a new Parallel HDD (PATA) with no software installed,
  • You have a HDD with Windows already installed, or
  • You have a HDD with Linux already installed.

I used the following software;

  • Windows 2000 Pro (this tutorial should work for 98 and XP also)
  • SuSe 10

1. Setting Up a New SATA Drive

Note: The most popular Windows platforms, Windows 2000 and Windows XP (pre SP1), were released before and during the release of SATA drives.

In order for Windows to recognize the SATA HDD you will need to get the SATA/Raid drivers and place them on a floppy. These drivers can usually be obtained at the web site of your motherboard manufacturer. Look for Raid drivers (usually the location of the SATA drivers also) in their driver download section. If you can search the site look for TXTSETUP.OEM. You absolutely need this file and it will more than likely be located with the drivers needed. If you are unable to find the drivers needed then see this article for information on integrating installation packs and service packs.

TXTSETUP.OEM is a must! Windows Install uses this file to search for the applicable drivers. Proceed to Install windows.

2. Setting Up a PATA Drive

If this is a brand new drive go ahead and proceed to Install Windows.

If this is an installed hard drive with only Linux loaded, then back up and copy all your configuration files to a floppy, cd, or another drive. After that is done and verified the files were copied you need to clean the hard drive so you can start fresh and load Windows first.

If this is an installed drive with Windows already loaded you need to ensure there is sufficient unpartitioned space for Linux to load on. You have two options.

Note: There is a difference in free space and unpartitioned space. Typically when users load Windows they select the C: drive and the whole drive is formatted to NSTF or FAT. Linux needs unformatted/unpartitioned space to install.

  1. You can do a fresh install of Windows, or
  2. You can free up unpartitioned space if you have a partition program.

If you do not have a partition program there is a free one available called SystemRescueCd that works quite well. If you choose this option you will need to burn SystemRescue to a cd. Once you have done this and boot to the cd you will get this screen.

Enter fb1024 (1024 being the screen resolution setting). The process of setting up the cd files will begin.

The next screen will ask you to enter a keymap preceded by the codes for different languages.

Hit Enter for the system default. The next screen will be the SystemRescueCd command line.

Type run_qtparted and hit Enter. The next screen will ask for mouse type.

Enter the applicable number.

After your mouse selection the screen will change to a split window. The left side will identify the hard drives found and the right side will identify the partitions and free space on the selected drive.

Select the partition you wish to resize and then select Resize from the Menus or the icon tool bar (see cursor point) and follow the prompts.

Once you are done close the window and enter reboot at the SystemRescueCd command line.

3. Install Windows

Hit the power button and start your system. Insert your Windows disk and as soon as the first Setup screen appears hit F6. Note the message at the bottom of this startup screen.

Windows will proceed to load some files then change to a screen offering you the opportunity to install some additional drivers.

Enter S, which will take you to a screen instructing you to insert the floppy in drive A and hit Enter.

Providing you copied the right drivers it will proceed to extract the drivers needed. Once done it will return to the screen offering you the opportunity to load drives. This time you want to select Continue to continue installing Windows.

Eventually you will get to the part of the install where it will show the drive.

You have several options here. You want to select the second option by entering "C" and partition the drive. For Win2K you need a minimum of 340 MB and for Win XP you need a minimum of 1560 MB to load.

Of course you probably want room to load additional software, etc. The partitioning is done in MB so you may have to do some quick calculations keeping in mind there is basically 1024 MB to 1 GB. After you enter your partition size continue with the install.

When the install is done go ahead and reboot. Get all your settings taken care of and updates done then come back here and install Linux.

4. Install Linux

There are Perfect Setup HowTos for various Linux versions at the HowToForge site. I encourage you to use them which is why I will not go into the complete installation of Linux. Be sure to read them first though. These HowTos are typically designed for server systems and you will not need some of the setup after the installation section. Read the HowTo, if you have any questions regarding the HowTo or the linux install please use the HowToForge Forums.

I recommend you use the GRUB boot loader as there is hardly any maintenance involved and it fits in nicely with the Windows MBLR.

Experience has taught me that the Logical Volume Manager (LVM) of Linux partitioning is not very desirable among experienced users and I have had consistent problems when I applied it. To avoid this be sure to Manually partition your drive when asked. The most basic and usable setup is to create a boot (/boot) partition of about 100 MB, a Swap partition of at least twice the size of your RAM, and then a root (/) partition of the remaining space.

Share this page:

4 Comment(s)

Add comment


From: Anonymous at: 2006-03-30 07:14:35

I tried various boot loaders but it you can avoid them if install LINUX last and then make a bootable CD.

1)Change your BIOS to boot from CD
2) Boot the Linux rescue CD
3)Run from the installed Kernal on your hard drive
4)The command: uname -r will return the number of the kernal you are using, ie 123. You need write down this number for the next command.
5) The command: /sbin/mkbootdisk -v --iso --device boot_d.iso 123 creates the file boot_d.iso in the sbin directory (not the best place for it but you can delete it later).
6) Burn the ISO image boot_d.iso to a CD. Restart your computer this should then boot your kernal without a boot loader. Down side(s): you need the cd to boot Linux AND you have to repeat this if you upgrade your kernal, AND you have to hunt down the new kernal number in a different way as uname -r only returns the running kernal number.

This is STILL better than running a bootloader which are hard to remove (LILO) and confuses WINDOWS and its repair programs ie if you fix the MBR with windows you may have 'trouble' getting your Linux to boot.

From: Anonymous at: 2006-04-04 15:41:40

Seems a bit of confusion in the above comment ("better than running a bootloader"). Both Linux and Windows need their bootloaders - you cannot do without them! The suggestion to boot from CD seem (as far as I can see) simply has the Linux bootloader on the CD instead of the HDD. And who said anything about LILO ?!? Does anyone still use LILO? GRUB is the standard Linux boot loader these days.

The problem touched on here is that a Windows install aggressively replaces anything in the MBR (Master boot record, which is on the first track of the HDD and is NOT the boot sector, which is at the start of each partition) by its own boot loader, which will not allow a redirection to GRUB. OTOH, GRUB does allow a redirection to the Windows loader.

My own arrangement is to have the bootstrap part of GRUB in the boot sector of the /boot Linux partition, the bootstrap part of the Windows loader in the boot sector part of the Windows partition, and the OS-neutral SmartBootManager in the MBR. On switching on the PC, SmartBootManager presents a menu that offers booting from any of your OS's on HDD, CD, floppy, reboot, or go to BIOS. (In fact you can tell it to try to boot from the boot sector of any partition in your system.) It then chains to GRUB or the Windows loader, as you choose. Naturally I have both menus defaulting to Linux, so I am normally making coffee through this.

Leave a copy of its installation program (the Linux version in my case) on your drive somewhere. I also keep a copy of the installed SmartBootManager on a floppy. Then, if ever a Windows install blows it out of the HDD MBR, you can restore it in half a minute by booting from that floppy which can then chain to GRUB and hence Linux over the head of Windows. This floppy is the equivalent of our friend's CD (it could be on CD as well), but you don't have to use it every time, only for emergencies.

From: Anonymous at: 2006-03-30 14:45:09

Hi man, you could also mention that if you don't install Windows in the first HD, one day it will refuse to boot. So if you have a PATA and SATA drives, be sure to install Windows in the PATA one.

A demon from NTLDR Hell.

From: Anonymous at: 2006-06-23 00:45:49

Nice article, but it is now 2006 .. how about addressing multi-boot on GFT formatted disks, 32/64-bit EFI, and how the process changes if you wish to use 64-bit Windows/LINUX and other operating systems instead of using the MBR formatted disks.