Tabela de Partição GUID

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Em hardware a Tabela de Partição GUID (GPT) é um padrão para o layout da tabela de partição em um disco rígido físico. Embora seja parte do padrão de Extensible Firmware Interface (EFI) (a proposta de substituição da Intel para a BIOS da IBM), ele pode ser usado em sistemas BIOS sistemas devido às limitações das tabelas de partição na Ficha de Boot Principal, que limitam o tamanho máximo do disco a 2 TiB.

O Windows XP 32-bit (das versões do Windows XP, a mais utilizada) e versões anteriores do Windows não podem (sem Hacks) ler ou escrever em unidades formatadas com uma tabela de partição GUID, no entanto, Windows Vista e Windows 7 possuem esta capacidade.[1]

Diagrama ilustrando o leiaute do esquema de tabelas de partição GUID. Neste exemplo, cada bloco lógico (LBA) possui 512 bytes, e cada entrada de partição é de 128 bytes. Os endereços LBA que são negativos indicam a posição a partir do final do volume, com -1 sendo o último bloco com endereçamento possível.

Recursos[editar | editar código-fonte]

Atualmente, esquemas de tabela de partição baseados em MBR inserem a informação de particionamento na própria ficha principal de boot (MBR(em inglês)) (que no sistema de BIOS também é o recipiente para o código que inicia o processo de inicialização dos discos). Em GPT, informações da tabela de partição são armazenadas no cabeçalho do GPT, mas, para manter a compatibilidade, o GPT retém a entrada MBR como primeiro setor do disco, seguido por um cabeçalho de tabelas de partições primárias, o início efetivo do GPT.

Como MBRs modernos, o GPT utiliza endereçamento de bloco lógico (LBA (em inglês)) no lugar do histórico adereçamento cilindro-cabeça-setor (CHS(em inglês)) de MBRs antiquados. Informações MBRs antiquadas estão contida no LBA 0, o cabeçalho do GPT está no LBA 1, e seguido da tabela de partição. Em Microsoft Windows 64-bits, 16.384 bytes, ou 32 setores, são reservados para o GPT, deixando o LBA 34 como o primeiro setor útil em o disco.

Segundo a Apple Inc.,[2] "Não assuma que o tamanho do bloco sempre será 512 bytes." Dispositivos de armazenamento modernos, tais como drives de estado sólido podem conter LBAs de 1024 bytes e algumas unidades de disco magneto ótico (mo) usam setores de 2048 bytes (drives MO, que geralmente não são particionados). Fabricantes de discos rígidos estão planejando a transição para setores de 4096 bytes, para 2010, as primeiras dessas unidades empregarão firmware que apresentará a ilusão de setores de 512 bytes para o SO.[3]

Discos que inicializam Macs Intel são normalmente formatados com uma tabela de partição GUID, e não com os Mapas de partição Apple.

O GPT também fornece redundância. O cabeçalho e tabela de partição GPT são escritos em ambos início e final do disco.

MBR antiquado (LBA 0)[editar | editar código-fonte]

O MBR no início do disco foi originalmente concebido para impedir utilidades de disco baseadas em MBRs de reconhecer erroneamente e, possivelmente, de sobrescrever discos GPT (no entanto, em sistemas operacionais que suportam boot baseado em GPT, hoje também utiliza-se para armazenar a primeira fase do sistema de iniciação). Um único tipo de partição 0xEE, englobando todo o disco GPT, é indicado e identifica o disco como GPT. Alguns sistemas operacionais 32-bits que não são capazes de ler discos GPT, no entanto, reconhecem essa identificação e apresentam o disco como um disco GPT inacessível. SOs mais antigos, geralmente reconhecem o disco como contendo uma partição de tipo desconhecido e sem espaço livre, normalmente se recusando a modificar o disco a menos que o usuário solicita explicitamente, e confirme a exclusão da partição. Isso minimiza perdas acidentais. Além disso, SOs que entendem GPT irão verificar a proteção de MBR e se a partição fechada não for do tipo 0xEE ou se existirem várias partições definidas no dispositivo de destino, o dispositivo não deve ser manipulado.

