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?
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:
- Ubuntu install-guide: Device Names in Linux
- http://tldp.org/HOWTO/html_single/Partition/
- Ubuntu install-guide: Linux Devices
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:
multi(0)disk(0)rdisk(0)partition(1)
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.
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.
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)