Teste de recuperação de danos no cabeçalho do GPT

gpt-header-damage-recovery-test

A Teste de recuperação de danos no cabeçalho do GPT questiona se um backup intacto é capaz de reconstruir os metadados de uma partição danificada. No exemplo gerado abaixo, isso é possível — desde que o cabeçalho do backup e sua matriz de entradas sejam válidos e descrevam o layout pretendido. No entanto, um CRC de cabeçalho correspondente, por si só, não garante que a tabela de partições esteja utilizável. Este experimento calcula sete estados de metadados, incluindo dois contraexemplos que passam na verificação da soma de verificação do cabeçalho. Em seguida, ele reconstrói a GPT primária a partir do backup e compara o resultado com a linha de base.

Índice

Questão de pesquisa e escopo

A pergunta é específica: após uma alteração definida próxima ao início de um disco GPT, os metadados remanescentes permitem a reconstrução do GPT primário original?

Este teste controlado, em nível de byte, constrói metadados GPT na memória, aplica as alterações definidas e valida as somas de verificação resultantes, os campos de localização e a reconstrução em comparação com uma linha de base inalterada.

O teste avalia a integridade do mapa de partições: se cada cópia do GPT é válida, se um backup existente permite a reconstrução e se os metadados reconstruídos correspondem à linha de base. Para as definições de campos subjacentes ao experimento, consulte o Estrutura do cabeçalho GPT e guia sobre o CRC32.

Configuração de referência e premissas

A configuração de referência é um exemplo de disco lógico de 64 MiB. Esse layout compacto facilita o acompanhamento dos endereços e isola os efeitos das alterações nos cabeçalhos GPT e nas matrizes de entradas.

Parâmetro

Configuração de referência

Capacidade lógica

67.108.864 bytes; 131.072 blocos lógicos

Tamanho do bloco lógico

512 bytes

Esquema de partição

Revisão 1.0 do GPT; MBR de proteção

Tamanhos de cabeçalho e de matriz

Cabeçalhos de 92 bytes; 128 entradas de 128 bytes cada

Partição ativa

Um registro de dados básico da Microsoft chamado LAB-DATA

Conteúdo da partição

Padrão determinístico de bytes para verificações de integridade em toda a faixa

O campo “Microsoft Basic Data” descreve o intervalo da partição e a finalidade de uso. Sua carga útil segue um padrão determinístico de bytes, permitindo uma comparação exata antes do dano e após a reconstrução.

As notas de cálculo expansíveis da comparação fornecem os locais dos metadados, os limites utilizáveis e a extensão exata da partição ativa. Todos os LBAs são relativos ao início desse disco lógico. O guia de endereçamento de blocos lógicos explica como convertê-los em deslocamentos em bytes.

Procedimento do experimento

Os rótulos S0–S6 Identifique os sete estados de amostra gerados, utilizados nos resultados e no seletor de cenários. Eles não representam operações de dano consecutivas em um único disco. S0 é a referência inalterada; S1 a S5 partem, cada um, de uma cópia independente de S0. Apenas S6 parte de S3.

Todas as alterações foram feitas em cópias descartáveis geradas. Não execute essas operações que causam danos em uma unidade que contenha dados necessários.

S0 — Linha de base: ambas as cópias do GPT estão intactas.

Crie o MBR de proteção, os cabeçalhos primário e de backup e as matrizes de entradas idênticas. Verifique as somas de verificação, os campos de localização, as dimensões das matrizes e os limites das partições. Mantenha esse estado inalterado como referência para todas as comparações.

S1 — Byte do cabeçalho primário corrompido.

Altere o primeiro elemento do cabeçalho principal DiskGUID byte no deslocamento relativo ao cabeçalho +0x38 de 33 para 32. Deixe o CRC do cabeçalho armazenado inalterado. Mantenha inalteradas ambas as matrizes, o cabeçalho de backup e o conteúdo da partição. Isso permite identificar uma incompatibilidade entre o cabeçalho e o CRC.

S2 — Falta o cabeçalho principal.

Substitua o bloco de 512 bytes no LBA 1 por zeros. Preserve a matriz primária e o GPT de backup completo. Verifique se o backup remanescente serve como fonte válida de reconstrução quando o cabeçalho primário não apresentar uma assinatura reconhecível.

S3 — Matriz de entrada primária danificada.