Se o disco for maior que 2 TiB, o tamanho máximo de partição utilizando os LBAs de 32-bits do MBR antiquado (assumindo um tamanho de bloco de 512 bytes), o tamanho desta partição está marcada como 2 TiB, ignorando o resto do disco.

Cabeçalho de tabela de partição (LBA 1)[editar | editar código-fonte]

O cabeçalho da tabela de partição define os blocos do disco que podem ser utilizado pelo usuário (os blocos utilizáveis). Ele também define o número e o tamanho das entradas de partição que compõem a tabela de partição. No Windows Server 2003 64-bits, existem 128 entradas de partição reservadas, cada uma com 128 bytes de comprimento. Assim, 128 partições podem ser criadas. (A especificação EFI exige que um mínimo de 16.384 bytes seja reservado para a tabela de partição, de modo que esta de origem a partição de 128 registros).

O cabeçalho contém o Identificador Único Global (GUID(em inglês)) do disco. Ele grava seu próprio tamanho e localização (sempre LBA 1) e o tamanho e localização do cabeçalho GPT secundário e tabela secundária (sempre os últimos setores no disco). É importante, também que ele contenha também um a soma de verificação CRC32 para si e para a tabela de partição, que podem ser verificados pelo firmware, gestor e/ou sistema operacional na inicialização. Devido a isso, os editores hexa não deve ser utilizados para modificar o conteúdo do GPT, tal modificação tornaria a soma de verificação inválida. Neste caso, o GPT primário pode ser substituído com o secundário, ou, se ambos GPTs contiverem soma de verificação inválidas, não será possível acessar o disco.

Partition table format
Deslocamento # comprimento Conteúdos
0 8 bytes Signature ("EFI PART", 45 46 49 20 50 41 52 54)
8 4 bytes Revision (For version 1.0, the value is 00 00 01 00)
12 4 bytes Header size (in bytes, usually 5C 00 00 00 meaning 92 bytes)
16 4 bytes CRC32 of header (0 to header size), with this field zeroed during calculation
20 4 bytes reserved, must be zero
24 8 bytes Current LBA (location of this header copy)
32 8 bytes Backup LBA (location of the other header copy)
40 8 bytes First usable LBA for partitions (primary partition table last LBA + 1)
48 8 bytes Last usable LBA (secondary partition table first LBA - 1)
56 16 bytes Disk GUID (also referred as UUID on UNIXes)
72 8 bytes Partition entries starting LBA (always 2 in primary copy)
80 4 bytes Number of partition entries
84 4 bytes Size of a partition entry (usually 128)
88 4 bytes CRC32 of partition array
92 * reserved, must be zeroes for the rest of the block (420 bytes for a 512-byte LBA)
LBA Size TOTAL

Os valores para LBAs atuais e a cópia de segurança do cabeçalho principal devem ser o segundo setor do disco (1) e o último setor do disco, respectivamente. O cabeçalho secundário no final do disco identifica sua própria tabela de entradas de partição, que situa-se antes daquele cabeçalho.

Entradas de partição (LBA 2–33)[editar | editar código-fonte]

Entradas de partição são simples e diretas. Os primeiros 16 bytes designam o tipo de partição GUID. Por exemplo, o GUID para uma partição de sistema EFI é (C12A7328-F81F-11D2-BA4B-00A0C93EC93B). Os 16 bytes seguintes aos primeiros contêm um GUID exclusivo para a partição. Os LBAs de 64-bits iniciais e finais também são registrados aqui, e o espaço é destinado para nomes de partição e atributos. Como é a natureza e a finalidade dos GUIDs, nenhum registo central é necessário para assegurar a unicidade do designadores de tipo de partição GUID.

