Drive letter assignment
From Wikipedia, the free encyclopedia
This article needs additional citations for verification. Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (June 2007) |
The neutrality of this article is disputed. Please see the discussion on the talk page.(December 2007) Please do not remove this message until the dispute is resolved. |
Drive letter assignment is the process of assigning alphabetical identifiers to physical or logical disk drives or partitions (drive volumes) in the root filesystem namespace; this usage is commonly found in Microsoft operating systems. Unlike the concept of UNIX mount points, where volumes are named and located arbitrarily in a single hierarchical namespace, drive letter assignment allows multiple highest-level namespaces. Drive letter assignment is thus a process of using letters to name the roots of the "forest" representing the file system; each volume holds an independent "tree" (or, for non-hierarchical file systems, an independent list of files).
Contents |
[edit] Origin
The concept of drive letters, as used today, presumably owes its origins to IBM's VM family of operating systems, dating back to CP/CMS in 1967 (and its research predecessor CP-40), by way of CP/M.[1] The concept evolved through several steps:
- CP/CMS used drive letters to identify minidisks attached to a user session. A full file reference (pathname in today's parlance) consisted of a filename, a filetype, and a disk letter called a filemode. Minidisks could correspond to physical disk drives, but more typically referred to logical drives, which were mapped automatically onto shared devices by the operating system as sets of virtual cylinders of fixed-size blocks.
- CP/CMS inspired numerous other operating systems, including the CP/M microcomputer operating system, which used a drive letter, usually written with a colon suffix (e.g. "A:") to specify a physical storage device. This usage was similar to the device prefixes used in the RSX-11 and VMS operating systems. Early versions of CP/M (and other microcomputer operating systems) implemented a flat file system on each disk drive, where a complete file reference consisted of a drive letter, a filename (up to eight characters) and a filetype (three characters); for instance A:README.TXT. (This was the era of 8-inch floppy disks, where such small namespaces did not impose practical constraints.)
- The drive letter syntax chosen for CP/M was inherited by Microsoft for its operating system MS-DOS and later, OS/2 and the Microsoft Windows family. Originally, drive letters always represented physical volumes, but support for logical volumes eventually appeared.
Note that the important capability of hierarchical directories within each drive letter was initially absent from these systems. This was a major feature of UNIX and other similar operating systems, where hard disk drives held thousands (rather than tens or hundreds) of files. Increasing microcomputer storage capacities led to their introduction, eventually followed by long filenames. In file systems lacking such naming mechanisms, drive letter assignment proved a useful, simple organizing principle.
[edit] JOIN and SUBST
Drive letters are not the only way of accessing different volumes. MS-DOS offers a JOIN command that allows access to an assigned volume through an arbitrary directory, similar to the Unix mount command. It also offers a SUBST command which allows the assignment of a drive letter to a directory. One or both of these commands were removed in later systems like OS/2 or Windows NT, but starting with Windows 2000 both are again supported: the SUBST command exists as before, while JOIN's functionality is subsumed in LINKD (part of the Windows Resource Kit). In Windows Vista, the new command MKLINK can be used for this purpose. Also Windows 2000 and later supports mount points, accessible from the Control Panel.
[edit] Operating systems that use drive letter assignment
- CP/M
- DOS
- Atari TOS
- OS/2
- Microsoft Windows
- ANDOS
- CSI-DOS
- MK-DOS
- SymbOS
- The operating systems of PlayStation and Xbox video game consoles
- libnds for the Nintendo DS
[edit] Order of assignment
Except for CP/M and early versions of MS-DOS, each of these operating systems assigns drive letters according to the following algorithm:
- Assign the drive letter A: to the first floppy disk drive (drive 0), and B: to the second floppy disk drive (drive 1), if present.
- Assign a drive letter, beginning with C: to the first active primary partition recognised 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 recognised 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 RAM Disk.
- Assign subsequent drive letters to any additional floppy or optical disc drives.
MS-DOS versions 3 and earlier assign letters to all of 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, for example, 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 Windows NT, Windows 2000, Windows XP and OS/2, the operating system uses the aforementioned algorithm to automatically assign letters to floppy disk drives, optical disc drives, the boot disk, and other recognised volumes that are not otherwise created by an administrator within the operating system. Volumes that are created within the operating system are manually specified, and some of the automatic drive letters can be changed. Unrecognised volumes are not assigned letters, and are usually left untouched by the operating system.
A common problem that occurs with the drive letter assignment is that the letter assigned to a network drive can interfere with the letter of a local volume (like a newly installed CD/DVD drive or a USB stick). For example, if the last local drive is drive D: and we have assigned to a network drive as E:, then when we connect a USB mass storage device it will also be assigned drive E: causing loss of connectivity with either the network share or the USB device. To overcome this problem either assign driver letters manually or use third-party software such as USB Drive Letter Manager.
Another condition that can cause problems on Windows XP is when there are network drives defined but in an error condition (as they would be on a laptop operating outside the network). Even when the unconnected network drive is not the next available drive letter, Windows XP may be unable to map a drive and this error may also prevent the mounting of the USB device.
[edit] Common assignments
Applying the scheme discussed above on a fairly modern Windows based system typically results in the following drive letter assignments:
- A: — Floppy disk drives, 3.5" or 5.25", and possibly other types of disk drives, if present.
- B: — Reserved for a second floppy drive, if present.
- C: — First hard disk partition.
- D: to Z: — Other disk partitions get labeled here. Windows 9x assigns the next free drive letter to the next drive it encounters while enumerating the disk drives on the system (during installation). Drives can be partitioned, thereby creating more drive letters. This applies to MS-DOS, as well as ALL Windows operating systems. Windows offers other ways to change the drive letters, either through the Disk Manager (Windows NT, 2000, XP and later) or through the Device Manager found in the Control Panel. MS-DOS typically uses parameters on the line loading device drivers inside the config.sys file. Because Windows 9x is based on MS-DOS, those drive letters as established inside the config.sys file also apply to Windows 9x systems.
- D: to Z: — CD-ROM, DVD, or shared network drives, if present, begin after the last used hard drive partition drive letter.
- F: — First network drive if using Novell NetWare
- Z: — First network drive if using Banyan VINES, and the initial drive letter assignment for the virtual disk network in the DOSBox x86 emulator.
The C: drive usually contains all of the Windows operating system files required for operation of the computer. On many modern personal computers, only one hard drive with one partition is present, so it is designated C:. On such a computer, all of a user's personal files are often stored in directories on this drive as well. These drives can, however, be different.
When there is no second physical floppy drive, the B: can be used as a "virtual" floppy drive mapped onto the physical A: drive, whereby the user would be prompted to switch floppies every time a read or write was required to whichever was the least recently used of A: or B:. This allow for much of the functionality of two floppy drives on a computer that has only one.
Network drives are often assigned letters towards the end of the alphabet. This is often done to differentiate them from local drives: by using letters towards the end, it reduces the risk of an assignment conflict. This is especially true when the assignment is done automatically across a network (usually by a logon script).
It is not possible to have more than 26 mounted drives. If access to more filesystems than this is required, Volume Mount Points must be used.[2]
[edit] See also
[edit] References
- ^ See CP/M and History of CP/CMS for background and sources.
- ^ Microsoft TechNet Retrieved on 1 December 2006