Multi-boot Windows XP without special software

T

Timothy Daniels

Here's how to boot between two Windows XP
systems without using any special software:


First, Why?

1) Your system hard drive is getting old, and you
want to be prepared for a quick switch-over
to a new system hard drive when the old one
croaks.

2) You have a huge amount of applications
installed, some of which don't play well
together with the other applications - such
Java development kits/Java test servers on
the one hand, and Microsoft's Visual Studio
.NET and other .NET software on the other -
and you want one group of apps installed on
one Win XP system hard drive, and the other
group installed on another Win XP system
hard drive.


In my case, both situations existed, and I wanted
to enable a quick switch between two WinXP Pro systems.


Now, how?

1) Make a byte-for-byte image of your old system
partition on your new hard drive using software
such as Norton Ghost, or PowerQuest Drive Image,
or Acronis True Image, or Future Systems Solutions
Casper XP. (The latter was expressly written
for Windows XP.)

I happened to have each of my two hard drives
connected to a dedicated channel on a PCI
expansion IDE controler card, each jumpered as
Master, and although PowerQuest said that such
a configuration would not be a problem, I could
not get a bootable image until I abandoned Drive
Image 7.0 and 7.01 and went with Drive Image 2002.
Even then, Drive Image 2002 would not work for me
until I put both hard drives on the same channel,
the source jumpered as Master and the destination
as Slave. (I may have had better luck with Drive
Image 7.0 and 7.01 if I had done that originally.)

After you have the image copied to the new hard
drive, re-jumper the new hard drive to Master,
but DO NOT BOOT UP THE NEW HARD DRIVE
UNTIL YOU HAVE ELECTRICALLY DIS-
CONNECTED THE OLD HARD DRIVE FROM
THE SYSTEM - let the new hard drive boot up alone
before re-connecting the old hard drive.


2) Change the boot.ini files on both system hard
drives. If you don't, you may get an error
message saying that file hal.dll is missing or
corrupt. To make the proper changes to boot.ini,
you must know a little about a couple lines in
the boot.ini file, which is found just below the
C: root of the file system. In the boot.ini file
you are interested in the line(s) just after the
line:

[operating systems]


These lines take the form:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Pro" /fastdetect


These lines tell the BIOS where to find the OS.

The parameter after "rdisk" is the drive position
(modulo the number of drives) relative to the High
Priority bootable hard drive in the boot sequence
of the BIOS. The High Priority drive in the boot
sequence is the 1st drive checked by the BIOS for
bootability. If you only have two hard drives
listed in the boot sequence, "0" means "this drive",
and "1" means "the other drive". (I'm not sure
how it works when you have three or more drives
in the boot sequence.)

The parameter after "partition" is the position
(starting with 1) on the hard drive of the part-
ition that contains the operating system. If the
partition is the first partition, it is partition
"1". (PowerQuest says that things go better if
the positions of the partitions containing the
operating systems are the same on both hard drives.)

The character string in quotes is arbitrary, and
you can set them to whatever you feel describes
the contents of the associated partition.

For example, with a BIOS boot sequence that
has as its High Priority hard drive the one that
contains the OLD system, in the boot.ini file
on the old hard drive set one of these lines to
indicate "this HD contains the old system in
its 1st partition", e.g.

...rdisk(0)partition(1)\WINDOWS="old system" /fastdetect

Set the other line to indicate "the other HD
contains the new system in its 1st partition",
e.g.

...rdisk(1)partition(1)\WINDOWS="new system" /fastdetect


In the boot.ini file on the NEW hard drive,
set one of these lines to indicate "this HD
contains the new system in its 1st partition",
e.g.

...rdisk(0)partition(1)\WINDOWS="new system" \fastdetect

and the other line to indicate "the other HD
contains the old system in its 1st partion".

...rdisk(1)partition(1)\WINDOWS="old system" \fastdetect


3) Choose between the two methods of OS selection
at boot-up:

A) OS selection by BIOS boot sequence

If you want to delve into the BIOS to switch
between operating systems (i.e. which hard
drive boots), make the 1st "operating systems"
line on each hard drive's boot.ini file be the
one that refers to the OS on that hard drive.
Comment out the 2nd line by putting it between
brackets. For example, on the OLD hard drive's
boot.ini file, include the lines:

[operating systems]
...rdisk(0)partition(1)\WINDOWS="old system" /fastdetect
[...rdisk( etc. )...]


On the NEW hard drive's boot.ini file,
include the lines:

[operating systems]
...rdisk(0)partition(1)\WINDOWS="new system" /fastdetect
[...rdisk( etc. )...]


To switch between operating systems, do
a Restart, then enter the BIOS set-up
(on Dell computers, press Del), and put the
name (assigned by the BIOS - usually the
manufacturer's model no.) of the desired hard
drive at the top of the list of bootable
devices (the "boot sequence"), then exit the
the BIOS set-up. The OS on that hard drive
will then boot up this and every other time
until you change the boot sequence.


B) OS selection by keyboard input during boot-up

If you want to explicitly select the OS at each
boot-up and you'd like to stay out of the BIOS,
don't comment out any of the "operating systems"
lines in the boot.ini file. The BIOS will take
the character strings in those lines in the same
order as they appear in the boot.ini file of the
Highest Priority drive in the boot sequence and
display them in a selection list. By selecting,
"old system" or "new system" (as in our example
lines above), you can select which OS loads.


Tips to make things easier:

Use hard drives from different manufacturers or of
different sizes to make their model nos. distinguishable
in the BIOS boot sequence.

Put a shortcut on the Desktop of each OS to a folder
that has as its name some indication of the system that
it's in. When you boot up, you'll immediately know if
the right system got loaded.

Put an emply file named something like "bootNEW.ini"
under the C: root of the new system, and "bootOLD.ini"
under the C: root of the old system. This will help you
to remember which system you're working with when you
diddle with the boot.ini file - which will be displayed
right above it.


Things yet to learn about boot.ini:

What does the "rdisk" parameter mean if there are
three or more bootable hard drives?

What do the "multi" and "disk" parameters mean?

Can you put the OSes on different partitions if
you indicate their positions with the "partition"
parameter?


Thanks to Rod Speed (the Whizzer of Os) for the
exhortations to disconnect the old hard drive before
booting up the new hard drive for the 1st time. This
is critical.

Additions and corrections are welcomed.

I hope this helps someone.


*TimDaniels*
 
T

Timothy Daniels

Timothy Daniels said:
2) Change the boot.ini files on both system hard
drives. If you don't, you may get an error
message saying that file hal.dll is missing or
corrupt. To make the proper changes to boot.ini,
you must know a little about a couple lines in
the boot.ini file, which is found just below the
C: root of the file system.


When either system boots up, it thinks that it is
the C: drive, and the other drive is E: or F: or
whatever. So when editing the boot.ini file with
the "old" system booted up, its boot.ini file is
under the C: root, and the "new" system's boot.ini
file is under the E: or F: (or whatever) root.

*TimDaniels*
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top