Nombre de la unidad? ¿Cuál es el término correcto para la parte "sda" de "/ dev / sda"?


16

fdisk (8) dice:

El dispositivo suele ser / dev / sda, / dev / sdb más o menos. El nombre de un dispositivo se refiere a todo el disco. Los sistemas antiguos sin libata (una biblioteca utilizada dentro del kernel de Linux para admitir controladores y dispositivos host ATA) marcan la diferencia entre los discos IDE y SCSI. En tales casos, el nombre del dispositivo será / dev / hd * (IDE) o / dev / sd * (SCSI).

La partición es un nombre de dispositivo seguido de un número de partición. Por ejemplo, / dev / sda1 es la primera partición en el primer disco duro del sistema. Consulte también la documentación del kernel de Linux (el archivo Documentation / devices.txt ).

Basado en esto, entiendo que en el contexto de Linux, una cadena como /dev/hdao /dev/sdaes un "nombre de dispositivo". De lo contrario, la segunda oración que he enfatizado anteriormente no tiene sentido: en su lugar diría: " Por ejemplo, sda1 es la primera partición en el primer disco duro del sistema " .

Esta vista está corroborada por el COMO de partición de Linux :

Por convención, las unidades IDE recibirán nombres de dispositivo / dev / hda a / dev / hdd .

¿Existe un término en inglés técnicamente correcto (y, preferiblemente, inequívoco y conciso) para la subcadena hdao el nombre sdade dicho dispositivo? Por ejemplo, ¿sería correcto en este caso llamar a sdala unidad?

  • "nombre corto"; o
  • "nombre de dispositivo no calificado"; o
  • ¿algo más?

(No estoy pidiendo coloquialismos que sean técnicamente incorrectos, incluso si son de uso común).


3
FWIW, la página de manual de dkinfo , que es el único comando que he encontrado que no usa el nombre de ruta completo de un dispositivo de disco, lo llama "nombre de disco".
Mark Plotnick

@ MarkPlotnick, gracias, pero esta pregunta es sobre Linux o GNU / Linux, no sobre otros sistemas operativos. Como tal, dkinfoque no es parte de Linux o GNU / Linux (sino que es parte de SunOS ), está fuera de alcance, lo siento.
sampablokuper

Respuestas:


25

sdaes el dispositivo de nombre . /dev/sdaes la ruta del dispositivo .

Piense en /sbin/fdisk, fdiskes el nombre del archivo , mientras que /sbin/fdiskes la ruta del archivo .


55
Aunque hay que tener cuidado con la "ruta del dispositivo" ya que hay varios significados de eso ...
derobert

1
Gracias :) "sda es el nombre del dispositivo. / Dev / sda es la ruta del dispositivo". Esa fue también mi visión inicial, por la razón que usted ha dado, pero no está respaldada por una lectura detallada del extracto de la página de manual de util-linux fdisk citado en mi pregunta. (Ahora he editado la pregunta para enfatizar esto mejor). De ahí mi pregunta sobre el asunto aquí en SE. Nota: Esto no significa que su respuesta sea incorrecta, ¿tal vez esa parte de la página del manual se escribió de manera descuidada? - solo significa que su respuesta y la página de manual de util-linux fdisk parecen estar en desacuerdo. ¿Tiene alguna fuente para corroborar su respuesta? Gracias de nuevo :)
sampablokuper

66
/dev/sdaes la ruta al dispositivo de bloqueo, pero la ruta real del dispositivo sería algo así/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp

2
@jiggunjer: Pero mount también dirige un controlador de dispositivo para asignar algo de RAM (no un volumen) como un sistema de archivos, puede --binduna parte del árbol de archivos como un subárbol, etc. Además, montar un "disco" RAID puede ser útil y / o extraño cosas con múltiples volúmenes para acceder o desactivar partes de él. En resumen, mountpuede hacer muchas cosas, pero la más típica es hacer que un sistema de archivos aparezca en algún lugar del árbol de archivos.
wallyk

1
@jiggunjer Creo que puede referirse a un formato de sistema de archivos, que no es lo mismo que la creación de instancias de dicho formato, que generalmente se conoce como un sistema de archivos, lo que llama un volumen. Incluso si eso es técnicamente incorrecto, eso es lo que la gente entiende por sistema de archivos. Todavía tengo que conocer a alguien que se refiera a una instanciación de un formato de sistema de archivos como un volumen. Ninguno de los libros que he leído sobre el tema ha usado la palabra "volumen" para significar "sistema de archivos" (en ambos sentidos).
Más claro

