From: Timothy Daniels on
ABSTRACT

This investigation shows that the "rdisk()" parameter
in the boot.ini file represents a hard drive in terms of
its displacement from the head of the hard drive boot order
in the BIOS. The value of n in "rdisk(n)" expresses this
displacement, where n is an integer value starting with 0,
and where "rdisk(0)" represents the hard drive which is at
the head of the hard drive boot order, i.e. the hard drive
at zero displacement from the head of the hard drive boot
order. The BIOS used in the investigation was the Phoenix
Technologies BIOS as supplied in Dell Dimension desktop PCs.


HARDWARE

Dell Dimension XPS-R450 with a Phoenix Tech BIOS,
(3) Maxtor DiamondMaxPlus 9 hard drives connected to
(1) SIIG IDE PCI controller card used in the 1st half of
the investigation, and connected to
(1) motherboard IDE controller used in the 2nd half of
the investigation.


HARD DRIVE CONFIGURATION

IDE channel 0, Master - 80GB hard drive
IDE channel 0, Slave - 40GB hard drive
IDE channel 1, Master - 120GB hard drive

Each HD had a Master Boot Record (MBR),
each HD had as its partition #1 a Primary partition
that
1) had a Boot Sector,
2) was marked "Active", and which
3) contained the boot files ntldr, boot.ini, and ntdetect.com .


SOFTWARE CONFIGURATION

Microsoft WindowsXP Pro installed in partition #1 of each HD.

boot.ini file in the 80GB HD:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="(80GB part 1 boot.ini) rdisk 0, part 1" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="(80GB part 1 boot.ini) rdisk 1, part 1" /fastdetect
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="(80GB part 1 boot.ini) rdisk 2, part 1" /fastdetect

boot.ini file in the 40GB HD:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="(40GB part 1 boot.ini) rdisk 0, part 1" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="(40GB part 1 boot.ini) rdisk 1, part 1" /fastdetect
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="(40GB part 1 boot.ini) rdisk 2, part 1" /fastdetect

boot.ini file in the 120GB HD:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="(120GB part 1 boot.ini) rdisk 0, part 1" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="(120GB part 1 boot.ini) rdisk 1, part 1" /fastdetect
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="(120GB part 1 boot.ini) rdisk 2, part 1" /fastdetect


Each of the above boot.ini file entries under the line
"[operating systems]" specified an OS in partition #1 of one
of the HDs, i.e. from "rdisk(0)", "rdisk(1)", or "rdisk(2)".
The character string between the quotes in each OS entry
became a line in the on-screen menu displayed by ntldr at
boot time, and it was to aid in identifying which HD got
control from the BIOS (i.e 80GB, 40GB, or 120GB) and which
"rdisk()" value each line corresponded to.

A file with a name identifying the HD which contained it
was put on the Desktop of each OS. This was to aid in identi-
fying the HD of the OS that was loaded.


EXPERIMENT

Each HD was in turn put at the head of the BIOS's hard drive
boot order and the PC was started. Each of the three entries in
the on-screen boot menu was selected in turn, and the OS that
loaded was recorded. Since the boot.ini files contained entries
only for the partition #1 on each HD, the experiment was a specific
test for the meaning of the "rdisk()" parameter.

Then the order of the 2nd and 3rd HD in the hard drive boot order
was reversed in the BIOS, and the above experiment was repeated.

Then, the hard drives were disconnected from the IDE PCI controller
card and connected to the IDE controller on the motherboard, and the
entire experimental sequence detailed above was repeated. A total of
36 boot-ups were executed.


RESULTS

The following results were identical for both the PCI IDE controller
case and for the motherboard IDE controller case:

HD boot order: 80GB, 40GB, 120GB
boot menu entry selected: HD the OS booted from:
(80GB part 1 boot.ini) rdisk 0, part 1 80GB, part 1
(80GB part 1 boot.ini) rdisk 1, part 1 40GB, part 1
(80GB part 1 boot.ini) rdisk 2, part 1 120GB, part 1

HD boot order: 80GB, 120GB, 40GB
boot menu entry selected: HD the OS booted from:
(80GB part 1 boot.ini) rdisk 0, part 1 80GB, part 1
(80GB part 1 boot.ini) rdisk 1, part 1 120GB, part 1
(80GB part 1 boot.ini) rdisk 2, part 1 40GB, part 1

HD boot order: 40GB, 80GB, 120GB
boot menu entry selected: HD the OS booted from:
(40GB part 1 boot.ini) rdisk 0, part 1 40GB, part 1
(40GB part 1 boot.ini) rdisk 1, part 1 80GB, part 1
(40GB part 1 boot.ini) rdisk 2, part 1 120GB, part 1

HD boot order: 40GB, 120GB, 80GB
boot menu entry selected: HD the OS booted from:
(40GB part 1 boot.ini) rdisk 0, part 1 40GB, part 1
(40GB part 1 boot.ini) rdisk 1, part 1 120GB, part 1
(40GB part 1 boot.ini) rdisk 2, part 1 80GB, part 1

