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

16

O fdisk (8) diz:

O dispositivo geralmente é / dev / sda, / dev / sdb ou mais. Um nome de dispositivo refere-se ao disco inteiro. Sistemas antigos sem libata (uma biblioteca usada dentro do kernel do Linux para suportar dispositivos e controladores de host ATA) fazem a diferença entre os discos IDE e SCSI. Nesses casos, o nome do dispositivo será / dev / hd * (IDE) ou / dev / sd * (SCSI).

A partição é um nome de dispositivo seguido por um número de partição. Por exemplo, / dev / sda1 é a primeira partição no primeiro disco rígido do sistema. Consulte também a documentação do kernel do Linux (o arquivo Documentation / devices.txt ).

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

Essa visão é corroborada pelo HOWTO da Partição do Linux :

Por convenção, as unidades IDE receberão nomes de dispositivos / dev / hda para / dev / hdd .

Existe um termo em inglês tecnicamente correto (e, de preferência, inequívoco e conciso) para a substring hdaou o sdanome desse dispositivo? Por exemplo, seria correto neste caso chamar sdaas unidades:

  • "nome curto"; ou
  • "nome não qualificado do dispositivo"; ou
  • algo mais?

(Não estou pedindo coloquialismos tecnicamente incorretos, mesmo que sejam de uso comum.)

sampablokuper
fonte
3
O FWIW, a página de manual do dkinfo , que é o único comando que encontrei que não usa o nome do caminho completo de um dispositivo de disco, o chama de "nome do disco".
precisa saber é o seguinte
@ MarkPlotnick, obrigado, mas esta pergunta é sobre Linux ou GNU / Linux, não sobre outros sistemas operacionais. Como tal, dkinfoque não faz parte do Linux ou GNU / Linux (mas faz parte do SunOS ), está fora do escopo, desculpe.
Sampablokuper

Respostas:

25

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

Pense em /sbin/fdisk, fdiské o nome do arquivo , enquanto /sbin/fdiské o caminho do arquivo .

Tecelão Mágico Cigano
fonte
5
Embora você tenha que ter cuidado com o "caminho do dispositivo", pois existem vários significados disso ...
derobert 17/17
11
Obrigado :) "sda é o nome do dispositivo. / Dev / sda é o caminho do dispositivo." Essa foi também a minha visão inicial, pelo motivo que você mencionou, mas não é suportada por uma leitura atenta do trecho da página de manual do util-linux fdisk citado na minha pergunta. (Agora editei a pergunta para melhor enfatizar isso.) Portanto, pergunto sobre o assunto aqui no SE. NB: Isso não significa que sua resposta esteja errada - talvez essa parte da página de manual tenha sido escrita com negligência? - significa apenas que sua resposta e a página do manual util-linux fdisk parecem estar em desacordo. Você tem alguma fonte para corroborar sua resposta? Mais uma vez obrigado :)
#
6
/dev/sdaé o caminho para o dispositivo de bloco, mas o caminho real do dispositivo seria algo parecido com/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda
Dietrich Epp 17/17
2
@jiggunjer: Mas mounttambém direciona um driver de dispositivo para mapear alguma RAM (não um volume) como um sistema de arquivos, pode --binduma parte da árvore de arquivos como uma subárvore etc. Além disso, montar um "disco" RAID pode ser útil e / ou bizarro coisas com vários volumes para acessar ou desativar partes dele. Em resumo, mountpode fazer muitas coisas, mas o mais típico é fazer com que um sistema de arquivos apareça em algum lugar da árvore de arquivos.
wallyk
11
@ jiggunjer Acho que você pode significar um formato de sistema de arquivos, que não é o mesmo que a instanciação de um formato desse tipo, que geralmente é chamado de sistema de arquivos, o que você chama de volume. Mesmo que isso seja tecnicamente incorreto, é o que as pessoas querem dizer com sistema de arquivos. Ainda tenho que encontrar alguém que se refira a uma instanciação de um formato de sistema de arquivos como um volume. Nenhum dos livros que li sobre o assunto jamais usou a palavra "volume" para significar "sistema de arquivos" (em qualquer um dos significados).
mais claro
6

A sdaparte de /dev/sdapode 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 de bloco , portanto, um nome de dispositivo

    Como raiz:

    $ 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
    sdaé a string que atribui um nome a um disco (diferente das partições sda1, sda2, sdX, etc.). Geralmente é gerado pelo udev com base nas regras de dispositivo aplicadas.

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


Limitado à interpretação relacionada aos nomes de disco:

Antigamente: sda costumava ser o nome do dispositivo do disco SCSI a .

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

device name: SATA/SCSI/SAS disk a

Ou simplesmente:

device name: first SATA/SCSI/SAS disk
Seta
fonte
3

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

