Drive letter assignment
|
Drive letter assignment is the process of matching volumes (active primary partitions and logical partitions) to letters in the root namespace of a file system as seen by a Microsoft operating system. The concept of drive letters might have originated in the CP/M operating system, in imitation of the device prefixes in the RSX-11 and VMS operating systems. However, IBM's VM/CMS, an even earlier operating system, also had drive letters, identifying minidisks attached to a user session; a full pathname would be composed of a filename, filetype and disk letter called filemode.
Unlike the concept of Unix mount points, where the user can create directories of arbitrary name and content in the root namespace, drive letter assignment implies that only letters are in this namespace, and they represent solely volumes. In other words, it is a process of naming the roots of the "forest" that represents the file-system (with each volume being an independent tree therein).
Drive letters are however not the only way of accessing different volumes. MS-DOS offers a JOIN command that allows the mounting of a volume already assigned a drive letter inside a directory, very much equivalent to the Unix mount command. It also offers a SUBST command that allows the creation of a drive letter from an existing directory. These commands were not always both available in later systems like OS/2 or Windows NT, but since Windows 2000 both are supported, SUBST as always and JOIN as LINKD (in the Windows Resource Kit) or as JUNCTION from sysinternals (http://www.sysinternals.com).
Operating systems that use drive letter assignment:
Except for CP/M and early versions of MS-DOS, each of these operating systems assign drive letters according to the following algorithm:
- Assign the drive letter 'A' to the boot floppy, and 'B' to the secondary floppy
- Assign a drive letter, beginning with 'C' to the first active primary partition recognized upon the first physical hard disk
- Assign subsequent drive letters to the first primary partition upon each successive physical hard disk drive, if present within the system.
- Assign subsequent drive letters to every recognized logical partition beginning with the first hard drive and proceeding through successive physical hard disk drives, if present within the system.
- Assign subsequent drive letters to any additional floppy drives
MS-DOS versions 3 and earlier assign letters to all the floppy drives before considering hard drives, so a system with four floppy drives would call the first hard drive 'E'.
The order can depend on whether a given disk is managed by a boot-time driver or by a dynamically loaded driver. For example, if the second or third hard disk is of SCSI type and on MS-DOS requires drivers loaded through the CONFIG.SYS file (e.g. the controller card does not offer on-board BIOS or using this BIOS is not practical), then the first SCSI primary partition will appear after all the IDE partitions on MS-DOS. Therefore MS-DOS and eg. OS/2 could have different drive letters, as OS/2 loads the SCSI driver earlier. A solution was not to use primary partitions on such hard disks.
In the operating systems below, floppy disk drives, CD-ROM and DVD drives, the boot disk, and recognized volumes that are not otherwise created by an administrator within the operating system, are assigned letters automatically using the aforementioned algorithm. Volumes that are created within the operating system are manually specified, and some of the automatic drive letters can be changed. Unrecognized volumes are not assigned letters, and are usually left untouched by the operating system.
- Windows NT
- Windows 2000
- Windows XP
- OS/2