假设我们有两个磁盘,一个主 SATA,一个主 ATA。它们将如何出现在/dev 中?
答案1
根据您的 SATA 驱动程序和发行版的配置,它们可能显示为/dev/hda
and /dev/hdb
、or /dev/hda
and /dev/sda
、or /dev/sda
and /dev/sdb
。发行版和驱动程序正在朝着将所有硬盘称为 的方向发展sd?
,但传统上使用的是 PATA 驱动程序hd?
,一些 SATA 驱动程序也这样做。
设备名称由配置确定udev
。例如,在 Ubuntu 10.04 上,以下行使/lib/udev/rules.d/60-persistent-storage.rules
所有 ATA 硬盘显示为/dev/sd*
且所有 ATA CD 驱动器显示为/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"
答案2
如果我正确理解你的问题,Linux下的第一个并行ATA硬盘驱动器将是/dev/hda
,第二个将是/dev/hdb
,然后是/dev/hdc
,等等。
串行ATA 设备的显示方式与 SCSI 和 USB 设备相同:/dev/sda
将是第一个,然后是/dev/sdb
、/dev/sdc/
等。
答案3
- SATA-
/dev/sdX
- 固态硬盘-
/dev/sdX
- SCSCi -
/dev/sdX
- IDE-
/dev/hda
任何以 S 开头的驱动器(sata、ssd、scsci)都是 sda,IDE 都是 hda
答案4
其他答案讨论了 SATA、IDE、SCSI 等,但我想我应该添加新的 NVMe。在现代内核中,NVMe 驱动器用作/dev/nvmeXnY
驱动器和/dev/nvmeXnYpZ
分区。例如,NVMe 驱动器 (0, 1) 上的分区 5 将为/dev/nvme0n1p5
.块设备的行为就像hdX
和sdX
驱动器一样。
本质上,并行连接使用hdX
,串行连接使用sdX
,而 NVMe 这个奇怪的东西使用nvmeXnY