Why do we still have to use drive letters to identify file systems?

A friend has run into a problem where they installed Windows 7 from an external drive, and the internal boot drive is now assigned to H:. Theoretically this shouldn't cause problems because there are programming interfaces for getting the drive letter for the system drive. In practice though, there are quite a few programs that assume that C: is the only possible location for the system directories, and they refuse to run with the system directories on H:. That's not Microsoft's fault, but it's a pain none-the-less. The general consensus seems to be that a re-install, setting the internal boot drive to C:, is the only way to fix these problems.

UNIX-like systems display all file systems in a single unified directory tree and mostly seem to avoid problems like this. Is it possible to configure a Windows system without reference to drive letters, or does the importance of backwards compatibility mean that Windows will be working with drive letters from now until doomsday?


Solution 1:

Microsoft has always made backwards compatibility a huge priority. It is exactly because of all those applications which assume C:\, or even the generic pattern of Drive:\path\ that they can't move to a structure like UNIX. All Windows applications are based on the assumption that paths will start with a drive letter (if they aren't a relative path). It is unlikely that this will be changed any time soon.

Some applications, when run in compatibility mode, may work properly with a non-standard installation drive.

Something which might work (I haven't tried, but will later and will add details) would be to create a small partition, name it C:, and mount the various system drives from H: in folders within the C: drive. That way, when a program requested C:\Program Files, it would be accessing the folder in H:\Program Files, mounted in the C: drive.

Solution 2:

use the subst ms-dos command which adds a drive letter for an existing drive letter or folder

Solution 3:

While we may be stuck with drive letters until doomsday, you can change them from Start → Programs → Administrative Tools → Computer Management → Storage → Disk Management. Right-click the volume and select "Change Drive Letter".