Hi, Daniel.
booted into Vista,
both drives were shown as "System" with the C: being shown as
"Boot" also, Vista boots on Disk 1 and XP on Disk 0.
To me, that sounds WRONG! Even IMPOSSIBLE! But I'm an accountant
(long-retired at that), not a techie of any kind.
But I've been dual-booting since WinNT4, through Win2K, WinXP and now Vista,
with as many as 4 physical drives and as many as 8 Windows/Vista versions
installed. And I've spent many hours reading Win9x/2K/XP Resource Kits,
especially the disk and file systems sections, trying to solve my own
(all-too-frequent) problems. (In the early days, I often used Norton
Utilities to rebuild partition tables, FATs and directories, sometimes a bit
or byte at a time. It was very tedious and time-consuming - and very
educational.)
I've never seen two drives identified as "System" at the same time. I've
always made at least one Active primary partition on each HDD, and made sure
that each HDD can be used as the boot device, just for insurance. So it is
quite possible for the System volume to be on Disk 0 sometimes and on Disk 2
after a reboot, but NOT at the same time!
A LOT of confusion is caused by the multiplicity of meanings for common
terms, like "drive", "boot", "system", "partition" and others. Some of the
greatest confusion is on phrases like "Vista boots on Disk 1". Even if
Vista's \Windows folder is on Disk 1, when the BIOS is set to use Disk 0 as
the boot device, the System Partition (at the moment) is on Disk 0, while
Vista's Boot Volume is on Disk 1. In other words, when we press Power On or
Restart, the computer starts to "pull itself up by its own bootstraps". At
this point, the computer "knows" nothing except what is in non-volatile
memory (the BIOS, stored in ROM). It knows nothing about drive letters or
volumes or partitions or operating systems. The BIOS instructions say to
locate the boot device and read the first physical sector, which we call the
Master Boot Record (MBR), load it into memory and start executing the code
that is found there. But that code is only 512 bytes, of which 64 are used
for the partition table, so the computer still doesn't know very much. The
partition table is in that sector, showing where each of the 1 to 4
partitions begins and ends, and with a code showing which is the one Active
(bootable) partition; that one partition becomes the System Partition for
that session. The first physical sector on that partition is its boot
sector. That boot sector code tells the computer to look for files with
further instructions; since it still doesn't know about extensions and
partitions, those first files must be in the Root of that System Partition.
The Win9x boot sector said to look there for IO.SYS and MSDOS.SYS;
WinNT/XP-style boot sectors look for NTLDR; Vista's boot sector looks for
bootmgr.
When booting with a WinXP boot sector, the computer finds NTLDR in the Root
of the System Partition (usually - but not always - Drive C
; NTLDR then
uses Boot.ini to present the OS menu, then uses that info and NTDETECT.COM
to find the Boot Folder for the chosen operating system. Note that Boot.ini
does NOT use "drive" letters, but points to a specific partition (or logical
drive) on a specific physical drive. It is quite possible for Boot.ini to
point back to the same partition as the System Partition, or to a different
partition on Disk 0, or to any partition on Disk 1 or any other HD in the
computer. But Boot.ini knows nothing at all about Vista!
When booting with a Vista boot sector, the computer finds the file bootmgr
(no extension) in the Root of the System Partition and runs that, which uses
the BCD (Boot Configuration Data) in the hidden \Boot folder, which Vista
Setup had put into that partition. The BCD offers the OS menu; if it finds
NTLDR, it will offer "Earlier version of Windows" as one of the options. If
the user chooses this option, then Bootmgr loads the WinXP-style boot sector
(which Vista Setup has saved in the System Partition as BOOTSECT.BAK), and
steps back out of the way while NTLDR takes over and presents the familiar
WinXP OS menu - and forgets that Vista exists, except as several GB of files
on the hard drive. If the user chooses Vista, then bootmgr ignores any
"earlier" version of Windows and simply loads Vista.
When we boot from the Vista DVD to run Setup, it has no idea whether any
drive letters have been previously assigned. So it starts from scratch. If
we say to install Vista in the 3rd partition on the second hard drive, then
THAT partition becomes the Boot Volume for this installation of Vista, and
Setup assigns it the letter C:. Setup then assigns letters to other
partitions, including the System Partition. In the typical case, this will
be the first partition on Disk 0, which most users automatically think of as
"Drive C:". But, if Vista Setup has already assigned C: to the other
partition on the other HD, then this first partition on the first HD will
probably be assigned the letter D:. So, it is not at all unusual for Vista
to see Drive D: (the first partition on Disk 0) as the System Partition and
Drive C: (the 3rd partition on the Disk 1) as the Boot Volume. It also is
not unusual for WinXP and Vista to disagree about which is Drive C:. This
does not confuse the computer at all, but it sure messes up users who expect
the first HD to always be Drive C:.
If we want to assign our own letters and have Vista Setup use those, then we
must boot into WinXP, use Disk Management to assign the letters that we want
Vista to use (except that we won't be able to reassign WinXP's system and
boot volume letters), and then run Vista's Setup from within WinXP. This
way, Setup can "see" WinXP's letter assignments and use them.
Even if we plan to "put WinXP on Disk 1 and Vista on Disk 0", we should
start both installations with Disk 0 as the boot device. Install WinXP,
pointing it to a partition on Disk 1 for its boot volume. A restart now
would start with the System Partition on Disk 0 and branch to WinXP's boot
volume on Disk 1. Then we install Vista, with Disk 0 still designated the
boot device. Vista Setup will update the startup files on Disk 0,
installing the Vista files while preserving the WinXP files. Thereafter, a
restart will still begin with the System Partition on Disk 0 and then branch
to either WinXP on Disk 1 or to Vista on Disk 0, depending on our choice
from the menu.
That is why, to remove WinXP, all we have to do is remove WinXP's boot
folder (E:\Windows?) and few startup files (from the System Partition -
C:\NTLDR?), then use a BCD editor to remove that option from the opening
menu.
As I said, Daniel, I'm not a techie. Some of the true experts here might
well quibble with some of my narrative, but I think the basic pattern is as
I have described. I'm sorry for the long post, but I learned long ago that
any "unimportant" point left out will be the very point that is causing the
user's problem.
RC
--
R. C. White, CPA
San Marcos, TX
(e-mail address removed)
Microsoft Windows MVP
(Running Windows Live Mail beta 2 in Vista Ultimate x64 SP1 beta v.275)