sdaé um nome de disco gerado pelo kernel. Os drivers do kernel (incluindo a pilha SCSI, que é muito conveniente de usar para discos SATA) preenchem o disk_namecampo da gendiskestrutura (por exemplo, para SCSI: drivers / scsi / sd.c # L3338 ) para gerar o sdanome.

Este nome é usado posteriormente para ser o nome do dispositivo de bloco correspondente em /dev, /syse /proc/{partitions,diskstats}. No entanto, o manual para procfs nomeia o nome da partição ( proc (5) ) e a documentação sobre estatísticas do disco chama-o nome do dispositivo ( iostats.txt ).

myaut
fonte
Interessante, eu acho sdae /dev/sdasão intercambiáveis, e ambos chamados de nome do dispositivo. Eu acho que é porque (em um sistema normal) você montar devfsem /dev, por isso, nomes como sdatransformar-se em caminhos como /dev/sda(que você também pode chamar um nome).
Peter Cordes
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 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
Rakib
fonte
IIRC, até discos IDE (PATA) recebem sd*nomes com alguns drivers, ou sempre com kernels modernos? Eu esqueço, não tenho máquinas ativas com PATA e um kernel moderno.
Peter Cordes
2
Obrigado pela resposta, mas não parece abordar a pergunta que fiz :( Entendo que em um contexto como /dev/sda, sdaé um arquivo, e também entendo o que o arquivo representa. Minha pergunta era sobre o que chamar de substring sdae strings como ele, quando se refere a eles verbalmente.
sampablokuper
11
O @PeterCordes usa o openSUSE Leap 42.2 há um tempo, posso confirmar que as unidades IDE PATA, tanto físicas quanto ópticas, obtêm sdXnomes e também se misturam com o SATA e o SUB.
Gypsy Spellweaver
1

Parece haver pelo menos duas respostas válidas

  1. sdapode ser chamado corretamente de "nome da base" da unidade.

  2. sdatambé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. Como observado na pergunta original , refere-se ao nome completo (por exemplo /dev/sda), não ao fragmento final (por exemplo sda).

Existem evidências corroboradoras em fontes adicionais, como na p.68 do Guia Definitivo do SUSE Linux Enterprise Server 12 :

Você também pode optar por usar… uma montagem baseada no nome do dispositivo (como /dev/sdb1)…

e p.94 da Linux Bible 2008 Edition :

Clique na guia Dispositivo e digite o nome do dispositivo (como /dev/cdrom)…

  • "filename" ou "file name"

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

NOME DE BASE (1) :

basename - diretório de faixa e sufixo dos nomes de arquivo

DIRNAME (1) :

dirname - retira o último componente do nome do arquivo

  • "nome"

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

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

basenameremove todos os principais componentes de diretório do nome .

GNU Coreutils: invocação de dirname :

dirnameimprime todos, exceto o componente final delimitado por barra de cada nome .

  • "nome abreviado" ou "nome abreviado"

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

  • "basename"

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

Certifique-se de que o nome da base do disco que você planeja particionar não esteja listado (ou seja hdb, no caso da unidade que adicionei).

e as notas do curso para CST8207 (Sistemas operacionais GNU / Linux) no Algonquin College :

Definição do nome da base: o nome da base de qualquer nome de caminho é o componente de nome mais à direita, à direita da barra mais à direita.

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

basename: O nome de um arquivo que, ao contrário de um nome de caminho, não menciona nenhum dos diretórios que contém o arquivo (e, portanto, não contém barras [/]). Por exemplo, hostsé o nome base de /etc/hosts.

Felizmente, o GNU / Linux também possui um basenamecomando, que pode ser usado para obter o nome da base:

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

Este termo também parece ser uma resposta válida, devido à p.100 do Linux Kernel em poucas palavras :

/dev/<diskname>

Use o nome do disco do kernel especificado por <diskname>como o disco raiz.

Aliás, "nome do disco do kernel" também parece ser uma terminologia válida no contexto do Solaris :

Para esta versão do comando iostat, a saída mostra estatísticas estendidas apenas para os dispositivos de disco com atividade diferente de zero, pelo caminho do dispositivo físico em vez do nome do disco lógico do kernel (ou seja, em c0t0d0vez de sd0).

sampablokuper
fonte
Sim, você pode dizer o nome da base ao falar sobre a divisão de caminhos, mas nunca vi "nome da base" ao falar sobre dispositivos. "Nome" sim, "nome base" não. Nenhum dos links em sua pergunta usa o termo "basename" ou "base name"; o que você quis dizer com que as fontes da pergunta suportam chamá-lo de nome de base?
Peter Cordes
@PeterCordes, quis dizer que strings como /dev/sdasão referidas por: BASENAME (1) como "filenames"; DIRNAME (1) como "nomes de arquivos"; o GNU Coreutils documenta como "nomes"; & por FDISK (8) e TLDP como "nomes de dispositivos". Portanto, nenhum desses termos pode ser usado inequivocamente para se referir apenas ao componente final delimitado por barra da string. Portanto, se queremos um termo que possa ser usado para se referir inequivocamente a essa parte da cadeia, devemos usar outra coisa. As fontes da minha resposta, em conjunto, dizem que a parte antes da barra final é o "dirname" e a parte depois é o "nome da base". Voilà .
Sampablokuper
Eu acho que é justo. Se você estava documentando algo que apenas aceitava sdae não /dev/sda, poderia chamá-lo de "nome da base". Ou você pode simplesmente usar "nome" vs. "caminho" nessa documentação e dar um exemplo, como a maioria da documentação. Não acho que exista um termo comum que não seja "nome", embora alguns documentos usem "nome" para incluir o caminho completo.
22617 Peter Cordes
0

"Tudo é um arquivo" - então, sdao simples nome do arquivo, /devo diretório (e a string vazia, a extensão) do dispositivo são disponibilizados por todo o caminho /dev/sda, que por convenção é o primeiro disco não IDE? Assim como passwdo nome e /etco diretório do arquivo, acessíveis /etc/passwdpor convenções, contêm dados de senha (ed)?

Hagen von Eitzen
fonte