Nome da unidade? Qual é o termo correto para a parte “sda” de “/ dev / sda”?

15

fdisk (8) diz:

The device is usually /dev/sda, /dev/sdb or so. A device name refers to the entire disk. Old systems without libata (a library used inside the Linux kernel to support ATA host controllers and devices) make a difference between IDE and SCSI disks. In such cases the device name will be /dev/hd* (IDE) or /dev/sd* (SCSI).

The partition is a device name followed by a partition number. For example, /dev/sda1 is the first partition on the first hard disk in the system. See also Linux kernel documentation (the Documentation/devices.txt file).

Com base nisso, eu entendo que no contexto do Linux, uma string como /dev/hda ou /dev/sda é um "nome do dispositivo". Caso contrário, a segunda frase que enfatizei acima não faz sentido: em vez disso, ele diria: " Por exemplo, sda1 é a primeira partição no primeiro disco rígido do sistema. "

Esta opinião é corroborada pelo Linux Partition HOWTO :

By convention, IDE drives will be given device names /dev/hda to /dev/hdd.

Existe um termo em inglês tecnicamente correto (e, de preferência, não ambíguo e conciso) para a substring hda ou sda de tal nome de dispositivo? Por exemplo, seria correto, neste caso, chamar sda da unidade:

  • "nome abreviado"; ou
  • "nome do dispositivo não qualificado"; ou
  • alguma outra coisa?

(Eu não estou pedindo por coloquialismos que são tecnicamente incorretos, mesmo se eles estiverem em uso comum.)

    
por sampablokuper 17.09.2017 / 02:28

6 respostas

1

Parece haver pelo menos duas respostas válidas

  1. sda pode ser corretamente chamado de "basename" para a unidade.

  2. sda também pode ser chamado corretamente de "nome do disco do kernel" para a unidade.

Como você chegou a essa conclusão?

Por processo de eliminação em cada um dos candidatos plausíveis:

  • "nome do dispositivo"

Este não pode ser o termo correto. Conforme observado na pergunta original , ela se refere à nome totalmente qualificado (por exemplo, /dev/sda ), não ao fragmento final (por exemplo, sda ).

Existem evidências que corroboram em fontes adicionais, como p.68 de O Guia Definitivo do SUSE Linux Enterprise Server 12 :

You can also choose to use … a mount that is based on device name (such as /dev/sdb1) …

e p.94 de A Edição Linux Bible 2008 :

Click the Device tab and type the device name (such as /dev/cdrom) …

  • "nome do arquivo" ou "nome do arquivo"

Esse termo também não pode ser o correto, pois é usado na documentação técnica como sinônimo do nome totalmente qualificado (por exemplo, /dev/sda ), não apenas o fragmento final (por exemplo, sda ):

BASENAME (1) :

basename - strip directory and suffix from filenames

DIRNAME (1) :

dirname - strip last component from file name

  • "nome"

Esse termo também não pode ser o correto, pois é usado na documentação técnica como sinônimo do nome totalmente qualificado (por exemplo, /dev/sda ), não apenas o fragmento final (por exemplo, sda ):

GNU Coreutils: invocação do nome de base :

basename removes any leading directory components from name.

GNU Coreutils: invocação de dirname :

dirname prints all but the final slash-delimited component of each name.

  • "shortname" ou "short name"

Este não pode ser o termo correto também. Não consigo encontrar nenhuma documentação técnica que se refira à última parte do nome de um dispositivo como "shortname" ou "short name". Esses termos parecem ser usados, no Linux ou no GNU, somente no contexto de opções de montagem VFAT ou host nomes em redes .

  • "basename"

Este termo parece ser uma resposta válida, com base em p.149 de Instalando o Red Hat Linux 7 :

Make absolutely sure that the basename of the disk you are planning to partition is not listed (this is hdb, in the case of the drive I added).

