The opening post was long enough but it is perhaps also worth mentioning a bit about what goes on with Drive Letters under the NT-based OSes since this is another major source of confusion or non-comprehension. If only MS had followed the Linux conventions then a lot of this confusion could have been avoided. Under Linux /dev/hda1 is (almost unequivocally) the first partition on the first fixed IDE drive. It is almost unequivocal because in fact it refers (just as boot.ini does) to the first partition table entry. Most commonly partition table entries mirror the physical partitions on the drive so all seems straightforward - 95% of the time anyway. The other difference under Linux is that logical partitions always start at number 5. The first logical on an IDE drive being /dev/hda5. The extended partition is not ignored under Linux and has a partition table reference between 1 and 4. An extended partition is, after all, a specialised primary partition.
Why mention Linux at all you may ask. Well because the Linux notation can still be a very useful way or referring (almost unequivocally) to what is where. You see Drive Letters are even more "all over the place" than boot.ini references are.
The initial drive letter assignments follow these Win2K rules. After that it is possible to reassign some drive letters if one wants to. Windows wont let you change the drive letters for the system or boot partitions - though there are tweaks and utils that can force this - but bear in mind that this can produce unpredictable results or a non-booting system.
The reason that one can change most drive letters is because the assignments are stored in the registry at HKLM\SYSTEM\MountedDevices. Windows knows which letter is mapped to which partition by an algorithm stored in that registry key; an algorithm that is based on that hard drive's disk signature and the size and position of the partition so it can then map the algorithm to a particular drive letter.
If you resize or move a partition or change its disk signature then Windows has to try to make sense of the drive letter assignments all over (because the algorithms for the partitions will have changed) and this may result in changed drive letters. If partitions are added or subtracted this tends to throw out the boot.ini references but the logical disk manager usually reassigns drive letters normally and without problems.
There are two ways of completely resetting the drive letters. One is to delete the whole mounted devices key from the registry and reboot. The other is to run fdisk /mbr from an msdos boot diskette (fixmbr doesn't work) or use another method to assign the hard drive a new disk signature. On rebooting MS will detect things "as new hardware", update itself and request another reboot.
Neither method of resetting the drive letters is without risk so if you decide to do either of them ensure you have a full Windows installation CD at hand and be prepared to do a repair installation and possibly have to reactivate Windows into the bargain. A repair installation is also a way or "mending" not only a corrupt/malconfigured boot.ini but also other boot files and relevant boot sectors if the recovery console cannot fix things with fixmbr and fixboot.




Reply With Quote




