System drive C: shortcut on a Windows 10 desktop

Windows typically assigns your system drive the letter C: and gives different letters to other storage devices. That’s unusual—macOS and Linux don’t use letters. Windows can access drives without letters, so why does it use them?

Where Do Drive Letters Come From?

C: and D: drive letters in a Command Prompt window.

Like many things in Windows—such as, how it uses backward instead of forward slashes—drive letters date back to the days of MS-DOS (in fact, even a bit earlier). This is the reason the Windows system drive uses the letter C:—A: and B: were reserved for floppy disk drives.

Drive letters were carried over to MS-DOS from CP/M, an older operating system. They offered a way to access logical and physical storage devices containing files. To access a file named README.TXT on the second floppy disk drive, you’d just type B:README.TXT.

The need for drive letters is apparent on the command line. If there were no drive letters, how would you quickly specify paths to files on different devices? This was the system MS-DOS inherited, and Microsoft has stuck with it since.

While drive letters might seem less important now that we’re using graphical desktops and can simply click on icons, they do still matter. Even if you only access your files through graphical tools, the programs you use have to refer to those files with a file path in the background—and they use drive letters to do so.

RELATED: Why Windows Uses Backslashes and Everything Else Uses Forward Slashes

The Unix Alternative: Mount Points

Drive letters aren’t the only possible solution, however. Apple’s macOS, Linux, and other Unix-like operating systems use a different method of accessing different partitions and storage devices.

Rather than being accessible at a letter, a device can be made accessible at a directory path in the file system. For example, on Linux, external storage devices were traditionally mounted at /mount. So, rather than accessing a DVD drive at D:, you might access it at /mount/dvd.

This goes down to the “root” of the file system. Linux and macOS don’t have drive letters, so the base part of the file system isn’t a letter. Instead, they have a root directory, which is /. The system drive is “mounted” (made available) at / instead of C:\. Other drives can be mounted at arbitrary folders—if you want your home directory stored on a different drive, you can mount it at /home. The contents of the drive will then be accessible at /home.

You Can Access Drives on Windows Without Letters

USB drive mounted as a folder on Windows 10.

So why can’t you mount drives on Windows like this, making them accessible at arbitrary paths instead of letters? Why can’t you access your USB drive at C:\USB\, for example?

Well, you can! Modern versions of Windows now let you mount storage devices at a folder path, too. This option is available in the Disk Management tool. Right-click a partition on a drive, select “Change Drive Letters and Paths,” and then click “Add.” You can use the “Mount in the following empty NTFS folder” option to make a storage device available at a folder path just as you can on Unix-like operating systems.

To do this, though, you’ll have to mount the drive at a folder path on an NTFS volume—and that NTFS volume must be mounted at a drive letter.

Mounting a drive at an empty NTFS folder on Windows 10.

So, even if you did run out of drive letters from A: to Z:, you’d still be able to mount additional storage devices and access them in Windows. You’re not just limited to 26 drives on modern versions of Windows.

You can also change which drives use which letters from Disk Management—although, you can’t change your C: drive to another letter. Even changing a letter like D: to E: can cause problems. For example, if you have a shortcut pointing at drive D: and the files are suddenly at E:, the shortcut will break.

Why Does Windows Still Use Letters?

This PC view showing C: and D: drives on Windows 10

If drive letters (like C:) are an ancient artifact and Windows can work without them, why does it still use them?

The reason is simple and explains many Windows design decisions—backward compatibility. Early versions of Windows had to be compatible with MS-DOS software, and modern versions of Windows must be compatible with older Windows software. Drive letters just keep getting carried forward.

After all, things are enough of a mess with just drive letters! Technically, it’s possible to install Windows so that C: isn’t your system drive. You could install it to drive G:\ and have G:\Windows, G:\Users, and G:\Program Files folders. C: doesn’t have to be your primary drive, and this is officially supported by Windows. However, many Windows applications assume you’re using a C: drive, and you’ll have problems if you aren’t. And if Windows applications can’t imagine you not using C: as your system drive letter, imagine how they’ll break if you don’t have any drive letters at all.

You might wonder why Windows still displays drive letters. After all, File Explorer could hide them and just show the words “System Drive” or “USB Flash Drive,” but File Explorer already shows simple descriptions like that, and sometimes, you might want to know the drive letter. Many applications show paths like D:\Folder\File.doc.

Sure, Microsoft could invest in compatibility software that redirects all requests for C: to another path. But rather than throwing drive letters away and spending a bunch of time fixing things that would break as a result, Microsoft chooses to stick with drive letters.

Profile Photo for Chris Hoffman Chris Hoffman
Chris Hoffman is Editor-in-Chief of How-To Geek. He's written about technology for over a decade and was a PCWorld columnist for two years. Chris has written for The New York Times and Reader's Digest, been interviewed as a technology expert on TV stations like Miami's NBC 6, and had his work covered by news outlets like the BBC. Since 2011, Chris has written over 2,000 articles that have been read more than one billion times---and that's just here at How-To Geek.
Read Full Bio »