HD boot order: 120GB, 40GB, 80GB
boot menu entry selected: HD the OS booted from:
(120GB part 1 boot.ini) rdisk 0, part 1 120GB, part 1
(120GB part 1 boot.ini) rdisk 1, part 1 40GB, part 1
(120GB part 1 boot.ini) rdisk 2, part 1 80GB, part 1

HD boot order: 120GB, 80GB, 40GB
boot menu entry selected: HD the OS booted from:
(120GB part 1 boot.ini) rdisk 0, part 1 120GB, part 1
(120GB part 1 boot.ini) rdisk 1, part 1 80GB, part 1
(120GB part 1 boot.ini) rdisk 2, part 1 40GB, part 1


DISCUSSION

The OS always booted from the hard drive having a position in
the hard drive boot order expressed as the n in "rdisk(n)" parameter
of the boot.ini file entry. This correspondence persisted throughout
all all permutations of the hard drive boot order and despite which
IDE controller the HDs were connected to. Whether this is the case
in other less common BIOSes is unknown by this investigator. But
since the Phoenix Technologies' BIOSes are used by many large
PC manufacturers, it is probably a very common meaning of "rdisk()"
among modern PCs running a Microsoft Windows operating system.


*TimDaniels*
From: Timothy Daniels on
"Rod Speed" non-sequitured:
> ....have fun explaining why ALL the documentation
> of the ARC path naming convention fails to mention the
> hard drive boot order at all when documenting the rdisk()
> parameter. There has GOT to be a reason for that.
>
> AND its a stupid way to implement a system anyway
> because the boot.ini file would have to be changed
> when the boot order is changed.
>
> ALL the evidence points to the fact that its a terminal
> stupidity that has been perpetrated in the Phoenix bios
> and that it doesnt get mentioned just because the phoenix
> bios is by far the least commonly used of the big 3.


All I did was report reality. What does it matter what
some obscure specification says? Do you run a spec
or a PC?

*TimDaniels*
From: Timothy Daniels on
"Rod Speed" wrote:
> ALL the evidence points to the fact that its a terminal
> stupidity that has been perpetrated in the Phoenix bios
> and that it doesnt get mentioned just because the phoenix
> bios is by far the least commonly used of the big 3.


Maybe. But Dell is a MAJOR brand.

*TimDaniels*
From: Rod Speed on
Timothy Daniels <TDaniels(a)NoSpamDot.com> wrote
> Rod Speed non-sequitured

Lying, as always.

>> ....have fun explaining why ALL the documentation
>> of the ARC path naming convention fails to mention the
>> hard drive boot order at all when documenting the rdisk()
>> parameter. There has GOT to be a reason for that.

>> AND its a stupid way to implement a system anyway
>> because the boot.ini file would have to be changed
>> when the boot order is changed.

>> ALL the evidence points to the fact that its a terminal
>> stupidity that has been perpetrated in the Phoenix bios
>> and that it doesnt get mentioned just because the phoenix
>> bios is by far the least commonly used of the big 3.

> All I did was report reality.

No you didnt. You reported what YOU see on a badly implemented
system and claimed that that proved that the rdisk() param is the boot
drive order number on all systems out there. That is just plain wrong.

> What does it matter what some obscure specification says?

It matters because it proves that your claim that the rdisk() parameter
is ALWAYS the boot order sequence number is just plain wrong when
that spec for the boot.ini file, written by the designers of that boot.ini
file dont even mention the boot order sequence number with rdisk()

> Do you run a spec or a PC?

Never ever could bullshit its way out of a wet paper bag.


From: Timothy Daniels on
"Rod Speed" wrote:
>
> AND its a stupid way to implement a system anyway because the
> boot.ini file would have to be changed when the boot order is changed.


What's so hard about that? In my normal system, which contains
8 or 9 bootable clones, the boot.ini file in each primary partition
contains a generic boot.ini file that has 10 optional entries (the max
for my BIOS). The comment character string in each entry indicates
its rdisk() and partition() value, and knowing where the desired clone
is in the boot order, I can boot to any clone in the system. Which is
harder - knowing the position of a HD in terms of IDE channel no. and
Master/Slave setting, or knowing where the HD is in the hard drive
boot order?

But the Phoenix BIOS, in fact, accomodates geriatric users such as
yourself. It has as a DEFAULT hard drive boot order which is tied to
the physical position of each hard drive:
Master, IDE channel 0
Slave, IDE chennel 0
Master, IDE channel 1
Slave, IDE channel 1

Thus, if one doesn't want to adjust the hard drive boot order (or doesn't
know how), one can just rely on the default hard drive boot order. To change
which hard drive is at the head of the order, one must physically rearrange
the hard drives. But hey(!), some people *like* restrictions more than
convenience.

*TimDaniels*