Booting from "second" disk
When an operating system is installed on a particular hard disk and
later new hard disks are installed on the PC, then it may happen that the
disk number of the existing disks might change -- intentionally or unintentionally.
For example it would be reasonable to install a new (faster) disk as the
first disk and use that disk during normal operation. On the other hand
one would often like to still use the existing operating systems on the
old hard disks. In the case of the Microsoft operating systems (DOS and Windows)
things are complicated by the fact that they can be installed easily only
to the first hard disk. Thus in practice one often deactivates the existing
(old) disk so that the target disk appears as the first disk during the
installation. Without boot manager multiple Windows partitions on different
disks are then used with one of the following typical methods: the
disturbing disks are turned off at the BIOS level or their disk number is
always changed manually or they are even completely turned off at the
hardware level. None of these "solutions" is really convenient. Similar problems
exist also with non-Microsoft operating systems. It is not often seen that
an operating system can still be booted when the disk number of the boot
partition has changed.
Solution in boot manager Boot-US
Technically speaking the problem is that in the boot partition at certain
positions the disk number is stored. When the disk number is changed
this information becomes invalid and the partition cannot be booted any more.
It depends on the operating system whether the disk number is stored only
in the boot sector or also in other system files.
In the case of DOS, Windows 95/98/ME it seems
that indeed the disk number is stored only in the boot sector and in
no other system files. To boot e.g. Windows 95 from a disk which
is currently the second disk while it was the first disk at installation
time, one needs to insert "only" the current disk number in the appropriate
positions of the boot sector and then start this modified boot sector. Actually
it is even sufficient to change the boot sector on the fly in memory. The boot
sector on the hard disk remains unchanged. The boot manager Boot-US uses
this method for booting DOS and Windows 95/98/ME from another (second) hard disk.
Starting with Boot-US 2.0.0 it is possible to boot Windows NT/2000/XP/2003/Vista/2008/7/8/10 from the second,
third,... hard disk. From a technical point of view this is achieved by swapping
the drives for the BIOS interrupt 13h. This swapping is visible only on the BIOS level,
i.e. during the boot phase. After Windows NT/2000/XP/2003/Vista/2008/7/8/10 is running all further disk access
does not use the BIOS interrupt 13h any more but the Windows disk drivers. Although the
disk swapping is still present on the BIOS level it does not influence the operation
These explanations make clear that no general solution for this boot
problem exists. Each operating system and partition requires separate
consideration. Boot-US contains explicit support for booting from another
disk only for DOS and Windows 95/98/ME/NT/2000/XP/2003/Vista/2008/7/8/10.
What about other operating systems ?
The boot manager of Boot-US passes the current disk number in the DL register.
This might be sufficient for non-Microsoft operating systems to boot them
from the corresponding hard disk. However it must be tried out whether this
actually works or not.