6

La sdaparte de /dev/sdapuede representar varias cosas según su punto de vista:

  1. Nombre de archivo
    En general, es el nombre de un archivo que, si es un disco, es un dispositivo de bloque , por lo tanto, un nombre de dispositivo

    Como 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. Los nombres de disco
    sdason la cadena que le da un nombre a un disco (diferente a las particiones sda1, sda2, sdX, etc.). Usualmente lo genera udev en función de las reglas de dispositivo aplicadas.

  3. La ruta del directorio
    sdaes el nombre base de la ruta/dev/sda


Limitado a la interpretación relacionada con los nombres de disco:

En los viejos tiempos: sda solía ser el nombre del dispositivo del disco SCSI a .

Como la misma biblioteca se extendió a las unidades SATA, supongo que ahora debería llamarse:

device name: SATA/SCSI/SAS disk a

O simplemente:

device name: first SATA/SCSI/SAS disk

3

Es el nombre del dispositivo de partición / disco de bloque generado por el núcleo :

sdaes un nombre de disco generado por el núcleo. Los controladores de kernel (incluida la pila SCSI que resulta muy conveniente de usar para discos SATA) llenan el disk_namecampo de gendiskestructura (es decir, para SCSI: drivers / scsi / sd.c # L3338 ) para generar el sdanombre.

Este nombre luego se usa para ser un nombre del dispositivo de bloque correspondiente en /dev, /sysy /proc/{partitions,diskstats}. Sin embargo, el manual para procfs lo nombra nombre de partición ( proc (5) ) y la documentación sobre las estadísticas del disco lo llama nombre de dispositivo ( iostats.txt ).


Interesante, supongo sday /dev/sdason intercambiables, y ambos se refiere como un nombre de dispositivo. Creo que eso es porque (en un sistema normal) se monta devfssobre /dev, por lo que nombres como sdaa su vez en senderos como /dev/sda(que también se puede llamar a un nombre).
Peter Cordes

1

En Linux / Unix todo es un archivo. Un dispositivo representa como un archivo. Todo el archivo de tipo de dispositivo ubicado en la ubicación / dev. Entonces sda es un archivo especial de tipo de dispositivo de bloque.

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

Nota : donde x es una variable. x representa la posición del disco duro.

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

Ahora 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, incluso los discos IDE (PATA) obtienen sd*nombres con algunos controladores, o siempre con núcleos modernos? Olvidé, no tengo máquinas activas con PATA y un núcleo moderno.
Peter Cordes

2
Gracias por la respuesta, pero no parece abordar la pregunta que hice :( Entiendo que en un contexto como /dev/sda, sdaes un archivo, y también entiendo lo que representa el archivo. Mi pregunta era sobre cómo llamar a la subcadena sday las cadenas me gusta, cuando se refiere a ellos verbalmente.
sampablokuper

1
@PeterCordes ha estado usando openSUSE Leap 42.2 durante un tiempo, puedo confirmar que las unidades IDE PATA, tanto duras como ópticas, obtienen sdXnombres, y también se mezclan con SATA y SUB.
Gypsy Spellweaver

1

Parece que hay al menos dos respuestas válidas

  1. sdapuede llamarse correctamente el "nombre base" para la unidad.

  2. sdatambién se puede llamar correctamente el "nombre del disco del núcleo" para la unidad.

¿Cómo llegaste a esta conclusión?

Por proceso de eliminación en cada uno de los posibles candidatos:

  • "nombre del dispositivo"

Este no puede ser el término correcto. Como se señaló en la pregunta original , se refiere al nombre completo (p /dev/sda. Ej. ), No al fragmento final (p. Ej.sda . .).

Existe evidencia que corrobora en fuentes adicionales, como p.68 de La Guía definitiva para SUSE Linux Enterprise Server 12 :

También puede optar por usar ... un soporte basado en el nombre del dispositivo (como /dev/sdb1) ...

y p.94 de The Linux Bible 2008 Edition :

Haga clic en la pestaña Dispositivo y escriba el nombre del dispositivo (como /dev/cdrom) ...

  • "nombre de archivo" o "nombre de archivo"

Este tampoco puede ser el término correcto, ya que se utiliza en la documentación técnica como sinónimo del nombre completo (p /dev/sda. Ej. ), No solo el fragmento final (p. Ej.sda . ):

BASENAME (1) :

basename - directorio de tira y sufijo de nombres de archivo

DIRNAME (1) :

dirname: elimina el último componente del nombre del archivo

  • "nombre"

Este tampoco puede ser el término correcto, ya que se utiliza en la documentación técnica como sinónimo del nombre completo (p /dev/sda. Ej. ), No solo el fragmento final (p. Ej.sda . ):

GNU Coreutils: invocación de nombre base :

basenameelimina cualquier componente del directorio principal del nombre .

GNU Coreutils: invocación de nombre de directorio :

dirnameimprime todos menos el componente final delimitado por barras de cada nombre .

  • "nombre corto" o "nombre corto"

Este tampoco puede ser el término correcto. No puedo encontrar ninguna documentación técnica que se refiera a la última parte del nombre de un dispositivo como "nombre corto" o "nombre corto". Esos términos parecen usarse, en Linux o GNU, solo en el contexto de las opciones de montaje VFAT o los nombres de host en las redes .

  • "nombre base"

Este término parece ser una respuesta válida, basada en la p.149 de Instalación de Red Hat Linux 7 :

Asegúrese absolutamente de que el nombre base del disco que planea particionar no esté en la lista (esto es hdb , en el caso de la unidad que agregué).

y las notas del curso para CST8207 (sistemas operativos GNU / Linux) en Algonquin College :

Definición de nombre base: El nombre base de cualquier nombre de ruta es su componente de nombre más a la derecha, a la derecha de su barra diagonal más a la derecha.

y p.1456 de Una guía práctica para Red Hat Linux 8 :

basename: el nombre de un archivo que, en contraste con un nombre de ruta, no menciona ninguno de los directorios que contienen el archivo (y, por lo tanto, no contiene barras [/]). Por ejemplo, hostses el nombre base de /etc/hosts.

Afortunadamente, GNU / Linux también tiene un basenamecomando, que puede usarse para obtener el nombre base:

$ basename '/dev/sda'
sda
  • "nombre del disco del núcleo"

Este término también parece ser una respuesta válida, debido a la p.100 de Linux Kernel in a Nutshell :

/dev/<diskname>

Utilice el nombre del disco del kernel especificado <diskname>como el disco raíz.

Por cierto, el "nombre del disco del núcleo" también parece ser una terminología válida en el contexto de Solaris :

Para esta versión del comando iostat, el resultado muestra estadísticas extendidas solo para aquellos dispositivos de disco con actividad distinta de cero, por la ruta del dispositivo físico en lugar del nombre del disco del núcleo lógico (es decir, en c0t0d0lugar de sd0).


Sí, puede decir basename cuando habla de dividir caminos, pero nunca he visto "basename" cuando habla de dispositivos. "Nombre" sí, "nombre base" no. Ninguno de los enlaces en su pregunta usa el término "nombre base" o "nombre base"; ¿Qué quisiste decir que las fuentes en la pregunta apoyan llamarlo un nombre base?
Peter Cordes

@PeterCordes, quise decir que las cadenas como /dev/sdase conocen por: BASENAME (1) como "nombres de archivo"; DIRNAME (1) como "nombres de archivo"; los documentos de GNU Coreutils como "nombres"; & por FDISK (8) y TLDP como "nombres de dispositivo". Por lo tanto, ninguno de esos términos puede usarse sin ambigüedad para referirse solo al componente final delimitado por barras diagonales de la cadena. Ergo, si queremos un término que pueda usarse para referirse inequívocamente a esa parte de la cadena, entonces debemos usar otra cosa. Las fuentes en mi respuesta, tomadas en conjunto, dicen que la parte anterior a la barra diagonal final es el "nombre del directorio", y la parte posterior es el "nombre base". Voilà .
sampablokuper

Supongo que es justo. Si estaba documentando algo que solo aceptaba sday no /dev/sda, podría llamarlo "nombre base". O simplemente puede usar "nombre" vs. "ruta" en esa documentación y dar un ejemplo, como lo hace la mayoría de la documentación. No creo que haya un término comúnmente acordado que no sea "nombre", a pesar de que algunos documentos usan "nombre" para incluir la ruta completa.
Peter Cordes

0

"Todo es un archivo", entonces, ¿ sdael nombre del archivo, /devel directorio (y la cadena vacía, la extensión) del dispositivo no están disponibles a través de la ruta completa /dev/sda, que por convención es el primer disco que no es IDE? ¿Al igual passwdque el nombre del archivo y /etcel directorio del archivo son accesibles ya /etc/passwdque, por convención, contienen datos de contraseña (ed)?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.