|You attribute far to much to the BIOS. The BIOS does not determine how the OS finds the OS or how it designates drive C: The only way that the BIOS may appear to be effecting the letter allocation is the way the OS is loaded from the boot loader. The boot loader is part of the MBR, the very first item the BIOS read from the hard dsik, The Boot loader is put there by the OS during installation. |
All the BIOS knows how to do is to load and execute the block of code that is stored at sector offset xx in the first sector of the first track on the designated drive. The code looks at the rest of the MBR which will tell it which partition to boot from. It will then load the volume boot record from that partition which will give all the information it needs to boot the OS, including the location of ntdetect.com, boot.ini and ntldr wich is always in the root folder. Once those files have been located and loaded, you are well on your way to booting the OS..
This installation process conforms to the MS-DOS standard when allocating drive letters as it does not have access to the registry nor to it know anything about system drives and boot drive until they are created during the installation process.. On my system the system and boot drive is drive C: but the installation allocates it D: because it is on the primary slave drive. There was no primary master at the time of installation but there is now. If it were present during the installation but was unavailable because it was either full or it is a USB drive which the installation will ignore it, but it will still have a drive letter..
Letters allocated to these drives during the installation process are kept so you can see why the system drive could end up as something other than Drive c:
Imagine a situation where you are installing to a completely clean hard disk, no partition att all. You boot from the installation disk but have left as USB drive plugged in. As this is the only usable drive in the system it will get allocated C:
At what stage does this change as the installation will not put system drives on a USB drive and drives letters allocated to the system and boot drives at boot time are kept.
It doesn't. The system and boot drives will get allocated drive D: and will remain drive D:
The only time the installation will take note of existing drive allocation and the registry is when it is doing a repair install which is a totally different thing altogether than a clean install.
Forget about MS-DOS, there are so many difference between MS-DOS and Windows XP they just as well be on a different planet. About the only thing that Windows has in common with MS-DOS when it comes to drive allocation is that floppy drives are still allocated A or B.