Tabela de Partição GUID - Uma Pequena Introdução

Em um futuro próximo, o BIOS (Basic Input/Output System) será substituído paulatinamente pelo UEFI (Unified
Extensible Firmware Interface). Este pequeno artigo visa, de maneira resumida, apresentar os primeiros
'impactos' aos usuários de GNU/Linux.

[ Hits: 25.846 ]

Por: Roger em 15/03/2012 | Blog: https://bit.ly/2tJIgP7


Tabelas de Particionamento



A Tabela de Particionamento MBR

Como abordado na primeira página do artigo:

"Em Hardware, a Tabela de Partição GUID (GPT), é um padrão para o Layoute da tabela de partição em um disco rígido físico."

De uns tempos para cá, sempre que tenho que formatar algum de meus HDs, tenho alterado os mesmos para utilizá-los no modelo proposto acima. Razão para isso, é necessário começar a se habituar com a mudança vindoura.

GUID Partition Table (GPT) é um modo mais atual de particionamento, que é parte da UEFI, usando o identificador global exclusivo para dispositivos. E diferentemente do Master Boot Record (o estilo de particionamento mais usado atualmente devido ao padrão BIOS), tem muitas vantagens.

Para entender GPT, é importante entender o que é MBR e quais são suas desvantagens.

Segue uma imagem para ajudar a compreensão:

Para qualquer estilo de partição, o número de divisões do disco que podem ser definidos, baseia-se no espaço total alocado para a tabela de partição, e no espaço necessário para armazenar a informação de uma única partição.

1 - Master Boot Record

A tabela de partição MBR, armazena a informação sobre as partições no primeiro setor de um disco rígido.
Primeiros 440 Bytes Código de inicialização MBR que é lançado pelo BIOS.
441-446 Bytes Assinatura de disco MBR.
447-510 Bytes Tabela de partição real com informações sobre as partições primárias e estendidas. (Partições lógicas não estão listadas aqui)
511-512 Bytes Assinatura de inicialização MBR 0xAA55.

Neste cenário, toda a informação sobre as partições primárias estão limitadas aos 64 bytes atribuídos. Para 'burlar' essa limitação, partições estendidas foram implementadas.

Uma partição estendida é simplesmente uma partição primária na MBR, que age como um recipiente para outras partições chamadas de partições lógicas. Então, segundo este estilo, um disco rígido é limitado às 4 partições primárias, ou 3 primárias e 1 partições estendida, com várias partições lógicas dentro dela.

1.1 - Problemas com MBR

Apenas 4 partições primárias, ou 3 primárias + 1 partição estendida, com várias partições lógicas podem ser definidas.

Se você tem 3 partições primárias + 1 partição estendida, e tem algum espaço livre no disco fora da área partição estendida, você não poderá criar uma nova partição no referido espaço livre.

Dentro da partição estendida, as partições lógicas de 'metadados' são armazenadas em uma estrutura de lista encadeada. Se um link for perdido, todas as partições lógicas que seguem esse link, serão perdidas.

A tabela MBR suporta apenas 1 Byte de código em referência ao tipo de partição, fato este que leva a muitas colisões.

A tabela MBR armazena informações de setor de partição utilizando os valores 32-bit LBA. Este comprimento LBA, juntamente com setores com 512 Bytes de tamanho (o mais comumente utilizado), limita o tamanho máximo endereçável do disco a 2TB.

Qualquer espaço além de 2TB não pode ser definido em uma partição, se a tabela de particionamento MBR for utilizada.

A Tabela de Particionamento GUID

Novamente uma imagem auxiliar:

GUID Partition Table (GPT) usa GUIDs (ou UUIDs no mundo Linux) para definir as partições e seus tipos, daí o nome. A GPT consiste de:

1 - Primeiros 512 Bytes do disco rígido - protetor MBR:

- O mesmo que um MBR normal, mas a área de 64 Bytes contém uma única entrada '0xEE', tipo partição primária definida sobre o tamanho total do disco, ou no caso de um disco maior que 2 TB, uma partição de 2 TB.

2 - Próximos 512 Bytes - cabeçalho GPT primário:

- Contém o GUID (UUID), endereço da tabela de partição primária, do número de entradas possíveis na tabela de partição, seus próprios CRC32 Checksums e a tabela de partição primária, e ainda a localização do secundário (ou Backup) do cabeçalho (GPT).

3 - Próximos 16 KB (por padrão) - tabela GPT primária:

- 128 entradas de partição, cada uma com o tamanho de 128 Bytes (portanto, 16 KB). Este tamanho pode ser modificado para acomodar mais entradas da tabela (> 128) e também pode ser reduzido (mas as especificações UEFI requerem espaço para mínimo de 128 entradas de tabela que corresponde a 16 KB). Números dos setores são armazenados como 64-bit LBA e cada partição tem uma entrada tipo GUID e um único UUID.

4 - OS últimos 512 Bytes formam o cabeçalho GPT secundário:

- Contém o exclusivo GUID do disco, local da tabela de partição secundária, número de entradas possíveis na tabela de partição, seus próprios CRC32 Checksums, e a tabela de partição secundária, a localização do cabeçalho GPT primário. Este cabeçalho pode ser utilizado para recuperar informação da GPT, no caso do cabeçalho primário ser corrompido.

5 - Últimos 16 KB excluindo os últimos 512 bytes - tabela GPT Secundária:

- É idêntica Byte a Byte à tabela primária. Utilizada principalmente para operações de recuperação.

Vantagens de GPT

1. Usa GUIDs (UUIDS) únicos para identificar os tipos de partição. Elimina colisões.

2. Fornece uma única entrada em disco e GUID e UUID para cada partição. Uma excelente forma de referenciar as partições ao SO, independente do mesmo.