Na entrada 0 da matriz primária no LBA 2, altere o byte de nome no deslocamento relativo à entrada +0x38 de 4C para 4D, alterando L para M. Deixe ambos os cabeçalhos inalterados. Isso isola uma incompatibilidade entre o CRC da matriz e o CRC do cabeçalho, enquanto o CRC do cabeçalho principal ainda é válido.

S4 — Faltam os dois cabeçalhos.

Substitua os blocos de cabeçalho principal e de backup, nos LBAs 1 e 131071, por zeros. Preserve ambas as matrizes de entradas e o conteúdo da partição. Isso testa o limite da reconstrução quando nenhum dos cabeçalhos válidos sobrevive.

S5 — Cabeçalho de backup copiado sem adaptação.

Copie o bloco de cabeçalho de backup literalmente para o LBA 1. Não altere seus campos de localização nem a soma de verificação. Isso verifica se um CRC de cabeçalho válido pode coexistir com endereços incorretos no lado primário.

S6 — GPT primário reconstruído a partir do S3.

Comece com o dano ao array definido em S3. Restaure o array primário a partir de seu backup verificado, adapte os campos de localização do cabeçalho do backup para o lado primário e recalcule o CRC do cabeçalho. Compare os metadados reconstruídos, byte por byte, com os de S0.

Para cada estado, verifique separadamente o CRC do cabeçalho, o CRC da matriz e as relações de localização. A falta de um cabeçalho torna as verificações associadas indisponíveis; um CRC correspondente, por si só, não garante a validade do GPT. Compare separadamente todo o intervalo de conteúdo da partição, incluindo seu SHA-256, com o S0. A condição de aprovação é um layout GPT consistente, com o intervalo de conteúdo da partição preservado.

Resultados do teste de recuperação de danos no cabeçalho do GPT

The three rendered views below keep the same header region on screen. Follow the outlined byte at row +0030, column 08—header offset +0x38—and compare the stored and calculated header CRCs. The views render the same sample bytes used in the checksum and reconstruction checks.

Primary GPT corruption test: before damage

The baseline primary header contains 33 em DiskGUID +0x38. Its stored and calculated header CRCs match. The primary array and the backup GPT also validate.

gpt-header-before-damage

GPT header hex comparison: after one byte changes

S1 changes only that byte from 33 para 32. The stored header CRC remains unchanged, but the calculated CRC differs. The red outline identifies the changed byte, while the shaded checksum bytes show the value that was not updated. The valid backup remains a possible reconstruction source in this defined layout.

gpt-header-after-damage

Backup GPT header recovery experiment: after reconstruction

The reconstruction adapts the verified backup header for the primary location and recalculates its checksum. The outlined byte returns to 33; the stored and calculated CRCs match again. A full byte comparison confirms that the rebuilt primary metadata equals the baseline. This calculated S1-to-baseline transition is separate from S6, which repairs the array damage below.

gpt-header-after-reconstruction

Array damage: why a passing header CRC is not enough

S3 changes the first partition-name character from L to M in the entry array. The header bytes remain unchanged, so its CRC passes while the array CRC fails. S6 restores the backup array and rebuilds the primary header, returning the original metadata to the baseline.

O GPT partition entry array guide explains why the name belongs to the array rather than the header.

Failure conditions that change the interpretation

The collapsed scenario table retains the remaining checks. With the primary header missing (S2), the intact backup still supports reconstruction. With both headers missing (S4), no valid header remains as a reconstruction source, even though the defined arrays survive. Finally, copying the backup header verbatim to LBA 1 (S5) preserves its valid CRC but leaves incorrect primary location fields.

These outcomes distinguish a matching checksum from a consistent partition map. A valid reconstruction requires checksums and location relationships to agree with the intended layout.

Use the scenario explorer below to compare all seven states in Hex. Start with S0, then switch between S1–S6 to inspect the primary header and the entry-array excerpt alongside the CRC and location checks. Red marks bytes that differ from S0; green in S6 marks reconstructed fields that match the baseline.

