/dev/sd
wurde ursprünglich für Geräte mit dem sd-bus
verwendet Treiber, der der Treiber für SCSI-Geräte ist (und sd
steht wörtlich für SCSI-Festplatte). Heutzutage wird es für SCSI-Festplatten, SATA-Festplatten und USB-Festplatten verwendet. Der Grund scheint zu sein, dass jetzt fast alle Geräte das SCSI-Befehlsprotokoll zusätzlich zum Nicht-SCSI-Bus verwenden (der Kernel behandelt alle ATA-Geräte gleich mit libata und gibt vor, sie seien SCSI-Geräte - Dank an @grawity), und deshalb Wir sehen alle diese Geräte als /dev/sd
.
Aber nicht alle Speichergeräte sind /dev/sd
. /dev/hd
und /dev/xvd
werden immer noch verwendet - erstere für PATA/IDE-Festplatten und letztere für Cloud-Speichergeräte (virtuelle Festplatten usw.) und alle haben unterschiedliche Treiber und Namen. Sie sehen sie nicht, weil sich virtueller Speicher nur auf Clouds / Hypervisoren befindet (und Sie wahrscheinlich keine verwenden) und weil PATA/IDE-Festplatten immer seltener werden und der Kernel auf den meisten modernen Maschinen tatsächlich ide-scsi
Treiber, um es in das SCSI-Protokoll zu übersetzen (Dank an @Wumpus Q. Wumbley).
Weitere Beispiele sind /dev/mmcblkXpY
Das ist für SD/eMMC/bare NAND/NOR-Geräte und hat das gleiche Namensschema wie /dev/nvme
und /dev/vd
die wiederum für virtuelle Festplatten im Cloud-Speicher verwendet wird (Dank an @Jan Dorniak für die zusätzlichen Beispiele).
In Ihrem Fall , es heißt /dev/nvme
da die Festplatte über einen NVME-Port verbunden ist und den nvme
verwendet Treiber unter Linux. Sie können nur an /dev/<something>
denken als ein Gerät, das <something>
verwendet Treiber. Alle Gerätetreiber und Benennungen haben ihre eigenen Standards, es ist nicht ein Standard für alle, also ist es völlig in Ordnung, wenn die Benennung für NVME-Geräte so ist. Und der Grund warum nvme
wird nicht in scsi
übersetzt Außerdem sind die beiden Protokolle zu unterschiedlich und eine solche Implementierung zu komplex (weitere Informationen finden Sie in den Kommentaren von @grawity und @Vality).
Beachten Sie zusätzlich zu der anderen Antwort, dass NVMe das Konzept von Namespaces hat, die nicht in /dev/sd
$ ls -1 /dev/nvme*
/dev/nvme0
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2