If you come to Linux from Windows, one of the first things that confuses you is the absence of C:, D:, and E: drive letters. Open a file manager on Linux and you will find / (pronounced “root”) instead. Where are the drive letters? Why does Linux organise storage this way? The answer reveals a fundamental architectural difference between how Windows and Unix-derived operating systems think about files and devices.
Why Windows Has Drive Letters
Drive letters in Windows are a legacy of MS-DOS, which was designed in the early 1980s for computers with a single floppy drive (A:) and optionally a second one (B:). When hard drives arrived, C: became the standard. When CD drives, USB drives, and network drives arrived, they got their own letters.
Each drive letter is a completely separate namespace. C:\Windows and D:\Program Files are on different drives with no hierarchical relationship between them. If you add a new drive, it gets a new letter. If you move software from C: to D:, you break all the paths that reference C:.
How Linux Organises Storage — The Filesystem Hierarchy Standard
Linux uses a single unified directory tree starting at / (root). Every file, directory, and storage device on the system exists somewhere within this single hierarchy. This design comes from Unix, developed at Bell Labs in the early 1970s, and it is fundamentally different from the drive letter model.
/
├── bin/ # Essential system binaries
├── etc/ # Configuration files
├── home/ # User home directories
├── var/ # Variable data (logs, databases)
├── tmp/ # Temporary files
├── usr/ # User programs and libraries
├── boot/ # Boot loader files
├── dev/ # Device files
└── mnt/ # Mount points for external storage
How Does Linux Handle Multiple Drives?
This is where the Linux approach gets elegant. Instead of assigning a letter to a drive, Linux mounts the drive to a directory within the filesystem tree.
A second hard drive might be mounted at /data. A USB drive might be mounted at /media/usb. The system does not know or care that those directories are on different physical devices — it just serves files from wherever they are mounted.
# See what is mounted where
$ df -h
# Or the detailed mount table
$ lsblk
In Linux, your drives are referenced as block devices:
/dev/sda— first SATA/SCSI drive/dev/sdb— second SATA/SCSI drive/dev/nvme0n1— first NVMe SSD/dev/sda1— first partition on the first drive
Why Is the Linux Approach Better?
The unified filesystem hierarchy has several practical advantages:
- Transparent storage expansion — adding more storage to a directory (e.g., mounting a second drive at
/var/data) is invisible to applications. They just see more space at/var/datawithout any path changes. - No path breakage when moving data — moving data between physical drives by remounting does not break application paths.
- Network filesystems are seamless — an NFS share or S3 bucket mounted at
/mnt/backupslooks and behaves identically to local storage from the application’s perspective. - Consistent backup logic — backup scripts reference paths, not drives. The same backup script works regardless of the underlying physical storage configuration.
The trade-off is a steeper initial learning curve for users coming from Windows. But once you understand the unified hierarchy model, it is hard to argue that drive letters are more logical — they are simply more familiar.
Leave a Reply