When can the backup GPT rebuild the primary?
Header CRCPASS
Array CRCFAIL
Location checksPASS
Backup GPTVALID
First primary entry name byte at array +0x38: 4C → 4D.
Primary header CRC passes, but its array CRC fails; backup remains valid.
Primary header · 92 bytes · LBA 1
DESLOCAMENTO000102030405060708090A0B0C0D0E0FASCII
+00004546492050415254000001005C000000EFI PART....\...
+0010B5AC7A86000000000100000000000000..z.............
+0020FFFF0100000000002200000000000000........".......
+0030DEFF0100000000003322110055447746........3"..UDwF
+00408899AABBCCDDEEFF0200000000000000................
+00508000000080000000C0E8F8B0............
Primary array · entry 0, offsets +0x30–+0x3F · LBA 2
+003000000000000000004D00410042002D00........M.A.B.-.
Red = changed from baseline · Green = restored field in S6 · Offsets are relative to each structure.
CRC values and all seven scenarios
Selected header · stored → calculated
0x867AACB5 → 0x867AACB5
Referenced array · stored → calculated
0xB0F8E8C0 → 0x21E2966D
CenárioHeader CRCArray CRCLocalizaçãoBackup GPTCalculated interpretation
S0 · BaselinePASSPASSPASSVALIDBoth GPT copies validate.
S1 · Header bit flipFAILPASSPASSVALIDBackup header and array remain usable for reconstruction.
S2 · Primary header missingUnavailableUnavailableUnavailableVALIDBackup header and array remain usable for reconstruction.
S3 · Primary array damagedPASSFAILPASSVALIDPrimary header CRC passes, but its array CRC fails; backup remains valid.
S4 · Both headers missingUnavailableUnavailableUnavailableMissingNo valid header remains; automatic header-to-header reconstruction is unsupported.
S5 · Blind backup copyPASSPASSFAILVALIDCRC passes, but MyLBA and primary array placement fail.
S6 · Rebuilt primaryPASSPASSPASSVALIDPrimary GPT equals the baseline; both copies validate.

Header CRC: 92 bytes with +0x10–+0x13 zeroed. Array CRC: 128 × 128 = 16,384 bytes. Location checks validate MyLBA and primary-array placement. Missing headers make these checks unavailable.

Generated 64 MiB sample · 512-byte blocks · header and entry bytes switch with the scenario; checks are precomputed.

Why the Results Follow from the Mechanism

UEFI 2.11, Section 5.3.2 defines separate header and entry-array checks. The header CRC covers Tamanho do cabeçalho bytes with HeaderCRC32 temporarily zeroed. The array CRC covers NumberOfPartitionEntries × SizeOfPartitionEntry bytes. Location checks add information that neither checksum supplies.

In this sample, S1 changes a header-CRC input. S3 changes an array-CRC input. S5 preserves the header-CRC input but violates the primary location requirements. These controlled differences explain the three distinct validation outcomes shown in the explorer.

The sample also explains why the primary and backup header checksums differ at baseline: their location-dependent fields differ. Identical arrays can share a checksum while their associated headers do not.

Practical Interpretation and Limitations

On a real disk, first preserve the source and identify the correct device by model or serial number, capacity, and logical block size. Perform any proposed metadata writes on a disposable working copy. A USB bridge, a resized image, or a truncated acquisition can change the address context; do not substitute this sample’s last LBA for the actual device boundary.

Next, establish whether a surviving backup describes the intended current layout. A correct CRC detects certain byte changes; it does not prove freshness or authenticity. UEFI specifically warns about stale backup GPT metadata after a disk has been reformatted for legacy MBR use. Conflicting copies require investigation before either is accepted as authoritative.

Microsoft’s Windows and GPT FAQ provides background on GPT redundancy and CRC protection. Recovery behavior depends on the operating system, the tool, and platform policy. Confirm which GPT copy a tool accepts and which metadata ranges it proposes to change before approving a repair.

After metadata reconstruction, confirm the expected partition boundaries, inspect the file system without modifying the source, and verify representative files against known copies where available. For a system disk, follow this with a boot check on the intended target. These checks establish file accessibility and startup readiness after the partition map has been validated.

When File Recovery Comes Before GPT Repair

When a partition disappears or its volume becomes inaccessible, securing important files may take priority over writing changes to the GPT. Magic Data Recovery’s lost-partition workflow can scan for recoverable files, preview supported file types, and save selected data to another drive. After recovering the files you need, assess the partition layout and plan any metadata repair on a working copy. Keep file recovery and GPT reconstruction as separate tasks, with separate checks for recovered files and partition-table integrity.

Conclusão

Isso Teste de recuperação de danos no cabeçalho do GPT demonstrates how a valid backup can support reconstruction after primary-header corruption or loss. In the tested sample, restoring the entry array and adapting the header’s location fields returned the primary GPT to its baseline bytes. The decisive condition is that the surviving backup header and its associated array both validate and describe the intended partition layout.

