Compreendendo a atribuição de UUID

2

Um UUID ( identificador unico universal ) e um codigo de 128 bits que e usado para identificar dispositivos de bloco (armazenamento). Em primeiro lugar, isso é usado para todos os UUIDs?

Como um dispositivo obtém seu UUID?

Isso nunca muda? 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?

    
por Owen 21.05.2016 / 09:29

1 resposta

5

O conceito é descrito em RFC 4122 que define os vários algoritmos para gerar UUID s. 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
  • Hypervisors, como o Virtual Box e o Qemu-KVM, os usam para identificar VMs
  • São usados no Microsoft Windows, onde são conhecidos como GUID s
  • Eles são usados para exclusividade dentro de bancos de dados
  • Eles são usados no desenvolvimento de software

No Linux, todas as distribuições vêm com o pacote util-linux , que entre outras coisas tem o comando uuidgen para gerar UUIDs. Este é um front-end para libuuid que gera UUIDs aleatórios por padrão, ou baseado em tempo se não houver entropia suficiente disponível.

O utilitário que você usa para criar uma partição ou um sistema de arquivos 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 a eles um nome consistente (embora muito longo). Isso evita o cenário em que o BIOS do firmware UEFI em um sistema de dois discos rígidos lista o disco rígido para que o disco do sistema seja alocado /dev/sda em uma inicialização e alocado /deb/sdb na próxima (talvez o primeiro disco seja mais lento para inicializar a segunda inicialização).

Usando o método de nomenclatura tradicional, isso causaria estragos em seu arquivo /etc/fstab , já que seu sistema estaria procurando no disco errado para que as partições fossem montadas. Por exemplo, aqui está minha entrada de troca:

/dev/sda4               none            swap            defaults        0 0

Se os discos tivessem sido alocados de maneira diferente na inicialização, meu sistema não encontraria uma quarta partição do tipo swap no disco que não seja do sistema (OK, estou em um laptop, por isso não tem um segundo disco, mas você começa o ponto) e meu swap iria falhar.

Marcando-os com UUIDs e usando aqueles dentro de /etc/fstab , você tem a garantia de que o sistema de arquivos correto será montado em todos os momentos. Por exemplo:

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

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

    
por 21.05.2016 / 11:36

Tags