e as notas do curso para CST8207 (operação GNU / Linux) Sistemas) em Algonquin College :

Definition of basename: The basename of any pathname is its right-most name component, to the right of its right-most slash.

e p.1456 de Um Guia Prático para o Red Hat Linux 8 :

basename: The name of a file that, in contrast to a pathname, does not mention any of the directories containing the file (and therefore does not contain any slashes [/]). For example, hosts is the basename of /etc/hosts.

Felizmente, o GNU / Linux também tem um comando basename , que pode ser usado para obter o nome de base:

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

Este termo também parece ser uma resposta válida, devido a p.100 do Linux Kernel in a Nutshell :

/dev/<diskname>

Use the kernel disk name specified by <diskname> as the root disk.

A propósito, "nome do disco do kernel" também aparece para ser uma terminologia válida no contexto de Solaris :

For this version of the iostat command, the output shows extended statistics for only those disk devices with nonzero activity, by physical device path instead of the logical kernel disk name (that is, c0t0d0 instead of sd0).

    
por 17.09.2017 / 12:45
25

sda é o dispositivo nome . /dev/sda é o dispositivo caminho .

Pense em /sbin/fdisk , fdisk é o arquivo name , enquanto /sbin/fdisk é o arquivo path .

    
por 17.09.2017 / 03:00
6

A parte sda de /dev/sda pode representar várias coisas dependendo do seu ponto de vista:

  1. Nome do arquivo
    Em geral, é o nome de um arquivo, que, se for um disco, é um dispositivo block , portanto, um nome do 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. Nomes de disco em sda é a string que dá nome a um disco (diferente de partições sda1, sda2, sdX, etc.). Geralmente é gerado pelo udev com base nas regras do dispositivo aplicadas.

  3. Caminho do diretório
    sda é o nome da base do caminho /dev/sda

Limitado à interpretação relacionada a nomes de discos:

Nos tempos antigos: sda costumava ser o nome do dispositivo disco SCSI a .

Como a mesma biblioteca foi estendida para as unidades SATA, acho que agora deve ser chamado:

device name: SATA/SCSI/SAS disk a

Ou simplesmente:

device name: first SATA/SCSI/SAS disk
    
por 17.09.2017 / 03:41
3

É o nome do dispositivo de disco / partição do bloco gerado pelo kernel :

sda é um nome do disco gerado pelo kernel. Os drivers do kernel (incluindo a pilha SCSI que, por acaso, é muito conveniente de usar para discos SATA) preenchem o campo disk_name da estrutura gendisk (ou seja, para SCSI: drivers/scsi/sd.c#L3338 ) para gerar sda name.

Mais tarde, esse nome é usado como nome do dispositivo de bloco correspondente em /dev , /sys e /proc/{partitions,diskstats} . No entanto, o manual para procfs nomeia o nome da partição ( proc (5) ) e documentação em stats do disco chama nome do dispositivo ( iostats.txt ).

    
por 17.09.2017 / 12:56
1

No Linux / Unix tudo é um arquivo. Um dispositivo representa como um arquivo. Todo o arquivo de tipo de dispositivo localizado no local / dev. Então sda é um arquivo especial do tipo de dispositivo de bloco.

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

Nota : onde x é uma variável. x representa a posição do disco rígido.

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

Agora em sd *

if x = a for SATA/SSD/ISCI/SAS sda represents first disk
   x = b fo SATA/SSD/ISCI/SAS sdb represents second disk
    
por 17.09.2017 / 07:52
0

"Tudo é um arquivo" - não é sda o simples nome do arquivo, /dev o diretório (e a string vazia a extensão) do dispositivo disponibilizado por meio do caminho completo /dev/sda , que por convenção é o primeiro disco não-IDE? Assim como passwd é o nome do arquivo e /etc o diretório do arquivo acessível como /etc/passwd que por convenção contém (ed) dados de senha?

    
por 17.09.2017 / 12:20