Formato de entradas de partição GUID
Deslocamento Comprimento Conteúdos
0 16 bytes Tipo de partição GUID
16 16 bytes Partição única GUID
32 8 bytes Primeiro LBA (little endian)
40 8 bytes Último LBA (inclusivo, geralmente ímpar)
48 8 bytes Marcador de atributos (ex. o bit 60 significa somente-leitura)
56 72 bytes Nome da partição (36 códigos de unidade UTF-16LE)
128 TOTAL

Segundo a Apple, "Não faça hardwire com o tamanho atual da entrada de partição (128 bytes)." o Microsoft TechNet diz que os atributos são divididos em duas partes: os 4 bytes inferiores representando atributos independentes da partição, e os 4 bytes superiores que são dependentes do tipo de partição. Microsoft usa os seguinte bits em geral:[necessário esclarecer]

partition attributes
Bit Conteúdo
0 partição do sistema (ferramentas de partição de disco devem preservar a partição como está)
60 somente-leitura
62 oculta
63 não monte automaticamente (ex. não designe uma letra de drive)

Suporte de SO do GPT[editar | editar código-fonte]

SO Versão Arquitetura Boot de GPT em PC/BIOS Boot de GPT em Apple/EFI Nota
Solaris Desde Solaris 10 x86, x86 64, sparc
Não (em progresso)
Não (em progresso)
FreeBSD Desde 7.0 x86, x86 64
Sim
Sim
Em uma configuração híbrida MBR, ambos indetificadores de partição GPT e MBR podem ser utilizados.
Linux Maioria das distribuições x86

Fedora 8+ e Ubuntu 8.04+[4]

x86 64, ia64, x86
Sim
Sim
Algumas ferramentas de distribuição, como fdisk, não funcionam com GTP.

Novas ferramentas como gdisk,[5] grub.96+ patches and grub2 have been GPT-enabled.

Mac OS X Desde 10.4.0 (parte desde 10.4.6)[6] x86, x86 64
Não
Sim
Windows XP 64-bit x86 64
Não
Não
Apenas discos de dados[1] MBR tem prioridade em configurações MBR híbridas.
Windows 2003 Desde pacote de serviço 1 x86 64, ia64
Não
Parcial (só ia64) x86, x86 64, apenas discos de dados[1] MBR tem prioridade em configurações MBR híbridas.
Windows 2008 Desde lançamento x86 64, ia64
Não
Sim
MBR tem prioridade em configurações MBR híbridas.
Windows Vista Desde lançamento x86 64
Não
Sim
MBR tem prioridade em configurações MBR híbridas.
Windows 7 Desde lançamento x86 64
Não
Sim
[7] MBR tem prioridade em configurações MBR híbridas.

MBR híbridos são fora do padrão e podem ser interpretados de diferentes maneiras por sistemas operacionais diferentes.[7] Salvo disposição do contrário, os SOs dão prioridade aos dados GPT quando uma configuração híbrida de MBR for encontrada.

Tipos de partição GUID[editar | editar código-fonte]

