Nom du lecteur? Quel est le terme correct pour la partie «sda» de «/ dev / sda»?


16

fdisk (8) dit:

Le périphérique est généralement / dev / sda, / dev / sdb ou ainsi. Un nom de périphérique fait référence à l'intégralité du disque. Les anciens systèmes sans libata (une bibliothèque utilisée dans le noyau Linux pour prendre en charge les contrôleurs et périphériques hôtes ATA) font la différence entre les disques IDE et SCSI. Dans de tels cas, le nom du périphérique sera / dev / hd * (IDE) ou / dev / sd * (SCSI).

La partition est un nom de périphérique suivi d'un numéro de partition. Par exemple, / dev / sda1 est la première partition du premier disque dur du système. Voir aussi la documentation du noyau Linux (le fichier Documentation / devices.txt ).

Sur cette base, je comprends que dans le contexte de Linux, une chaîne comme /dev/hdaou /dev/sdaest un "nom de périphérique". Sinon, la deuxième phrase que j'ai soulignée ci-dessus n'a pas de sens: elle dirait plutôt: " Par exemple, sda1 est la première partition sur le premier disque dur du système. "

Cette vue est corroborée par le Linux Partition HOWTO :

Par convention, les disques IDE se verront attribuer des noms de périphérique / dev / hda à / dev / hdd .

Existe-t-il un terme anglais techniquement correct (et, de préférence, sans ambiguïté et concis) pour la sous-chaîne hdaou sdaun tel nom de périphérique? Par exemple, serait-il correct dans ce cas d'appeler sdale lecteur:

  • "nom court"; ou
  • "nom d'appareil non qualifié"; ou
  • autre chose?

(Je ne demande pas des expressions familières techniquement incorrectes, même si elles sont couramment utilisées.)


3
FWIW, la page de manuel de dkinfo , qui est la seule commande que j'ai rencontrée qui n'utilise pas le chemin d'accès complet d'un périphérique de disque, l'appelle le "nom de disque".
Mark Plotnick

@MarkPlotnick, merci, mais cette question concerne Linux ou GNU / Linux, pas les autres OS. En tant que tel, dkinfoqui ne fait pas partie de Linux ou GNU / Linux (mais fait plutôt partie de SunOS ), est hors de portée, désolé.
sampablokuper

Réponses:


25

sdaest le nom du périphérique . /dev/sdaest le chemin du périphérique .

Pensez à /sbin/fdisk, fdiskest le nom du fichier , tandis que /sbin/fdiskest le chemin du fichier .


5
Bien que vous deviez faire attention au "chemin du périphérique" car il y a plusieurs significations à cela ...
derobert

1
Merci :) "sda est le nom du périphérique. / Dev / sda est le chemin du périphérique." C'était également mon point de vue initial, pour la raison que vous avez donnée, mais elle n'est pas étayée par une lecture attentive de l'extrait de page de manuel util-linux fdisk cité dans ma question. (J'ai maintenant édité la question pour mieux le souligner.) D'où ma question sur le sujet ici sur SE. NB Cela ne signifie pas que votre réponse est fausse - peut-être que cette partie de la page de manuel a été mal écrite? - cela signifie simplement que votre réponse et la page de manuel util-linux fdisk semblent être en désaccord. Avez-vous des sources pour corroborer votre réponse? Merci encore :)
sampablokuper

6
/dev/sdaest le chemin vers le périphérique bloc, mais le chemin réel du périphérique serait quelque chose comme/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp

2
@jiggunjer: Mais mountdirige également un pilote de périphérique pour mapper de la RAM (pas un volume) en tant que système de fichiers, peut --bindune partie de l'arborescence de fichiers en tant que sous-arbre, etc. En outre, le montage d'un "disque" RAID peut être utile et / ou bizarre des objets avec plusieurs volumes pour accéder à certaines parties ou en désactiver l'accès. En bref, mountpeut faire beaucoup de choses, mais le plus typique est de faire apparaître un système de fichiers quelque part dans l'arborescence des fichiers.
wallyk

1
@jiggunjer Je pense que vous pouvez parler d'un format de système de fichiers, qui n'est pas la même chose que l'instanciation d'un tel format, qui est généralement considéré comme un système de fichiers, ce que vous appelez un volume. Même si c'est techniquement incorrect, c'est ce que les gens entendent par système de fichiers. Je n'ai encore rencontré personne qui se réfère à une instanciation d'un format de système de fichiers en tant que volume. Aucun des livres que j'ai lus sur le sujet n'a jamais utilisé le mot "volume" pour signifier "système de fichiers" (dans les deux sens).
Plus clair le

6

La sdapartie de /dev/sdapeut représenter plusieurs choses selon votre point de vue:

  1. Nom de fichier
    En général, c'est le nom d'un fichier qui, s'il s'agit d'un disque, est un périphérique bloc , donc un nom de périphérique

    En tant que root:

    $ ls -la /dev/sd*
    brw-rw---- 1 root disk 8, 0 Sep 11 22:01 /dev/sda
    brw-rw---- 1 root disk 8, 1 Sep 11 22:02 /dev/sda1
    brw-rw---- 1 root disk 8, 2 Sep 11 22:01 /dev/sda2
    
  2. Les noms de disque
    sdasont la chaîne qui donne un nom à un disque (différent des partitions sda1, sda2, sdX, etc.). Il est généralement généré par udev en fonction des règles de périphérique appliquées.

  3. Le chemin du répertoire
    sdaest le nom de base du chemin/dev/sda


Limité à l'interprétation liée aux noms de disque:

Autrefois: sda était le nom de périphérique du disque SCSI a .

Comme la même bibliothèque a été étendue aux disques SATA, je suppose que maintenant elle devrait être appelée:

device name: SATA/SCSI/SAS disk a

Ou simplement:

device name: first SATA/SCSI/SAS disk

3

Il s'agit du nom du périphérique de disque de bloc / partition généré par le noyau :

sdaest un nom de disque généré par le noyau. Les pilotes du noyau (y compris la pile SCSI qui s'avère très pratique à utiliser pour les disques SATA) remplissent le disk_namechamp de gendiskstructure (c'est-à-dire pour SCSI: drivers / scsi / sd.c # L3338 ) pour générer le sdanom.

Ce nom est utilisé plus tard pour être un nom de périphérique de bloc correspondant dans /dev, /syset /proc/{partitions,diskstats}. Cependant, le manuel de procfs nomme son nom de partition ( proc (5) ) et la documentation sur les statistiques du disque l'appelle nom de périphérique ( iostats.txt ).


Intéressant, je suppose sdaet /dev/sdasont interchangeables, et tous deux appelés nom d'appareil. Je pense que c'est parce que (dans un système normal) vous montez devfsdessus /dev, donc des noms comme se sdatransforment en chemins comme /dev/sda(que vous pourriez également appeler un nom).
Peter Cordes

1

Sous Linux / Unix, tout est un fichier. Un périphérique représente un fichier. Tous les fichiers de type de périphérique situés à l'emplacement / dev. Donc sda est un fichier spécial de type périphérique de bloc.

hd(x) - IDE
sd(x) - SATA,SSD,ISCI,SAS

Remarque : où x est une variable. x représente la position du disque dur.

if x = a for IDE disk means hda represents primary master disk
   x = b for IDE disk means hdb represents primary slave disk

Maintenant en sd *

if x = a for SATA/SSD/ISCI/SAS sda represents first disk
   x = b fo SATA/SSD/ISCI/SAS sdb represents second disk

IIRC, même les disques IDE (PATA) obtiennent des sd*noms avec certains pilotes, ou toujours avec des noyaux modernes? J'oublie, je n'ai pas de machines actives avec PATA et un noyau moderne.
Peter Cordes

2
Merci pour la réponse, mais cela ne semble pas répondre à la question que j'ai posée :( Je comprends que dans un contexte comme /dev/sda, sdaest un fichier, et je comprends aussi ce que le fichier représente. Ma question était de savoir comment appeler la sous-chaînesda - et les chaînes comme ça, en se référant à eux verbalement.
sampablokuper

1
@PeterCordes ayant utilisé openSUSE Leap 42.2 pendant un certain temps, je peux confirmer que les disques IDE PATA, à la fois durs et optiques, obtiennent des sdXnoms et sont également entremêlés avec SATA et SUB.
Gypsy Spellweaver

1

Il semble y avoir au moins deux réponses valides

  1. sdapeut être correctement appelé le "nom de base" du lecteur.

  2. sdapeut également être correctement appelé le "nom du disque du noyau" pour le lecteur.

Comment êtes-vous arrivé à cette conclusion?

Par processus d'élimination sur chacun des candidats plausibles:

  • "nom de l'appareil"

Ce ne peut pas être le terme correct. Comme indiqué dans la question d'origine , il fait référence au nom complet (par exemple /dev/sda), et non au fragment final (par exemple sda).

Des preuves corroborantes existent dans d'autres sources, telles que la page 68 du guide définitif de SUSE Linux Enterprise Server 12 :

Vous pouvez également choisir d'utiliser… un support basé sur le nom de l'appareil (tel que /dev/sdb1)…

et p.94 de The Linux Bible 2008 Edition :

Cliquez sur l'onglet Appareil et saisissez le nom de l'appareil (tel que /dev/cdrom)…

  • "nom de fichier" ou "nom de fichier"

Cela ne peut pas non plus être le terme correct, car il est utilisé dans la documentation technique comme synonyme du nom complet (par exemple /dev/sda), et pas seulement du fragment final (par exemplesda ):

NOM DE BASE (1) :

nom de base - supprimer le répertoire et le suffixe des noms de fichiers

DIRNAME (1) :

dirname - supprime le dernier composant du nom de fichier

  • "Nom"

Cela ne peut pas non plus être le terme correct, car il est utilisé dans la documentation technique comme synonyme du nom complet (par exemple /dev/sda), et pas seulement du fragment final (par exemplesda ):

GNU Coreutils : invocation du nom de base :

basenamesupprime tous les principaux composants de répertoire du nom .

GNU Coreutils : invocation de dirname :

dirnameimprime tout sauf le dernier composant délimité par une barre oblique de chaque nom .

  • "nom abrégé" ou "nom abrégé"

Ce n'est pas non plus le terme correct. Je ne trouve aucune documentation technique faisant référence à la dernière partie d'un nom d'appareil comme un "nom court" ou un "nom court". Ces termes semblent être utilisés, sous Linux ou GNU, uniquement dans le contexte des options de montage VFAT ou des noms d' hôte sur les réseaux .

  • "nom de base"

Ce terme semble être une réponse valide, basée sur la p.149 de Installation de Red Hat Linux 7 :

Assurez-vous absolument que le nom de base du disque que vous envisagez de partitionner ne figure pas dans la liste hdb , dans le cas du lecteur que j'ai ajouté).

et les notes de cours pour CST8207 (GNU / Linux Operating Systems) au Collège Algonquin :

Définition du nom de base: Le nom de base de tout chemin d'accès est son composant de nom le plus à droite, à droite de sa barre oblique la plus à droite.

et p.1456 d' un guide pratique de Red Hat Linux 8 :

nom de base: nom d'un fichier qui, contrairement à un chemin d'accès, ne mentionne aucun des répertoires contenant le fichier (et ne contient donc pas de barres obliques [/]). Par exemple, hostsest le nom de base de/etc/hosts .

Heureusement, GNU / Linux possède également une basenamecommande, qui peut être utilisée pour obtenir le nom de base:

$ basename '/dev/sda'
sda
  • "nom du disque du noyau"

Ce terme semble également être une réponse valable, en raison de la p.100 du noyau Linux en bref :

/dev/<diskname>

Utilisez le nom de disque du noyau spécifié par <diskname>comme disque racine.

Par ailleurs, "nom du disque du noyau" semble également être une terminologie valide dans le contexte de Solaris :

Pour cette version de la commande iostat, la sortie affiche des statistiques étendues uniquement pour les périphériques de disque dont l'activité est différente de zéro, par chemin de périphérique physique au lieu du nom du disque du noyau logique (c'est-à-dire c0t0d0au lieu de sd0).


