Como os UUIDs são atribuídos na fase de particionamento (por software), não há UUID disponível para o disco inteiro.
No entanto, /dev/disk/by-id/
contém informações promissoras para o mesmo fim. Podemos obter o caminho "UUID" para - por exemplo. /dev/sdb/
por:
$ disk=sdb; ls /dev/disk/by-id/ -l | grep "/$disk$" | awk '{print "/dev/disk/by-id/"$9}'
/dev/disk/by-id/ata-ST1000LM048-2E7172_WKP6XK95
/dev/disk/by-id/wwn-0x5000c500ccbb7485
No entanto, como você pode ver, há mais de uma entrada para a mesma unidade. O que termina com WKP6XK95
faz mais sentido, pois está escrito fisicamente na etiqueta do produto, na seção "Número de série".
Como posso obter o único valor possivelmente gravado no disco? Em outras palavras, como o wwn-...
id é gerado, então como posso ignorar com segurança essa entrada? Ignorar esta entrada ... | grep -v wwn
seria seguro?
A
wwn-
entrada é o nome mundial do disco. Tecnicamente não é um UUID, pois não segue o formato UUID nem as regras de geração.Em discos SATA e SAS autônomos, ele é relatado pelo firmware do disco e atribuído na fábrica. Em sistemas de armazenamento SAN pode ser mais complicado: como o armazenamento é apresentado como LUNs (Unidades Lógicas), o sistema de armazenamento atribui WWNs para eles.
É como um endereço MAC, mas para discos: a ideia é que você praticamente nunca deve ter o mesmo WWN em duas peças diferentes de armazenamento (a menos que você faça truques com o hardware de virtualização de armazenamento SAN).
lsscsi -UU
também deve exibir o WWN, embora prefixado comnaa.
em vez dewwn-0x
.lsblk -o +WWN
também pode exibi-lo.Em
/dev/disk/by-id/
, você deve prestar atenção aos prefixos: você pode encontrar a string WWN do disco prefixada comwwn-0x
e/ouscsi-3
, dependendo da versão deudev
usada por sua distribuição.O conceito de um UUID de disco inteiro atribuído quando a tabela de partição é gravada existe para o esquema de particionamento GPT. Você pode vê-lo em, por exemplo,
fdisk -l
saída:Outros esquemas de particionamento, como o MBR, não terão necessariamente nada aplicável e, mesmo que tenham, não é necessariamente na forma de um UUID válido.
Para o esquema de particionamento MBR, o equivalente mais próximo é a Assinatura de Disco do Windows (deslocamento 0x1B8 no MBR real), mas tem apenas quatro bytes e não é garantido que exista em todos os discos particionados por MBR. Eu acho que foi introduzido no Windows NT.
Não vou repetir o que a telcoM disse , apenas adicionando talvez uma linha útil.
Minha maneira de filtrar todas as minhas unidades SATA + UUIDs
Análise
LC_ALL=C
: definir a localidade base sem exportá-la, funciona apenas para este comandofdisk -l /dev/sd?
: list drive(s), no nosso caso somos exigentes e fazemos apenas/dev/sd?
grep 'Disk /dev/sd\|Disk identifier'
: mostra apenas o nome do disco + UUID