15

Assume that we have two disks, one master SATA and one master ATA. How will they show up in /dev?

4 Answers 4

25

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"
1
  • 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. Commented Apr 17, 2022 at 16:32
4

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.

2
  • 1
    I don't think this is true any more. At least with recent Fedora release, parallel ATA disks get /dev/sda etc too. Commented Sep 26, 2010 at 18:00
  • This is how it is on my Ubuntu machine, but I'm not bleeding edge, so maybe it's different. Commented Sep 26, 2010 at 18:04
3
  • 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
  • Simple but is this precise? Commented Oct 20, 2018 at 4:42
  • 2
    @firo, it isn't universal. It is determined by userland configuration. Commented Mar 7, 2020 at 21:13
3

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

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.