Particionamento GPT - Conceitos básicos
Este artigo traz informações sobre o modelo de particionamento GPT. Meu objetivo é divulgar o método e incentivar a comunidade para discutir suas vantagens.
Particionamento GPT
A especificação UEFI propõe um novo modelo de tabela de partições em substituição à antiga tabela de partições DOS, mantida no MBR.
A nova tabela é chamada de GPT - GUID Partition Table - e suas principais vantagens, são:
GUID é a abreviação para Globally Unique IDentifier.
O GUID é uma implementação do método UUID - Universally Unique Identifier - que apresenta cinco versões para geração de hashes pseudoaleatórios, únicos (na teoria) e sem necessidade de coordenação central. Tornando este identificador ótimo para rotular dados como uma chave.
O que, supostamente, garante o valor único de um GUID é seu algoritmo matemático. A probabilidade de colisão existe, porém, ela é quase nula dado o tamanho total do campo de possibilidades 2^128 ou ~3,4×10^38.
Num grau de comparação com objetos do mundo físico, é sabido que o Universo observável possui 5x10^22 estrelas. Esse número dá uma escala mais humana para o entendimento do escopo UUID.
Um identificador GUID é formado por 16 octetos (128 bits) representados como cinco grupos separados por traços: 8-4-4-4-12. Na representação são utilizados 36 sinais, 4 são separadores (traços) e 32 alfanuméricos do escopo da base hexadecimal ([0-9][a-f]).
A aparência de um hash GUID é a seguinte:
São várias as vantagens técnicas de GPT sobre o particionamento MBR-DOS. A mais evidente, é sua capacidade em lidar com discos rígidos maiores que 2 TiB. Entretanto, a principal vantagem, é a redundância fornecida por uma cópia de segurança e as checagens de integridade garantidas por CRC32.
Vejamos como é a estrutura interna de dados na tabela GPT: A primeira estrutura é chamada de MBR protetora (protective MBR). Ela ocupa o LBA 0 do disco e é idêntica a uma MBR clássica com espaço para um código de arranque e uma área para descrição de até 4 partições primárias, ou até 63 partições lógicas dentro de uma partição estendida.
Sua função é manter certa compatibilidade para que sistemas operacionais legados, que esperam encontrar uma MBR clássica na LBA 0, possam ser instalados em computadores UEFI.
MBR protetora possui todas as deficiências de uma MBR clássica. Não existe cópia de segurança da MBR protetora. Observe que a cópia de segurança é somente do cabeçalho primário GPT. Se comparada com a estrutura da tabela de partições MBR, a tabela GPT pode ser considerada bem mais complexa.
No LBA 1, encontramos o cabeçalho primário GPT que possui a seguinte estrutura de dados: Nos offsets +16 e +88, estão os campos para o armazenamento de hashes, no formato CRC32. O primeiro armazena a checagem da integridade do cabeçalho e o segundo a checagem da matriz de entradas de partições.
Durante o cálculo do CRC32, o campo em +16 vale zero. Em função desse CRC32, JAMAIS modifique uma tabela GPT com um editor hexadecimal. Se você fizer isso, acabará com uma tabela corrompida e um disco rígido inutilizável!
A partir do LBA 2 até o 33, são armazenadas as entradas para descrever as partições. Estes setores recebem o nome de "Matriz de Entradas de Partições" - Partition Entry Array.
Cada entrada ocupa 128 bytes e corresponde a uma partição. Como 32 setores são reservados para essa finalidade, e cada setor pode armazenar até 4 partições, então um total de 128 partições (32 setores * 4 partições por setor = 128 partições GUID) podem ser declaradas em GPT.
No esquema de particionamento GPT, todas as partições são primárias e não há o conceito de partição estendida ou partições lógicas.
A entrada de uma partição possui a seguinte estrutura de dados: Onde:
Observe que isso requer um conhecimento prévio e bastante avançado sobre como seus sistemas irão se comportar após ter adotado o modelo GPT. Migração e transformação da tabela MBR para GPT, não é uma boa ideia.
Aproveitar uma instalação legada pode "comer todo seu queijo". Antes de partir para GPT em servidores legados, realize o máximo de testes que puder em outras máquinas, o comportamento final pode decepcionar.
Em termos de sistemas operacionais em dual boot, esteja ciente que todos os sistemas Windows para a arquitetura X86_32 não serão inicializados em uma partição GPT (XP, Vista, 7 e os Windows Server 2003 e 2008).
Em resumo, esqueça GPT para BIOS legadas em dual boot com Windows. Pode até funcionar, mas a camada de gambiarras será bem maior do você pensa.
A nova tabela é chamada de GPT - GUID Partition Table - e suas principais vantagens, são:
- Redundância e checagem de integridade através de CRC32.
- Limite de 128 partições primárias. Não há partições lógicas.
- Comporta unidades de disco maiores que 2 TiB.
- Não utiliza código de arranque em estágio 1, que é ineficiente.
GUID é a abreviação para Globally Unique IDentifier.
O GUID é uma implementação do método UUID - Universally Unique Identifier - que apresenta cinco versões para geração de hashes pseudoaleatórios, únicos (na teoria) e sem necessidade de coordenação central. Tornando este identificador ótimo para rotular dados como uma chave.
O que, supostamente, garante o valor único de um GUID é seu algoritmo matemático. A probabilidade de colisão existe, porém, ela é quase nula dado o tamanho total do campo de possibilidades 2^128 ou ~3,4×10^38.
Num grau de comparação com objetos do mundo físico, é sabido que o Universo observável possui 5x10^22 estrelas. Esse número dá uma escala mais humana para o entendimento do escopo UUID.
Um identificador GUID é formado por 16 octetos (128 bits) representados como cinco grupos separados por traços: 8-4-4-4-12. Na representação são utilizados 36 sinais, 4 são separadores (traços) e 32 alfanuméricos do escopo da base hexadecimal ([0-9][a-f]).
A aparência de um hash GUID é a seguinte:
2c1d3bf0-8918-11e2-9e96-0800200c9a66
São várias as vantagens técnicas de GPT sobre o particionamento MBR-DOS. A mais evidente, é sua capacidade em lidar com discos rígidos maiores que 2 TiB. Entretanto, a principal vantagem, é a redundância fornecida por uma cópia de segurança e as checagens de integridade garantidas por CRC32.
Vejamos como é a estrutura interna de dados na tabela GPT: A primeira estrutura é chamada de MBR protetora (protective MBR). Ela ocupa o LBA 0 do disco e é idêntica a uma MBR clássica com espaço para um código de arranque e uma área para descrição de até 4 partições primárias, ou até 63 partições lógicas dentro de uma partição estendida.
Sua função é manter certa compatibilidade para que sistemas operacionais legados, que esperam encontrar uma MBR clássica na LBA 0, possam ser instalados em computadores UEFI.
MBR protetora possui todas as deficiências de uma MBR clássica. Não existe cópia de segurança da MBR protetora. Observe que a cópia de segurança é somente do cabeçalho primário GPT. Se comparada com a estrutura da tabela de partições MBR, a tabela GPT pode ser considerada bem mais complexa.
No LBA 1, encontramos o cabeçalho primário GPT que possui a seguinte estrutura de dados: Nos offsets +16 e +88, estão os campos para o armazenamento de hashes, no formato CRC32. O primeiro armazena a checagem da integridade do cabeçalho e o segundo a checagem da matriz de entradas de partições.
Durante o cálculo do CRC32, o campo em +16 vale zero. Em função desse CRC32, JAMAIS modifique uma tabela GPT com um editor hexadecimal. Se você fizer isso, acabará com uma tabela corrompida e um disco rígido inutilizável!
A partir do LBA 2 até o 33, são armazenadas as entradas para descrever as partições. Estes setores recebem o nome de "Matriz de Entradas de Partições" - Partition Entry Array.
Cada entrada ocupa 128 bytes e corresponde a uma partição. Como 32 setores são reservados para essa finalidade, e cada setor pode armazenar até 4 partições, então um total de 128 partições (32 setores * 4 partições por setor = 128 partições GUID) podem ser declaradas em GPT.
No esquema de particionamento GPT, todas as partições são primárias e não há o conceito de partição estendida ou partições lógicas.
A entrada de uma partição possui a seguinte estrutura de dados: Onde:
- O GUID do offset +0 descreve o tipo da partição de acordo com a assinatura destinada ao sistema operacional.
- O GUID do offset +16 é o UUID utilizado para montagem da partição. Identifica o próprio device dentro do OS.
- Os LBA são descritos em 8 bytes (8 * 8 = 64 bits), o que permite endereçar clusters de discos rígidos de até 8 Zib (1 Zebibyte = 270). Para efeito de comparação 1 Tebibyte = 240. Se comparássemos 1 Zebibyte com Terabytes seriam 9.4 Bilhões de Terabytes. Os limites reais permitidos pelos S.Os são muito menores.
- No offset +48, podemos utilizar um conjunto de sinalizadores (flags), conforme tabela abaixo:
Conclusão
Mesmo que seu computador possua uma BIOS legada, ainda é possível usufruir dos benefícios do particionamento GPT. É recomendado abandonar o formato BIOS/MBR em favor da segurança implementada por GPT.Observe que isso requer um conhecimento prévio e bastante avançado sobre como seus sistemas irão se comportar após ter adotado o modelo GPT. Migração e transformação da tabela MBR para GPT, não é uma boa ideia.
Aproveitar uma instalação legada pode "comer todo seu queijo". Antes de partir para GPT em servidores legados, realize o máximo de testes que puder em outras máquinas, o comportamento final pode decepcionar.
Em termos de sistemas operacionais em dual boot, esteja ciente que todos os sistemas Windows para a arquitetura X86_32 não serão inicializados em uma partição GPT (XP, Vista, 7 e os Windows Server 2003 e 2008).
Em resumo, esqueça GPT para BIOS legadas em dual boot com Windows. Pode até funcionar, mas a camada de gambiarras será bem maior do você pensa.
Referências
- [1] http://support.microsoft.com/kb - pt-br
- [2] IBM PC – Wikipédia, a enciclopédia livre
- [3] Master boot record - Wikipedia, the free encyclopedia
- [4] LBA - Definição de LBA
- [5] UEFI Application | Intel® Developer Zone
- [6] mjg59 | Secure Boot distribution support
- [7] http://www.linuxfoundation.org/sites/main/files/lf_uefi_secure_boot_open_platforms.pdf (Download)
- [8] SecurityTeam/SecureBoot - Ubuntu Wiki
- [9] UEFI - Gentoo Linux Wiki
- [10] The Meaning of all the UEFI Keys | James Bottomley's random Pages
- [11] UEFI and Windows
- [12] UEFI – Como activar no seu PC | Pplware
- [13] Resources and Tools for IT Professionals | TechNet
- [14] The GUID Partition Table (GPT) Explained « Dell
Vejo que você entende mesmo do assunto. Estou precisando de uma ajuda e não encontro em nenhum lugar na net.
Preciso restaurar o padrão antigo na minha BIOS, excluir as chaves UEFI. Não estou mais conseguindo acessar o setup antigo da maquina depois que fiz uma instalação do windows8 em modo UEFI/Secure Boot.
Tem algum software que eu consiga fazer um reset na bios para cancelar as chaves da EFI ?
Grato