The comparisons also show why a passing header CRC32 is insufficient: entry-array damage can leave the header checksum unchanged, while an unmodified backup header can retain a valid checksum at the wrong location. Reliable GPT recovery therefore requires agreement between header checksums, array checksums, and location fields. After reconstruction, verify partition boundaries, file-system access, and important files separately; system disks also need a boot check. A restored partition map establishes metadata consistency, while these additional checks determine whether the disk is usable again.

FAQ About GPT Header Damage and Recovery

Como posso verificar se um cabeçalho GPT está corrompido?

Utilize uma inspeção da tabela de partições somente leitura para verificar a assinatura, o tamanho do cabeçalho, o CRC do cabeçalho, os campos de localização e o CRC da matriz de entradas associada. Confirme o tamanho do bloco lógico do dispositivo antes de interpretar os deslocamentos. Uma comparação hexadecimal pode revelar bytes alterados, mas os cabeçalhos principal e de backup apresentam, de forma legítima, campos de localização e somas de verificação diferentes.

É possível reparar um cabeçalho GPT corrompido a partir do backup?

Sim, quando o cabeçalho do backup e sua matriz de entradas são válidos e descrevem o layout atual pretendido da partição. A reconstrução deve adaptar os campos dependentes de localização e calcular a soma de verificação apropriada do cabeçalho. A simples cópia do cabeçalho do backup, sem alterações, para o local primário é insuficiente, pois seus endereços ainda descrevem o lado do backup.

O backup GPT preserva as partições que foram excluídas?

O GPT de backup é uma cópia redundante dos metadados das partições, e não um histórico de layouts anteriores. As atualizações corretas das partições também atualizam o backup. Portanto, ele pode não conter mais a entrada de uma partição excluída. Se as duas cópias apresentarem discrepâncias, determine qual layout está correto antes de usar qualquer uma delas para a reconstrução.

A recuperação do cabeçalho GPT consegue restaurar arquivos sem perda de dados?

A reparação dos metadados da partição pode restaurar o acesso quando os limites corretos da partição, o sistema de arquivos e o conteúdo dos arquivos permanecem intactos. Ela não reverte dados sobrescritos, não descriptografa um volume criptografado nem repara automaticamente um sistema de arquivos danificado. Preserve a fonte e avalie uma cópia de trabalho antes de fazer alterações; o sucesso na reparação dos metadados não garante a recuperação completa dos arquivos.

E se tanto o cabeçalho GPT primário quanto o de backup estiverem danificados?

Nenhuma das cópias pode servir como fonte validada para o cabeçalho até que sua integridade seja comprovada. Matrizes de entradas ou estruturas do sistema de arquivos que tenham sobrevivido podem ajudar a reconstruir os limites das partições, mas exigem verificações adicionais. O fato de ambos os cabeçalhos apresentarem falhas não prova que todo o conteúdo do arquivo tenha sido perdido. Evite gravar limites estimados no dispositivo original.

Como posso testar a recuperação do cabeçalho GPT com segurança?

Utilize um dispositivo de teste descartável ou uma cópia de trabalho com uma linha de base registrada. Confirme sua identidade, capacidade e tamanho do bloco lógico antes de alterar um intervalo de metadados definido com precisão. Compare o mapa de partições reconstruído com a linha de base e, em seguida, avalie separadamente o acesso ao sistema de arquivos e o comportamento de inicialização. Não introduza corrupção deliberada em uma unidade que contenha dados necessários.

A reparação do cabeçalho GPT resolverá uma falha na inicialização do Windows?

Isso pode ajudar caso o mapa de partições danificado tenha causado a falha, mas outros requisitos de inicialização também devem ser atendidos. Os requisitos de partição UEFI/GPT da Microsoft explicam a função da Partição do Sistema EFI. Metadados GPT corretos, por si só, não garantem que as partições e os arquivos de inicialização necessários estejam em condições de uso; uma inicialização bem-sucedida requer verificação separada.

Vasilii é um especialista em recuperação de dados com cerca de 10 anos de experiência prática na área. Ao longo de sua carreira, ele resolveu com sucesso milhares de casos complexos envolvendo arquivos excluídos, unidades formatadas, partições perdidas e sistemas de arquivos RAW. Sua experiência abrange métodos de recuperação manual usando ferramentas profissionais, como editores hexadecimais, e soluções automatizadas avançadas com software de recuperação. A missão do Vasilii é tornar o conhecimento confiável sobre recuperação de dados acessível tanto para profissionais de TI quanto para usuários comuns, ajudando-os a proteger seus valiosos ativos digitais.