Assume that we have two disks, one master SATA and one master ATA. How will they show up in /dev?
4 Answers
Depending on your SATA driver and your distribution's configuration, they might show up as /dev/hda and /dev/hdb, or /dev/hda and /dev/sda, or /dev/sda and /dev/sdb. Distributions and drivers are moving towards having everything hard disk called sd?, but PATA drivers traditionally used hd? and a few SATA drivers also did.
The device names are determined by the udev configuration. For example, on Ubuntu 10.04, the following lines from /lib/udev/rules.d/60-persistent-storage.rules make all ATA hard disks appear as /dev/sd* and all ATA CD drives appear as /dev/sr*:
# ATA devices with their own "ata" kernel subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $tempnode"
# ATA devices using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode"
- 807,993
- 194
- 1,674
- 2,175
-
The first part of this answer is correct, but the second part is not. The `==` operator *compares* the `KERNEL` name with `sd*`, it doesn't *set* it. – Hello71 Apr 17 '22 at 16:32
If I'm understanding your question correctly, the first parallel ATA hard drive under Linux will be /dev/hda, the second will be /dev/hdb, followed by /dev/hdc, etc.
Serial ATA devides will show up the same way SCSI and USB devices do: /dev/sda will be the first one, followed by /dev/sdb, /dev/sdc/, etc.
- 8,311
- 12
- 54
- 73
-
1I don't think this is true any more. At least with recent Fedora release, parallel ATA disks get /dev/sda etc too. – fschmitt Sep 26 '10 at 18:00
-
This is how it is on my Ubuntu machine, but I'm not bleeding edge, so maybe it's different. – Josh Sep 26 '10 at 18:04
- SATA -
/dev/sdX - SSD -
/dev/sdX - SCSCi -
/dev/sdX - IDE -
/dev/hda
Any drive which start with S (sata,ssd,scsci) is sda and IDE is hda
-
-
2@firo, it isn't universal. It is determined by *userland* configuration. – vonbrand Mar 07 '20 at 21:13
Other answers discuss SATA, IDE, SCSI, etc, but I thought I'd add the new NVMe. In modern kernels, NVMe drives use /dev/nvmeXnY for a drive, and /dev/nvmeXnYpZ for partitions. For example, partition 5 on NVMe drive (0, 1) would be /dev/nvme0n1p5. The block devices behave just like the hdX and sdX drives.
Essentially, parrallel connections use hdX and serial connections use sdX, and NVMe, the oddball, uses nvmeXnY
- 300
- 3
- 11