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-linux
pacote, que entre outras coisas contém o uuidgen
comando para gerar UUIDs. Este é um front-end libuuid
que 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/sda
em uma inicialização e alocado /deb/sdb
na 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/fstab
arquivo, 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 swap
no 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/fstab
você 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/files
independentemente da ordem em que o BIOS (ou firmware UEFI) os rotula na inicialização.