Resumo:
Em vez de tentar "hackear" UUIDs dessa maneira, sugiro que você use rótulos de sistema de arquivos, rótulos de partições, nomes de volumes lógicos ou variáveis de script, já que essas ferramentas são todas projetadas para o tipo de coisa que você está sugerindo . Os detalhes do que funcionaria melhor dependem de suas necessidades particulares, que não são 100% claras em sua pergunta.
Recomendação estendida:
Um identificador universalmente exclusivo (UUID) é um número de 128 bits (16 bytes) tipicamente expressa em uma string hexadecimal que, com "-" caracteres entre determinados elementos, funciona com 36 caracteres. Estes não são caracteres alfanuméricos; eles são números hexadecimais. Assim, você não pode colocar qualquer letra que desejar, apenas valores hexadecimais. Mesmo com o fato de que você estaria desafiando o espírito dos UUIDs ao fazer o que você sugere, o limite de usar apenas as seis primeiras letras do alfabeto latino é um grande problema para a sua ideia.
Identificadores globais únicos (GUIDs) são essencialmente os mesmos dos UUIDs, mas padrões diferentes usam nomes diferentes e há variantes de ambos. Sua referência às regras udev
me faz pensar que você está usando o Linux, em que os UUIDs são geralmente atribuídos a sistemas de arquivos, enquanto que os GUIDs são associados a partições (ao usar o esquema de particionamento GPT). No Linux, os GUIDs de partição costumam ser referidos (em /etc/fstab
, etc.) usando o identificador PARTUUID
.
Os sistemas de arquivos e as partições GPT podem ter rótulos além dos UUIDs / GUIDs. Como parece que você deseja tornar seus identificadores inteligíveis a você como humanos, recomendo que você use rótulos em vez de UUIDs / GUIDs. Em muitas ferramentas do Linux, os rótulos do sistema de arquivos são referenciados usando o identificador LABEL
, e os rótulos de partições usam o identificador PARTLABEL
.
Não é claro da sua pergunta exatamente onde você deseja usar o identificador (você insinua em um script, mas não diz o que ele faz), então não sei se estou usando o LABEL
ou o PARTLABEL
funcionaria para você, mas você pode querer investigar isso. Além disso, não descartaria a necessidade de escrever udev
regras, se necessário, para obter links simbólicos para dispositivos que usam rótulos; udev
regras não são tão difíceis de escrever, e se elas resolverem o seu problema, escrever essas regras seria melhor do que hackear os valores UUID / GUID desafiando os padrões relevantes.
Observe, no entanto, que os rótulos de partições são um recurso do GPT, mas não do MBR. Assim, se você estiver usando o MBR, os rótulos de partições não serão uma opção. Você pode mudar para o GPT (mesmo sem reinstalar o sistema operacional, embora seja necessário reinstalar o gerenciador de inicialização), se isso puder ser útil.
Outra possibilidade pode ser reconfigurar seu sistema para usar o LVM. Como exemplo, eu uso o LVM em um dos meus computadores e tenho LVs criptografados específicos em meu LVM. Nesta configuração, um LV criptografado pode ser /dev/mapper/myvg-home
e a versão descriptografada é /dev/mapper/myvg-home_crypt
. Como os LVs são nomeados e normalmente são mencionados dessa maneira, você obterá uma referência mais inteligível para "livre", por assim dizer.
Outra opção: você se refere a scripts. Se você está escrevendo scripts que se referem a partições por valores de UUID / GUID, você pode atribuir esses valores a variáveis, como em:
HOME_PART="c5424f69-5016-48bd-adf4-76bd95b1f6bc"
Os detalhes da sintaxe obviamente dependem da sua linguagem de script, mas esse é o núcleo da ideia. Você poderia então se referir a HOME_PART
em outro lugar no script. Se o script foi criado para ser executado em vários sistemas, você poderá encontrar uma maneira de identificar partições específicas e mapear seus valores de UUID / GUID - digamos, analisando /etc/fstab
para extrair os dados relevantes por pontos de montagem. Essa pode ser uma abordagem extremamente flexível, dependendo de suas necessidades específicas.
Se você usa rótulos de sistema de arquivos, rótulos de partições, nomes de LV ou variáveis de script, você obterá o benefício do conjunto completo (mais ou menos) de caracteres alfanuméricos e não precisará lidar nem com um valor de UUID / GUID hexadecimal parcial. Alguns caracteres podem estar fora dos limites por causa dos limites práticos dos padrões em questão, mas pelo menos você pode usar qualquer número ASCII e letras que desejar.