Tim:
Let me cite some of my experiences using disk imaging
programs to directly clone the contents of one HD to
another HD and how, for the most significant part, they
parallel your experiences with one or two exceptions. And,
of course, we're speaking about PATA drives here...
1. As I think you know from our past exchanges, I primarily
use the Ghost 2003 disk imaging program to perform direct
disk-to-disk cloning operations although I have used other
DI programs as well, chiefly the Acronis True Image version 8
program. So my comments pretty much refer to the use of
those programs in this area.
2. I most certainly agree with you that it is important, if not crucial,
for the user to disconnect the source disk immediately following
the cloning operation and make that initial boot with only the
newly-cloned HD connected. Future boot problems with that
cloned drive may (but not *always*) occur if the preceding is not
adhered to. At least that has been our experience with the
Ghost & ATI programs, and from reports that I've received from
those who have used other DI programs, the same potential
problem can occur. (BTW, we have run into the same problem
with SATA drives). Incidentally, this potential problem can occur
even if the BIOS boot order priority was changed to make that
initial boot from the cloned HD while both the source & destination
drives were connected at the time of the initial boot to the cloned
HD. The important thing is to disconnect the source disk before
the initial boot to the newly-cloned HD.
3. However, we have never encountered a subsequent boot
problem with the cloned HD if it later was connected as a
secondary drive. At least I can't recall a single problem in this
area. Again, as long as the *initial* boot with that cloned HD
had been undertaken with the source drive disconnected as
indicated above, it didn't matter that the cloned drive was, at
one time or another, later used as a secondary drive. We've
always been able to boot to that cloned drive at some
subsequent time either with the source HD disconnected or
a change in the BIOS boot order should both drives be
connected at the time of that boot.
In this connection - we're assuming two bootable HDs in the
machine - our experience with modern motherboards - let's
say about the past five years - has been (with rare exceptions)
that regardless of the IDE channel (or its position on that
channel) that a bootable HD is connected to, the system will
boot to that drive if it's the only bootable HD currently present in
the system. (A BIOS item change is sometimes necessary to
facilitate this action). I'm not sure if your experience has been
different from mine in this area.
Anna
As I've posted in this and other threads in this NG, my
experience has been identical to yours. I've even posted, in
detail, experiments which I have run regarding boot order and
its effect on the meaning of "risk()" in boot.ini file's ARC pathname
entries. As for the HD boot order, the result of removal of the
existing booting HD is that some other HD in the HD boot order
(if one exists) is given control by the BIOS to do the booting.
That HD is just the next HD in the HD boot order. If the currently-
booting HD is Master on ch. 0, the next will be the Slave on ch. 0.
If there is no HD as Slave on ch. 0, the HD that is Master on ch. 1
becomes the boot HD, etc.
That HD boot order is just the default, though. In BIOSes where
the HD boot order can be adjusted by the user, the boot priority
follows the new boot order. My experiments have shown that the
meaning of "rdisk()" also follows the new boot order, so that
"rdisk(0)" refers to whatever HD is at the head of the ordered list,
and "rdisk(1)" refers to the next HD in that list, etc. For that reason,
"rdisk(x)" may thought of as "The HD at Relative Position 'x' in
the HD Boot Order", where 0 refers to the HD at the head of the list.
This has great impact on the meaning of the entries in the boot.ini
file. For a thorough description of the experiments which led to
this conclusion, see Groups.Google.com in this NG in the past
2 months for the thread titled "meaning of 'rdisk()' in boot.ini file".
Here it is again for the Googling-deprived:
---------------------------------------------------
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*