Compreendendo a atribuição de UUID

Compreendendo a atribuição de UUID

Um UUID (identificador único universal) é um código de 128 bits usado para identificar dispositivos de bloco (armazenamento). Em primeiro lugar, é para isso que todos os UUIDs são usados?

Como um dispositivo obtém seu UUID?

Isso muda alguma vez? Por exemplo, em cada inicialização? Quando um novo sistema operacional é instalado?

Como um UUID é gerado? É aleatório?

A maioria dos computadores não possui mais de 10 dispositivos de armazenamento. Por que a necessidade de tantos nomes diferentes?

Responder1

O conceito é descrito emRFC 4122que define os vários algoritmos para gerarUUIDS. A variante 4 usa números aleatórios e é a mais comum.

UUIDs são usados ​​em muitos cenários, alguns exemplos são:

  • Rotular partições e sistemas de arquivos é o uso mais comum no Linux
  • O Network Manager os utiliza para identificar dispositivos e conexões de rede
  • Hipervisores, como Virtual Box e Qemu-KVM, os utilizam para identificar VMs
  • Eles são usados ​​​​no Microsoft Windows, onde são conhecidos comoGUIAé
  • Eles são usados ​​para exclusividade dentrobancos de dados
  • Eles são usados ​​emdesenvolvimento de software

Dentro do Linux, todas as distros vêm com o util-linuxpacote, que entre outras coisas contém o uuidgencomando para gerar UUIDs. Este é um front-end libuuidque gera UUIDs aleatórios por padrão ou com base no tempo, se não houver entropia suficiente disponível.

O utilitário que você usa para criar uma partição ou sistema de arquivos irá gerar o UUID, que permanece com essa partição/sistema de arquivos até que você os recrie ou altere explicitamente o UUID (por exemplo, com tune2fs)

UUIDs são usados ​​com sistemas de arquivos e partições para dar-lhes um nome consistente (embora muito longo). Isso evita o cenário em que o BIOS do firmware UEFI em um sistema de dois HDD lista o disco rígido para que o disco do sistema seja alocado /dev/sdaem uma inicialização e alocado /deb/sdbna próxima (talvez o primeiro disco tenha sido mais lento para inicializar na segunda inicialização).

Usando o método de nomenclatura tradicional, isso causaria estragos em seu /etc/fstabarquivo, pois seu sistema estaria procurando partições no disco errado para montar. Por exemplo, aqui está minha entrada de troca:

/dev/sda4               none            swap            defaults        0 0

Se os discos tivessem sido alocados de forma diferente na inicialização, meu sistema não encontraria uma quarta partição do tipo swapno disco que não é do sistema (OK, estou em um laptop, então ele não tem um segundo disco, mas você obtém o ponto) e minha troca falharia.

Ao rotulá-los com UUIDs e usá-los, /etc/fstabvocê garante que o sistema de arquivos correto será montado o tempo todo. Por exemplo:

UUID=d8ab8967-f2de-4c76-902f-d8d9707c399e /media/files  ext4    defaults 0 0

sempre montará a partição com esse UUID, /media/filesindependentemente da ordem em que o BIOS (ou firmware UEFI) os rotula na inicialização.

informação relacionada