What is the Linux drive naming scheme?

In Windows; you have the C:\ drive. This is the primary drive upon which Windows is installed.

However, Linux uses a different naming scheme: sda, sdb[1-4], etc. Can anyone give me a brief outline of it so I might actually understand it instead of being confused by it?

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

In general, the letters (fd, sd, hd) refer to the device type ('SATA, SCSI/SATA, IDE'), the third letter is for the device order (a the first, b the second, etc) and the numbers refer to the partitions the device has, starting by zero.

  • hd refers to an IDE-type drive
  • sd refers to a SCSI drive in general, but is mostly popular for SATA drives and CD/DVD
  • fd is floppy disk

So for example:

  • the first (1) partition on your first (a) SATA drive is /dev/sda1
  • The third (3) partition on your second (b) SATA drive is /dev/sdb3
  • the second partition (2) of the second (b) IDE hard disk is ‘/dev/hdb2’

This device naming is more of a background one, as the actual point to access it a directory mount point.

I think that the following three articles will help you a bit:

Solution 2

Just for clarity, on the Windows side you’re confusing the file system naming with the drive naming. Windows hides the drive naming from you almost completely, but you can see examples in the registry and if you edit your boot.ini file. A disk reference there might look like this:


You can also see individual disks in the disk manager tool. The reason I bring this up is that the ntfs file system allows you to play all kinds of games. You can mount a separate disk to a folder in your C: and another drive at the same time, and unmounted disks may not have a drive letter at all. So don’t confuse the file system from disk naming.

Linux is similar, here. sda1 is a common partition name, but it could be mounted anywhere on the file system.

Solution 3

While SCSI and SATA will continue to be around for some time in mainstream desktop and laptop configurations, mobile devices using eMMC storage in the /dev/mmcblk*p* naming scheme have been around a few years and non-SATA high performance NVMe SSDs (/dev/nvme*n*) are not far away.

Solution 4

Pavlos G. is mostly correct, however /dev/hd** is no longer in use by IDE harddisks (and CD drives), they have been using /dev/sd** since kernel 2.6.19 (and ubuntu since 7.10, ~2007)

Solution 5

You really shouldn’t rely on the sd* naming scheme. It can change dramatically depending on drive spin up, hot plugging, and additional storage adapters. Best thing to use to uniquely address your device is the persistent links like /dev/disk/by-id/. Linux doesn’t have the “boot from first disk” limitations and can also mount drives by label so drive ordering is really irrelevant.

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply