Nome dell'unità? Qual è il termine corretto per la parte "sda" di "/ dev / sda"?


16

fdisk (8) dice:

Il dispositivo è generalmente / dev / sda, / dev / sdb o giù di lì. Un nome di dispositivo si riferisce all'intero disco. I vecchi sistemi senza libata (una libreria utilizzata all'interno del kernel Linux per supportare controller e dispositivi host ATA) fanno la differenza tra dischi IDE e SCSI. In tali casi il nome del dispositivo sarà / dev / hd * (IDE) o / dev / sd * (SCSI).

La partizione è un nome di dispositivo seguito da un numero di partizione. Ad esempio, / dev / sda1 è la prima partizione sul primo disco rigido nel sistema. Vedi anche la documentazione del kernel Linux (il file Documentation / devices.txt ).

Sulla base di questo, capisco che nel contesto di Linux, una stringa come /dev/hdao /dev/sdaè un "nome dispositivo". Altrimenti, la seconda frase che ho sottolineato sopra non ha senso: direbbe invece: " Ad esempio, sda1 è la prima partizione sul primo disco rigido del sistema " .

Questo punto di vista è corroborato dal Linux Partition HOWTO :

Per convenzione, alle unità IDE verranno dati i nomi dei dispositivi / dev / hda a / dev / hdd .

Esiste un termine inglese tecnicamente corretto (e, preferibilmente, inequivocabile e conciso) per la sottostringa hdao sdacon tale nome di dispositivo? Ad esempio, sarebbe corretto in questo caso chiamare sdal'unità:

  • "nome corto"; o
  • "nome del dispositivo non qualificato"; o
  • qualcos'altro?

(Non sto chiedendo colloquialismi tecnicamente errati, anche se sono di uso comune.)


3
FWIW, la pagina man di dkinfo , che è l'unico comando che ho incontrato che non utilizza il percorso completo di un dispositivo disco, lo chiama "nome disco".
Mark Plotnick,

@MarkPlotnick, grazie, ma questa domanda riguarda Linux o GNU / Linux, non altri sistemi operativi. Come tale, dkinfoche non fa parte di Linux o GNU / Linux (ma invece fa parte di SunOS ), è fuori portata, scusate.
sampablokuper,

Risposte:


25

sdaè il nome del dispositivo . /dev/sdaè il percorso del dispositivo .

Pensa /sbin/fdisk, fdiskè il nome del file , mentre /sbin/fdiskè il percorso del file .


5
Anche se devi stare attento con "percorso del dispositivo" in quanto ci sono diversi significati di questo ...
derobert

1
Grazie :) "sda è il nome del dispositivo. / Dev / sda è il percorso del dispositivo." Questa era anche la mia visione iniziale, per il motivo che hai indicato, ma non è supportata da una lettura attenta dell'estratto della pagina man fdisk util-linux citata nella mia domanda. (Ora ho modificato la domanda per enfatizzarlo meglio.) Da qui la mia domanda sull'argomento qui su SE. NB Questo non significa che la tua risposta sia sbagliata - forse quella parte della pagina man è stata scritta in modo sciatto? - significa solo che la tua risposta e la pagina man fdisk util-linux sembrano essere in contrasto. Hai qualche fonte per confermare la tua risposta? Grazie ancora :)
sampablokuper,

6
/dev/sdaè il percorso del dispositivo a blocchi, ma il percorso effettivo del dispositivo sarebbe qualcosa di simile/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp

2
@jiggunjer: Ma mountdirige anche un driver di dispositivo per mappare un po 'di RAM (non un volume) come file system, può --binduna parte dell'albero dei file come sottostruttura, ecc. Inoltre, montare un "disco" RAID può fare utile e / o bizzarro cose con più volumi per accedervi o parti sorde. In breve, mountpuò fare molte cose, ma il più tipico è far apparire un filesystem da qualche parte nella struttura dei file.
Wallyk,

1
@jiggunjer Penso che tu possa significare un formato di filesystem, che non è lo stesso della creazione di istanze di un tale formato, che di solito viene definito come filesystem, quello che tu chiami un volume. Anche se tecnicamente non è corretto, questo è ciò che la gente intende per filesystem. Devo ancora incontrare chiunque si riferisca a un'istanza di un formato di file system come volume. Nessuno dei libri che ho letto sull'argomento ha mai usato la parola "volume" per indicare "filesystem" (in entrambi i significati).
Più chiaro il

6

La sdaparte di /dev/sdapuò rappresentare diverse cose a seconda del tuo punto di vista:

  1. Nome del file
    In generale, è il nome di un file che, se è un disco, è un dispositivo a blocchi , quindi un nome di dispositivo

    Come 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. Nomi del disco
    sda è la stringa che dà un nome a un disco (diverso dalle partizioni sda1, sda2, sdX, ecc.). Di solito è generato da udev in base alle regole del dispositivo applicato.

  3. Il percorso della directory
    sdaè il nome di base del percorso/dev/sda


Limitato all'interpretazione relativa ai nomi dei dischi:

Ai vecchi tempi: sda era il nome del dispositivo di disco SCSI a .

Poiché la stessa libreria è stata estesa alle unità SATA, suppongo che ora dovrebbe essere chiamato:

device name: SATA/SCSI/SAS disk a

O semplicemente:

device name: first SATA/SCSI/SAS disk

3

È il nome del disco / partizione del blocco generato dal kernel :

sdaè un nome disco generato dal kernel. I driver del kernel (incluso lo stack SCSI che risulta essere molto comodo da usare per i dischi SATA) riempiono il disk_namecampo della gendiskstruttura (cioè per SCSI: drivers / scsi / sd.c # L3338 ) per generare il sdanome.

Questo nome viene in seguito utilizzato come nome del corrispondente dispositivo a blocchi in /dev, /syse /proc/{partitions,diskstats}. Tuttavia, il manuale per procfs nomina il nome della partizione ( proc (5) ) e la documentazione sulle statistiche del disco lo chiama nome dispositivo ( iostats.txt ).


Interessante, immagino sdae /dev/sdasono intercambiabili, ed entrambi indicati come nome del dispositivo. Penso che sia perché (in un sistema normale) si monta devfssu /dev, quindi nomi come sdasi trasformano in percorsi come /dev/sda(che si potrebbe anche chiamare un nome).
Peter Cordes,

1

In Linux / Unix tutto è un file. Un dispositivo rappresenta come un file. Tutti i file del tipo di dispositivo si trovano nella posizione / dev. Quindi sda è un file speciale di tipo dispositivo a blocchi.

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

Nota : dove x è una variabile. x rappresenta la posizione del disco rigido.

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

Ora in 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, anche i dischi IDE (PATA) ottengono sd*nomi con alcuni driver o sempre con kernel moderni? Dimentico, non ho macchine attive con PATA e un kernel moderno.
Peter Cordes,

2
Grazie per la risposta, ma non sembra rispondere alla domanda che ho posto :( Capisco che in un contesto come /dev/sda, sdaè un file e capisco anche cosa rappresenta il file. La mia domanda era su come chiamare la sottostringa sdae le stringhe piace, riferendosi a loro verbalmente.
sampablokuper,

1
@PeterCordes che utilizza openSUSE Leap 42.2 da un po ', posso confermare che le unità IDE PATA, sia hard che ottiche, ottengono sdXnomi e si mescolano anche con SATA e SUB.
Gypsy Spellweaver,

1

Sembra che ci siano almeno due risposte valide

  1. sdapuò essere correttamente chiamato "basename" per l'unità.

  2. sdapuò anche essere correttamente chiamato "nome del disco del kernel" per l'unità.

Come hai raggiunto questa conclusione?

Per processo di eliminazione su ciascuno dei candidati plausibili:

  • "nome del dispositivo"

Questo non può essere il termine corretto. Come indicato nella domanda originale , si riferisce al nome completo (ad es. /dev/sda), Non al frammento finale (ad es sda.).

Esistono prove a conferma di fonti aggiuntive, come ad esempio p.68 di The Definitive Guide to SUSE Linux Enterprise Server 12 :

Puoi anche scegliere di usare ... un mount basato sul nome del dispositivo (come /dev/sdb1) ...

e p.94 di The Linux Bible 2008 Edition :

Fai clic sulla scheda Dispositivo e digita il nome del dispositivo (come /dev/cdrom) ...

  • "nome file" o "nome file"

Anche questo non può essere il termine corretto, poiché viene utilizzato nella documentazione tecnica come sinonimo del nome completo (ad es. /dev/sda), Non solo del frammento finale (ad es.sda ):

BASENAME (1) :

basename: rimuovi directory e suffisso dai nomi dei file

DIRNAME (1) :

dirname: rimuove l'ultimo componente dal nome del file

  • "nome"

Anche questo non può essere il termine corretto, poiché viene utilizzato nella documentazione tecnica come sinonimo del nome completo (ad es. /dev/sda), Non solo del frammento finale (ad es.sda ):

GNU Coreutils: invocazione basename :

basenamerimuove qualsiasi componente di directory principale dal nome .

GNU Coreutils: invocazione dirname :

dirname stampa tutti tranne il componente delimitato da barra finale di ciascuno nome .

  • "nome breve" o "nome breve"

Anche questo non può essere il termine corretto. Non riesco a trovare alcuna documentazione tecnica che faccia riferimento all'ultima parte del nome di un dispositivo come "nome breve" o "nome breve". Questi termini sembrano essere usati, in Linux o GNU, solo nel contesto delle opzioni di mount VFAT o dei nomi host sulle reti .

  • "Basename"

Questo termine sembra essere una risposta valida, basata su p.149 di Installazione di Red Hat Linux 7 :

Assicurati assolutamente che il nome di base del disco che stai pianificando di partizionare non sia elencato (questo è hdb, nel caso dell'unità che ho aggiunto).

e le note del corso per CST8207 (sistemi operativi GNU / Linux) presso Algonquin College :

Definizione del nome di base: il nome di base di qualsiasi percorso è il componente più a destra, a destra della barra più a destra.

e p.1456 di Una guida pratica a Red Hat Linux 8 :

basename: il nome di un file che, a differenza di un percorso, non menziona nessuna delle directory che contengono il file (e quindi non contiene alcuna barra [/]). Ad esempio, hostsè il nome di base di /etc/hosts.

Fortunatamente, GNU / Linux ha anche un basenamecomando, che può essere usato per ottenere il nome di base:

$ basename '/dev/sda'
sda
  • "nome del disco del kernel"

Anche questo termine sembra essere una risposta valida, a causa di p.100 del kernel Linux in breve :

/dev/<diskname>

Usa il nome del disco del kernel specificato da <diskname> come disco principale.

Per inciso, anche "nome del disco del kernel" sembra essere una terminologia valida nel contesto di Solaris :

Per questa versione del comando iostat, l'output mostra statistiche estese solo per quei dispositivi a disco con attività diversa da zero, in base al percorso del dispositivo fisico anziché al nome del disco del kernel logico (ovvero, c0t0d0invece di sd0).


Sì, puoi dire basename quando parli di dividere percorsi, ma non ho mai visto "basename" quando parlo di dispositivi. "Nome" sì, "nome base" no. Nessuno dei link nella tua domanda usa il termine "basename" o "base name"; cosa volevi dire che le fonti nella domanda supportano chiamandolo un basename?
Peter Cordes,

@PeterCordes, intendevo che stringhe come quelle /dev/sdaindicate da: BASENAME (1) come "nomi di file"; DIRNAME (1) come "nomi file"; i documenti GNU Coreutils come "nomi"; e da FDISK (8) e TLDP come "nomi dei dispositivi". Pertanto, nessuno di questi termini può mai essere usato in modo inequivocabile per riferirsi solo al componente finale delimitato da barra della stringa. Ergo, se vogliamo un termine che può essere usato per riferirci in modo inequivocabile a quella parte della stringa, allora dobbiamo usare qualcos'altro. Le fonti nella mia risposta, prese insieme, dicono che la parte prima della barra finale è il "dirname", e la parte successiva è il "basename". Voilà .
sampablokuper,

Immagino sia giusto. Se stavi documentando qualcosa che ha solo accettato sdae non /dev/sda, potresti chiamarlo "basename". Oppure potresti semplicemente usare "nome" vs. "percorso" in quella documentazione e fare un esempio, come fa la maggior parte della documentazione. Non penso che ci sia un termine comunemente concordato diverso da "nome", anche se alcuni documenti usano "nome" per includere il percorso completo.
Peter Cordes,

0

"Tutto è un file" - quindi sdail semplice nome del file, /devla directory (e la stringa vuota non sono l'estensione) del dispositivo resi disponibili tramite il percorso completo /dev/sda, che per convenzione è il primo disco non IDE? Proprio come passwdil nome del file e /etcla directory del file sono accessibili in quanto /etc/passwdper convenzione contengono (ed) dati di password?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.