Andy said:
If you call it a bug, then you don't have a proper understanding of
how the Hard Disk Boot Priority function is designed to work.
In the days of IDE drives only, it was possible to change the order of
drive enumeration by physically moving a disk from one cable to the
other and changing a drive from master to slave. This is how one would
set a particular disk to be the first drive, i.e., the drive that the
BIOS boots, which is the drive that contains the active primary
partition and becomes the Windows system partition, the partition that
has to contain boot files such as ntldr, ntdetect.com, boot.ini, and
Boot Manager.
With the addition of SATA disks to the mix, this is no longer
possible, since how does one physically set either an IDE or SATA disk
to be the first drive. A jumper on the motherboard could be used, I
suppose. However, the Hard Disk Boot Priority setting in the BIOS
setup makes it possible to easily change the enumeration order of all
the disks.
During Windows installation, Windows setup uses the enumerated disk
order list to determine that the first disk in the list is supposed to
contain the system partition, and drive letters are assigned to
existing partitions on all of the disks in the order of their
enumeration.
The Hard Disk Boot Priority isn't really a boot sequence list. The
BIOS will only boot the disk at the top of the list, and if that disk
is not bootable, you have failure.
This is mostly correct. But... my "old" Dell BIOS (born Jan 1999)
and licensed from Phoenix Technologies, allows the Hard Drive
Boot Order (i.e. Priority) to be set to allow *any* hard drive in
the system to control booting. It has a default order that persists
until the user resets it. The default order is:
Master, IDE ch.0,
Slave, IDE ch.0,
Master, IDE ch.1,
Slave, IDE ch.1.
That means that the BIOS will look first at any device that is
a hard drive that is Master and connected to IDE ch. 0 and
has a valid MBR. If the above is True, it will pass control to
that MBR. If the conditions are not all True, it will look for a
hard drive that is Slave and connected to IDE ch. 0 and
has a valid MBR. If the above is True, it will pass control to
that MBR. Et cetera.
But if one enters the BIOS by pressing Delete early in the startup
procedure, one can adjust that Hard Drive Boot Order to any
sequence that one desires. One can therefore make even the
Slave hard drive on IDE ch. 1 be the controlling hard drive for
bootup by either putting it at the head of the Hard Drive Boot
Order list in the BIOS, or by making it the only hard drive that
is connected in the system.
In a strictly SATA system, the default Hard Drive Boot Order
usually (as far as I can tell) follows the numbering of the SATA
ports. In a mixed system, BIOSes seem to vary, and the
default may include the old PATA drives followed by the SATA
drives, or the SATA drives may have to be "enabled", thereby
putting SATA drives ahead of the PATA drives. The mixed
systems can be a puzzle, and there have been many questions
here involving them as SATA became available on motherboards.
Beyond telling which hard drive will get control for booting,
the Hard Drive Boot Order also defines the meaning of "x"
in "rdisk(x)" in the boot.ini boot menu file used by the
WinNT/2K/XP family of OSes. That is, "rdisk(0)" specifies
the hard drive at the head of the list, "rdisk(1)" specifies the
next hard drive, etc. Thus, "rdisk()" can direct the boot
loader (ntldr) to go to any hard drive in the system to find
the OS folder. So although the hard drive at the head of
the list may get control and the ntldr boot manager in its
"active" primary partition may control booting, the boot.ini
file may direct that the OS be loaded from a partition on
another hard drive. (If you understand partition numbering,
that partition can even be a logical drive in an Extended
partition.) I expect that a similar Hard Drive Boot Order
scheme and booting flexibility also exist in Vista.
*TimDaniels*