Eu tenho um disco que está usando GPT, e há apenas 1 partição (Ext4) nele, de acordo com UEFI , a primeira 16 Bytes
delas GPT Partition Entry Array
deve ser a Partition Type GUID
. Então eu extraí minhas partições Partition Type GUID
e li a primeira 32 Digits
delas, já que está em formato hexadecimal. Então eu obtive o GUID af3dc60f838472478e793d69d8477de4
, depois de verificar com a lista na wikipedia, descobri que esse GUID em particular não significa nada. Então isso levantou a questão: Quem decide o tipo GUID e seu tipo correspondente? E há uma lista completa para o Tipo e seu GUID ou o meu simplesmente não existe? O GPT Partition Entry Array
com zeros finais cortados:
af3dc60f838472478e793d69d8477de4e18058ef52250344ba2f0ae31c057fa60008000000000000ffb7c0d10100000000000000000000006500780074003400740062
GUIDs são mixed-endian. A ordem de bytes em que são armazenados no disco não é a mesma que a ordem de bytes da representação de texto – por razões históricas, um GUID consiste em vários campos distintos, alguns dos quais são matrizes de bytes armazenadas linearmente, mas alguns dos quais são inteiros armazenados em little-endian.
Frequentemente, 'GUID' vs 'UUID' são usados para distinguir as duas maneiras de armazená-los, com o termo 'UUID' indicando o uso da representação linear 1:1 e o termo 'GUID' se referindo à representação de byte-swapped (embora não seja uma regra rígida que todos sigam). Como UEFI é um formato muito Microsoft, ele usa o estilo GUID da Microsoft que é mixed-endian.
Então a sequência de bytes
af3dc60f 8384 7247 8e79 3d69d8477de4
que você obteve do GPT na verdade representa o GUID{0fc63daf-8483-4772-8e79-3d69d8477de4}
, que indica "Linux filesystem". Observe como os três primeiros campos são trocados por bytes, porque originalmente eles representavam partes de um timestamp como valores inteiros.GPT é parte do UEFI, então primeiro a especificação UEFI define certos tipos de GUIDs (como a EFI System Partition). Então cada SO ou cada fornecedor define seus próprios tipos de GUIDs para seus propósitos (como a Microsoft definindo o GUID para "Microsoft Basic Data" e o Linux definindo um GUID para "Linux filesystem"). Os próprios GUIDs são geralmente decididos seguindo o algoritmo de geração aleatória de GUID.
Não há um registro oficial porque a ideia de um GUID é que você pode simplesmente seguir o algoritmo e obter um GUID exclusivo sem que ele entre em conflito com o de ninguém, então é isso que todos fazem.
Por exemplo, quando os desenvolvedores do systemd decidiram que queriam um conjunto de GUIDs "Linux /usr" para cada arquitetura de CPU (e mais tarde "Linux /usr dm-verity", e assim por diante), eles simplesmente executaram o
uuidgen
suficiente para criar os GUIDs.A ferramenta Linux
fdisk
tem uma lista bastante longa incorporada (atualmente 219 entradas), e a Wikipédia às vezes serve como uma espécie de registro não oficial.