/dev/sd
était à l'origine utilisé pour les appareils utilisant le sd-bus
pilote, qui est le pilote des périphériques SCSI (et sd
signifie littéralement disque SCSI). De nos jours, il est utilisé pour les disques SCSI, les disques SATA et les disques USB. La raison semble être que maintenant presque tous les périphériques utilisent le protocole de commande SCSI au-dessus du bus non SCSI (le noyau traite tous les périphériques ATA de la même manière en utilisant libata et il prétend qu'il s'agit de périphériques SCSI - crédit à @grawity), et donc nous voyons tous ces appareils comme /dev/sd
.
Mais tous les périphériques de stockage ne sont pas /dev/sd
. /dev/hd
et /dev/xvd
sont toujours utilisés - le premier pour les disques PATA/IDE et le second pour les périphériques de stockage en nuage (disques virtuels, etc.) et ils ont tous des pilotes et des noms différents. Vous ne les voyez pas car le stockage virtuel est uniquement sur les clouds/hyperviseurs (et vous n'en utilisez probablement aucun) et parce que les disques PATA/IDE se font de plus en plus rares et que sur la plupart des machines modernes le noyau utilise en fait ide-scsi
pilote pour le traduire en protocole SCSI (crédit à @Wumpus Q. Wumbley).
D'autres exemples incluent /dev/mmcblkXpY
qui est pour les appareils SD/eMMC/bare NAND/NOR et a le même schéma de nommage que /dev/nvme
et /dev/vd
qui est à nouveau utilisé pour les disques virtuels dans le stockage en nuage (crédit à @Jan Dorniak pour les exemples supplémentaires).
Dans votre cas , il s'appelle /dev/nvme
car le disque est connecté via un port NVME et utilise le nvme
pilote sous Linux. Vous pouvez juste penser à /dev/<something>
en tant qu'appareil qui utilise <something>
chauffeur. Tous les pilotes de périphériques et les dénominations ont leurs propres normes, ce n'est pas une norme pour tous, donc c'est tout à fait correct si la dénomination des périphériques NVME est comme ça. Et la raison pour laquelle nvme
n'est pas traduit en scsi
de plus, les deux protocoles sont trop différents et une telle implémentation serait trop complexe (reportez-vous aux commentaires de @grawity et @Vality pour des informations plus détaillées).
En plus de l'autre réponse, notez que NVMe a le concept d'espaces de noms qui ne rentreraient pas dans le /dev/sd
$ ls -1 /dev/nvme*
/dev/nvme0
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2