Timothy Daniels said:
Rod Speed wrote
Timothy Daniels wrote
In the Microsoft document "How to Determine the ARC Path"
(
http://support.microsoft.com/default.aspx?scid=kb;en-us;155222)
it is stated:
"A typical ARC path might be:
multi(0)disk(0)rdisk(0)partition(2)\WINNT="My Server 4.0"
"The rdisk parameter is defined as Harddisk<X> on the
TargetDevice line, where <X> is a variable that represents
the drive ordinal. Note that the rdisk parameter is not used
when SCSI replaces multi in the ARC path."
Clearly, "rdisk()" refers to the position of the physical hard,
but it does NOT state how that position (i.e. the "drive ordinal")
is derived.
Yes, but the boot order list doesnt even get a mention, and when the
ARC path naming convention originated at a time when there wasnt
even a hard drive boot order list in most if any bios, it should be
obvious to even someone as stupid as you that it was never intended
to be the ordinal in the hard drive boot order list that didnt even exist.
That is left open to interpretation by manufacturers such as Dell, to
BIOS producers such as Phoenix Technologies, and to ROM chip producers
such as Intel.
Wrong again. The detail just isnt spelt out explicitly in THAT
particular KB article which has a VERY limited purpose. It
aint anything like the definitive statement of the ARC path
naming convention used in boot.ini, let alone saying anything
about who gets to determine how the ordinal is determined.
http://support.microsoft.com/kb/102873/EN-US/
has a much clearer statement about the rdisk() parameter and it says
x86-Based Computers
The following are generic examples of two possible BOOT.INI ARC paths:
multi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>
-or-
scsi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>
where X, Y, Z, and W are numbers that identify the item to their left.
MULTI(X) Syntax
The MULTI(X) syntax of the ARC path is only used on x86-based computers.
In Windows NT version 3.1 this path is only valid for IDE and ESDI drives;
in
Windows NT version 3.5, 3.51 and 4.0 it is valid for SCSI drives as well.
The MULTI() syntax indicates to Windows NT that it should rely on the
computers BIOS to load system files. This means that the operating
system will be using interrupt (INT) 13 BIOS calls to find and load
NTOSKRNL.EXE and any other files needed to boot Windows NT.
The X, Y, Z, and W parameters have the following meaning:
X is the ordinal number of the adapter and should always be 0 (see the text
below for the reason).
Y is always 0 (zero) if the ARC path starts with MULTI(), because MULTI()
invokes the INT 13 call
as described above and therefore does not need the DISK() parameter
information.
Z is the ordinal for the disk on the adapter and is usually a number
between 0 and 3.
---------------my comment
This is the rdisk parameter and that clearly says DISK ON THE ADAPTER
and says nothing about any hard drive boot order list what so ever.
---------------my comment
W is the partition number. All partitions receive a number except for type
5 (MS-DOS Extended)
and type 0 (unused) partitions, with primary partitions being numbered
first and then logical
drives. NOTE: The first valid number for W is 1, as opposed to X, Y, and Z
which start at 0 (zero).
Theoretically, this syntax could be used to start Windows NT on any drive
in the system.
However, this would require that all drives are correctly identified
through the standard
INT 13 interface; since support for this varies from disk controller to
disk controller and
most system BIOS only identify a single disk controller through INT 13, in
practice it is
only safe to use this syntax to start Windows NT from the first two drives
connected to the
primary disk controller, or the first four drives in the case of a
dual-channel EIDE controller.
In a pure IDE system, the MULTI() syntax will work for up to the four
drives
maximum on the primary and secondary channels of a dual-channel controller.
In a pure SCSI system, the MULTI() syntax will work for the first two
drives
on the first SCSI controller (that is, the controller whose BIOS loads
first).
In a mixed SCSI and IDE system, the MULTI() syntax will work only for the
IDE drives on the first controller.
http://www.microsoft.com/resources/...0/server/reskit/en-us/prork/prbd_std_ccef.asp
says the same thing in almost identical words.
Seeing that hard drives do fail now and then, Dell's BIOS allows
automatice
selection of another OS if the hard drive containing the primary OS
should fail.
Irrelevant to what MS states the rdisk() parameter refers to.
This will happen if there is another hard drive next in the hard drive
boot order having a bootable OS on it in an active partition that has the
same partition number as the primary OS.
That is a completely ****ed requirement. What should be done is
to have a boot.ini that lists OSs which are bootable, with a comment
that documents that OS's config, NOT some low level crap like the
partition its been installed in that the user doesnt give a flying red
**** about. Then if a hard drive does die, the user can just select
one of the other bootable OSs that isnt on the drive that has just
died, using the comment about the OS install, and carry on regardless.
Suppose HD0 and HD1 both have WinXP on their 1st partitions
and that both partitions are marked "active". If HD0 is at the
head of the hard drive boot order, its boot.ini parameter for the
hard drive will be "rdisk(0)" and its parameter for the OS's
partition will be "partition(1)".
If HD0 is removed (by failure or disconnection), HD1 will
automatically move to the head of the hard drive boot order
No it wont. The unbootable drive will still be at the head of the
boot order list, it just wont be bootable if the bios cant read it
successfully to get the MBR off it and to initiate the boot off it.
even though it may remain with the same jumpering, on the same
cable connector on the same IDE channel - and the correct values
for its boot.ini file's hard drive and partition parameters would
remain "rdisk(0)" and "partition(1)". In other words, the boot.ini
files for the two HDs could be determined beforehand - even be
identical - and they wouldn't have to be edited if the primary HD
should fail.
Wrong again if the drive at the head of the boot order list isnt
bootable because the bios isnt able to read the MBR off that
drive successfully so it can load it and boot ntldr etc off it.
Dell's BIOS is more flexible and more convenient than one which
permanently ties its "rdisk()" values to the Master/Slave and IDE channel
values.
Wrong again if the user does something as basic as move
a drive which isnt at the top of the hard drive boot order list
in that list. With the completely ****ed approach used in that
PARTICULAR Dell bios, the boot.ini has to be edited when
that drive is moved in the list. With the MS approach it doesnt.
AND Antoine has shown that the effect you are getting isnt
even universal with all Dell bios, let alone all Phoenix bios.