Oui, vous pouvez dire nom de base lorsque vous parlez de diviser les chemins, mais je n'ai jamais vu "nom de base" lorsque vous parlez d'appareils. "Nom" oui, "nom de base" non. Aucun des liens de votre question n'utilise le terme "nom de base" ou "nom de base"; que vouliez-vous dire que les sources de la question prennent en charge l'appeler un nom de base?
Peter Cordes

@PeterCordes, je voulais dire que des chaînes telles que /dev/sdasont désignées par: BASENAME (1) comme "filenames"; DIRNAME (1) comme "noms de fichiers"; les documents GNU Coreutils en tant que "noms"; & par FDISK (8) et TLDP comme "noms de périphérique". Ainsi, aucun de ces termes ne peut jamais être utilisé sans ambiguïté pour se référer uniquement au dernier composant délimité par une barre oblique de la chaîne. Ergo, si nous voulons un terme qui peut être utilisé pour faire référence sans ambiguïté à cette partie de la chaîne, alors nous devons utiliser autre chose. Les sources dans ma réponse, prises ensemble, disent que la partie avant la barre oblique finale est le "dirname", et la partie après est le "nom de base". Voilà .
sampablokuper

Je suppose que c'est juste. Si vous documentiez quelque chose qui n'acceptait que sdaet non /dev/sda, vous pourriez l'appeler "nom de base". Ou vous pouvez simplement utiliser "nom" contre "chemin" dans cette documentation et donner un exemple, comme la plupart des documents. Je ne pense pas qu'il existe un terme communément convenu autre que "nom", même si certains documents utilisent "nom" pour inclure le chemin complet.
Peter Cordes

0

"Tout est un fichier" - sdale simple nom de fichier, /devle répertoire (et la chaîne vide l'extension) ne sont-ils pas mis à disposition via le chemin d'accès complet /dev/sda, qui par convention est le premier disque non IDE? Tout comme passwdle nom de fichier et /etcle répertoire du fichier sont-ils accessibles, car /etc/passwdpar convention ils contiennent des données de mot de passe (ed)?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.