3. Mínimo de 128 entradas de tabela de partição. Com isso elimina-se a necessidade de se criar partições estendidas e lógicas. (sem nenhuma alteração das configurações podem ser criadas até 128 partições primárias em um HD).

4. Usa 64-bit LBA para armazenar os números do setor, portanto suporta até 2 Zib de endereçamento (o tamanho máximo do disco endereçável é de 2 Zib Zebibyte (1 zebibyte (ZiB) = 1.18059162072E+15 megabyte MB)).

5. Armazena um cabeçalho de Backup, e uma cópia da tabela de partição no final do disco, que ajuda na recuperação se a principal estiver corrompida.

6. Detecção de erros e corrupção da tabela de partição através de CRC32 Checksums.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Tabelas de Particionamento
   3. Últimas Informações
Outros artigos deste autor

Gentoo e RAID configurado através do mdadm

Leitura recomendada

Configurando a placa de captura Pinnacle PCTV 110i [chip saa7134] no Slackware 10.2+

Como utilizar duas GPU em Notebook Optimus com drive legacy 390xx

Instalando o scanner CanoScan Lide 100 no Linux Ubuntu

Experimento: SWAP diretamente na memória RAM - Testes para RAM e SWAP

Como testar distribuições GNU/Linux sem instalar

  
Comentários
[1] Comentário enviado por removido em 15/03/2012 - 18:11h

Excelente introdução brother!

EU vejo muita coisa falando sobre isso no fórum internacional do Arch Linux, mas até hoje não me interessei em saber o que significava, por isso gostei bastante de seu artigo, parabéns!

* falando do fórum, aqueles que se interessarem em acompanhar os posts de lá, adicionem endereço abaixo em seu leitor de notícias:

https://bbs.archlinux.org/extern.php?action=feed&type=atom

+favoritos.

[2] Comentário enviado por removido em 15/03/2012 - 18:21h

Também já li sobre isso tempo atrás.
O artigo veio esclarecer muitas dúvidas.
Quem não leu, não diga que o assunto não foi abordado.

Aqui no VOL foi e de forma didática, até!

Bem explicado, detalhado e desenhado! Quer mais o quê?


Parabéns, Roger!

Grande contribuição.

[3] Comentário enviado por elgio em 15/03/2012 - 19:23h

"O jurássico LILO então, nem seria necessário mencionar, o faço por puro sarcasmo."

Muito boa esta tua frase!
hehehe

[4] Comentário enviado por levi linux em 15/03/2012 - 20:01h

Excelente artigo, bastante didático e bem escrito.

Também gostei do "O jurássico LILO então, nem seria necessário mencionar, o faço por puro sarcasmo".
Risos!

[5] Comentário enviado por julio_hoffimann em 15/03/2012 - 20:55h

Parabéns Roger, ótimo artigo!

Abraço!

[6] Comentário enviado por nicolo em 16/03/2012 - 12:17h

Bom artigo, tocou no assunto "on the fly".
Sugiro aos apressadinhos ler primeiro antes de fazer alterações.
O default de particionamento no Linux é tipo DOS e não BSD, logo
cuidado antes de usar o GTPfdisk..

[7] Comentário enviado por rootgerr em 17/03/2012 - 15:30h

@brother EDPS Valeu
@mano Izaias grato (ficou meio capão redondo isso aqui) kkkk aí mano certo?
@elgio obrigado
@levi valeu
@julio thanks
@bakunin realmente eles precisam ficar atentos, por isso, indiquei uma nova instalação

[8] Comentário enviado por ricardoolonca em 22/03/2012 - 17:33h

Quando fui configurar um storage com 24Tb foi necessário usar GPT.

Outra coisa que tive que fazer foi usar Btrfs, pois o Ext4 só suporta 16Tb.

[9] Comentário enviado por renato_pacheco em 22/03/2012 - 18:08h

Curti bagarai o artigo. Bem explicado! Já havia lido várias vezes sobre, mas não com tanta clareza.

[10] Comentário enviado por rootgerr em 24/03/2012 - 18:42h

@maionesebr até tentei um Btrfs aqui mas o sistema corrompeu rapidamente, embora tenha gostado.

@renato obrigado

[11] Comentário enviado por WhiteHawk em 25/03/2012 - 09:42h

Parabéns rootger!

Artigo abrangente, simples e didático. As referências e citações me foram muito úteis.

Abraço.

[12] Comentário enviado por rootgerr em 02/04/2012 - 22:24h

Grato

[13] Comentário enviado por removido em 17/05/2012 - 12:33h

rootgerr , um ótimo artigo. Muito esclarecedor, didático e de fácil entendimento.
E quanto ao lilo e ao grub legacy já bem sabia que não davam suporte a GPT. Portanto, nenhuma novidade relacionada a ambos quanto a isso.
Com o GPT, pelo menos algumas dores de cabeça de partição estendida são extintas.
Futuramente todos terão que usarem GPT mesmo, e com certeza muito antes que imaginemos.
Atenciosamente, Henrique1977.

[14] Comentário enviado por rootgerr em 17/05/2012 - 20:03h

Grato @Henrique

[15] Comentário enviado por Valt3r em 05/09/2012 - 00:12h

Quebrei muito a cabeça com um disco maior que 2tb formatado em GPT com sistema de arquivos NTFS, tentei acessá-lo com ubuntu x64 sem sucesso, após ler esse artigo descobri que o kernel não estava com o modulo "CONFIG_EFI_PARTITION" habilitado, enfim.... aprendi muito hoje, muito obrigado e espero que continue ajudando o pessoal, informação nunca é demais quando precisamos ^^.
Abraços.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts