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.

[ Hits: 38.030 ]

Por: Perfil removido em 19/03/2013


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:
  • 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:
Linux: Particionamento GPT - Conceitos básicos
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:
A tabela abaixo relaciona os GUIDs de tipos de partição para os sistemas operacionais Windows e GNU/Linux. Existem referências disponíveis para outros sistemas operacionais.

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


   

Páginas do artigo
   1. Particionamento GPT
Outros artigos deste autor

Como realizar migração de Windows para Linux em uma empresa

CentOS 5.5 - Instalação enxuta utilizando netinstall

Instalando o CVS no Ubuntu Linux

Verificando a temperatura do HD no Slackware

Introduzindo um pouco mais a fundo o shell script (revisado)

Leitura recomendada

e-PING e a importância dos padrões abertos

[Estudo de caso] Ferramentas Open Source tem sido um caso de sucesso na Biotecnologia e Bioinformática

5 fatores (subjetivos) que tornam o software proprietário insustentável para as micro, pequenas e médio empresas

I Semana de Capacitação e Desenvolvimento em Software Livre

Linux sob o ponto de vista comercial e social

  
Comentários
[1] Comentário enviado por mpsnet em 19/03/2013 - 10:36h

Amigo KYETOY,
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

[2] Comentário enviado por julio_hoffimann em 19/03/2013 - 12:34h

Outro excelente artigo.

Abs.

[3] Comentário enviado por removido em 19/03/2013 - 12:53h

Realmente, muito esclarecedor.

Ótimo artigo!

[4] Comentário enviado por lcavalheiro em 19/03/2013 - 13:35h

Excelente artigo, meu caro!

[5] Comentário enviado por asdf2 em 19/03/2013 - 17:44h

Belo artigo, bom demais



[6] Comentário enviado por removido em 23/03/2013 - 15:44h

Olá.

Parabéns pela informação. Já estou até vendo isto caindo nas provas de LPIC.

Agora tenho duas perguntas:

1. Esse novo sistema causa alguma diferença nas velhas IDEs de legado, qualquer que seja?
2. Há algum uso adicional de espaço de disco se comparado com esse - chamemos neste momento - atual?

[7] Comentário enviado por napolitano em 23/10/2013 - 01:36h

Olá kyetoy.
Muito bacana seu artigo.
Eu estou lendo sobre o assunto e achei realmente interessante sua exposição pois ficou bem didática.
Eu gostaria de lhe sugerir uma colaboração, se me permite.

Na verdade, a especificação GPT não impõe o limite de 128 partições, mas este valor foi adotado por padrão. (pela M$)
"O GPT armazena todas as partições em uma única tabela de partição (com backup), então, não há necessidade de partições estendidas ou lógicas. Por padrão, 128 partições são suportadas, embora seja possível alterar o tamanho da tabela de partição se o software de particionamento suportar tais alterações."
Fonte:http://www.ibm.com/developerworks/br/linux/library/l-gpt/


"Q. How many partitions can a GPT disk have?
A. The specification allows an almost unlimited number of partitions. However, the Windows implementation restricts this to 128 partitions. The number of partitions is limited by the amount of space reserved for partition entries in the GPT."
Fonte:http://msdn.microsoft.com/en-us/windows/hardware/gg463525.aspx

[]s

[8] Comentário enviado por removido em 04/02/2015 - 14:01h

Ok, o artigo trata em 2013 de uma "novidade" que agora pra mim é um transtorno, o que faço para ter dual boot num CCE com windows 8?

O interessante pelo que tu diz no final: "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"

Tinha enfiado um Linux numa partição, pois quando estava rodando o windows 8 particionei com seu proprio particionador e deixei várias partições, ele roda apenas o linux, não faço a menor ideia onde foi parar o boot, ah, vale lembrar que instalei um Mint 17 (que achei uma grande droga) então quis colocar meu Kubuntu 10.10, mas ele não enxerga as partições muito e mal vê apenas um sda.

Gparted ou partition Editor não enxergam. Não consigo com o LiveCD do Kubuntu 12 fazer mudanças na partição, apagar o windows 8 nem nada.

Enfim, uma grande bucha!

[9] Comentário enviado por kelsro em 27/07/2015 - 22:07h


Boa Cros bem colocado, apesar de ja ser 2015 o post e bem feito, infelizmente ainda temos problemas no meu e um equipamento com UEIF , entrei na bios desabilitei o Securty boot, ja tentei boot Custon e nada, agora. para nao acontecer isto , vou fazer um pendrive bootavel, ja vi diversos artivos, videos posts. vou tentar mais opçao que via uma aplicativo "Rufus" um pendrive bootavel que serve para o Ruindows e quase topo tipo de Linux, (pelo site parecer ser uma arranjo usando GPT.

por isto o artigo do KYETOY e bastante util. vamos ver se da certo eu retorno com posiçao.

[10] Comentário enviado por TedKaczynski em 27/11/2016 - 01:51h


[8] Comentário enviado por removido em 04/02/2015 - 14:01h

Ok, o artigo trata em 2013 de uma "novidade" que agora pra mim é um transtorno, o que faço para ter dual boot num CCE com windows 8?

O interessante pelo que tu diz no final: "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"

Tinha enfiado um Linux numa partição, pois quando estava rodando o windows 8 particionei com seu proprio particionador e deixei várias partições, ele roda apenas o linux, não faço a menor ideia onde foi parar o boot, ah, vale lembrar que instalei um Mint 17 (que achei uma grande droga) então quis colocar meu Kubuntu 10.10, mas ele não enxerga as partições muito e mal vê apenas um sda.

Gparted ou partition Editor não enxergam. Não consigo com o LiveCD do Kubuntu 12 fazer mudanças na partição, apagar o windows 8 nem nada.

Enfim, uma grande bucha!


Amigo não é qualquer Rwindows é do 7 baixo...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts