A rigor, o UUID não está endereçado .
O endereçamento é muito, muito simples: leia a unidade X do setor Y - ou então. Leia o endereço de memória Z - ou então. O endereçamento é simples, rápido, não deixa muito espaço para interpretação e está em toda parte.
UUID não está endereçando. Em vez disso, está pesquisando, localizando, às vezes aguardando a exibição dos dispositivos e também compreendendo os sistemas de arquivos (★). E, dependendo da quantidade de dispositivos, pode levar muito tempo. E uma vez encontrado, voltando ao endereço comum.
No GRUB, isso é chamado search
(★★) e só está disponível quando o GRUB já possui asas (pesquisa é um módulo, assim como todos os sistemas de arquivos suportados, portanto, disponível apenas após o carregamento do núcleo). No Linux, é chamado (por exemplo) findfs
, o findfs pesquisará os dispositivos de bloco no sistema procurando um sistema de arquivos ou partição .
Ele percorre todos os dispositivos de bloco, os acorda do modo de espera, lê os dados e o resultado ainda pode ser aleatório se o UUID não for único como deveria ser (após dd
acidente ou algo semelhante) ou você não obtém resultado se o UUID for alterado. Os UUIDs também são propensos a erros de configuração.
Em geral, os UUIDs são ótimos e, é claro, você deve usá-los em qualquer lugar, se disponível, especialmente quando o endereçamento tradicional está fadado a falhar, porque a ordem das unidades é aleatória no Linux; mas entenda que a complexidade está acima e além do que o endereçamento simples deve fazer. E, especialmente, nos estágios iniciais dos gerenciadores de inicialização, talvez ainda não seja uma opção. O endereçamento vem em primeiro lugar, as asas em crescimento vêm depois.
Para o carregador de inicialização, talvez não seja necessário fazer um esforço (nem todo carregador de inicialização suporta uma ampla variedade de sistemas de arquivos como o GRUB). Se hd0
é garantido que "é o disco do qual inicializamos" devido às circunstâncias (o BIOS fornece) e, portanto, se você puder descartar problemas aleatórios de ordem de unidade, pode não haver necessidade de percorrer uma lista potencialmente enorme de outras partições em procure por UUIDs.
Se você está confiante o suficiente em sua configuração para dizer que hd0,gpt2
é o que deseja, e deve ser, e não pode ser de outra forma, não há nada de errado em usá-lo dessa maneira. Às vezes, o endereçamento simples e simples funciona perfeitamente.
(★) Eu expliquei isso anteriormente para LABELs aqui ...
Não existe um padrão genérico para etiquetas, é tudo tricotado manualmente; veja, por exemplo, esta implementação de formatos de superblocos no util-linux . Se você inventar um novo sistema de arquivos amanhã, mesmo que tenha um rótulo, ele não aparecerá até que o suporte seja adicionado.
... e é o mesmo para os UUIDs.
(★★) Na verdade, o GRUB's search
tem uma --hint
opção e ... agora eu não verifiquei o código-fonte e nem sequer está documentado em seu manual, mas essa opção faria sentido para oferecer o melhor dos dois mundos: a dica deve informar search
para verificar primeiro a partição e, se o UUID corresponder conforme o esperado, ele identificou o dispositivo com o mínimo esforço e, se não corresponder, ainda voltará à pesquisa completa para manter as coisas funcionando de alguma forma .
Além disso, os UUIDs encontrados anteriormente tendem a ser armazenados em cache, por isso não precisa passar por todos os dispositivos repetidas vezes - e isso também funciona muito bem, desde que o UUID que você está procurando realmente exista em algum lugar. faça isso no cache em primeiro lugar.