SO associado Tipo de partição Identificador Único Global (GUID(em inglês))[1]
(Nenhum) Entrada não usada 00000000-0000-0000-0000-000000000000
Esquema de partição MBR 024DEE41-33E7-11D3-9D69-0008C781F39F
Partição do sistema EFI C12A7328-F81F-11D2-BA4B-00A0C93EC93B
Partição de Boot da BIOS 21686148-6449-6E6F-744E-656564454649
Microsoft Windows Partição reservada pela Microsoft E3C9E316-0B5C-4DB8-817D-F92DF00215AE
Partição básica de dados[2] EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Gerenciador de disco lógico metadata partition 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
Partição de dados do Gerenciador de disco lógico AF9B60A0-1431-4F62-BC68-3311714A69AD
Ambiente de Resgate do Windows DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
HP-UX Partição de dados 75894C1E-3AEB-11D3-B7C1-7B03A0000000
Partição de serviço E2A1E728-32E3-11D6-A682-7B03A0000000
Linux Data partition[2] EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Partição RAID A19D880F-05FC-4D3B-A006-743F0F84911E
Partição Swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
Partição do Gerenciador volume lógico (LVM) E6D6D379-F507-44C2-A23C-238F2A3DF928
Reservado 8DA63339-0007-60C0-C436-083AC8230908
FreeBSD Partição de Boot 83BD6B9D-7F41-11DC-BE0B-001560B84F0F
Partição de dados 516E7CB4-6ECF-11D6-8FF8-00022D09712B
Partição Swap 516E7CB5-6ECF-11D6-8FF8-00022D09712B
Partição Unix File System (UFS) 516E7CB6-6ECF-11D6-8FF8-00022D09712B
Partição Vinum volume manager 516E7CB8-6ECF-11D6-8FF8-00022D09712B
Partição ZFS 516E7CBA-6ECF-11D6-8FF8-00022D09712B
Mac OS X Partição Sistema de arquivos hierárquico (HFS+(em inglês)) 48465300-0000-11AA-AA11-00306543ECAC
Apple UFS 55465300-0000-11AA-AA11-00306543ECAC
ZFS[3] 6A898CC3-1DD2-11B2-99A6-080020736631
Partição RAID da Apple 52414944-0000-11AA-AA11-00306543ECAC
Partição RAID da Apple RAID, desconectada 52414944-5F4F-11AA-AA11-00306543ECAC
Partição Boot da Apple 426F6F74-0000-11AA-AA11-00306543ECAC
Rótulo da Apple 4C616265-6C00-11AA-AA11-00306543ECAC
Partição de resgate da TV Apple 5265636F-7665-11AA-AA11-00306543ECAC
Solaris Partição de Boot 6A82CB45-1DD2-11B2-99A6-080020736631
Partição Raíz 6A85CF4D-1DD2-11B2-99A6-080020736631
Partição Swap 6A87C46F-1DD2-11B2-99A6-080020736631
Partição cópia de segurança 6A8B642B-1DD2-11B2-99A6-080020736631
Partição /usr[3] 6A898CC3-1DD2-11B2-99A6-080020736631
Partição /var 6A8EF2E9-1DD2-11B2-99A6-080020736631
Partição /home 6A90BA39-1DD2-11B2-99A6-080020736631
Setor alternado 6A9283A5-1DD2-11B2-99A6-080020736631
Partição Reservada 6A945A3B-1DD2-11B2-99A6-080020736631
6A9630D1-1DD2-11B2-99A6-080020736631
6A980767-1DD2-11B2-99A6-080020736631
6A96237F-1DD2-11B2-99A6-080020736631
6A8D2AC7-1DD2-11B2-99A6-080020736631
NetBSD[4] Partição Swap 49F48D32-B10E-11DC-B99B-0019D1879648
Partição FFS 49F48D5A-B10E-11DC-B99B-0019D1879648
Partição LFS 49F48D82-B10E-11DC-B99B-0019D1879648
Partição RAID 49F48DAA-B10E-11DC-B99B-0019D1879648
Partição concatenada 2DB519C4-B10F-11DC-B99B-0019D1879648
Partição encriptada 2DB519EC-B10F-11DC-B99B-0019D1879648
  1. Os GUIDs nesta tabela estão escritos presumindo uma ordenação de bytes little endian. Exemplo, o GUID para uma partição de sistema EFI é escrito como C12A7328-F81F-11D2-BA4B-00A0C93EC93B aqui, que corresponde a sequência de 16 bytes 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B — apenas os três primeiros blocos sofreram permuta de bytes.
  2. a b Linux e Windows usam os mesmo GUIDs para suas partições de dados.
  3. a b O GUID para/usr no Solaris é usado como um GUID genérico para ZFS no Mac OS X.
  4. ^ Definições estão em src/sys/sys/disklabel_gpt.h. O NetBSD já utilizou os GUIDs do FreeBSD antes de criar GUIDs específicos para si.

Referências

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]