Test zur Wiederherstellung nach einer Beschädigung des GPT-Headers

gpt-header-damage-recovery-test

A Test zur Wiederherstellung nach einer Beschädigung des GPT-Headers untersucht, ob sich beschädigte Partitionsmetadaten anhand einer erhaltenen Sicherung rekonstruieren lassen. Im unten aufgeführten Beispiel ist dies möglich – vorausgesetzt, der Sicherungsheader und sein Eintragsarray sind gültig und beschreiben das beabsichtigte Layout. Ein übereinstimmender CRC des Headers allein belegt jedoch nicht, dass die Partitionstabelle verwendbar ist. Dieses Experiment berechnet sieben Metadaten-Zustände, darunter zwei Gegenbeispiele, die die Header-Prüfsumme bestehen. Anschließend wird die primäre GPT aus dem Backup wiederhergestellt und das Ergebnis mit der Baseline verglichen.

Inhaltsübersicht

Forschungsfrage und Untersuchungsrahmen

Die Frage ist konkret: Ermöglichen die erhalten gebliebenen Metadaten nach einer definierten Änderung am Anfang einer GPT-Festplatte die Rekonstruktion des ursprünglichen primären GPT?

Dieser kontrollierte Test auf Byte-Ebene erstellt GPT-Metadaten im Arbeitsspeicher, wendet definierte Änderungen an und überprüft die daraus resultierenden Prüfsummen, Speicherortfelder und die Rekonstruktion anhand einer unveränderten Basisversion.

Der Test überprüft die Integrität der Partitionszuordnung: ob jede GPT-Kopie validiert wird, ob ein erhaltenes Backup die Rekonstruktion unterstützt und ob die wiederhergestellten Metadaten mit der Baseline übereinstimmen. Die Felddefinitionen, die dem Experiment zugrunde liegen, finden Sie im Leitfaden zur GPT-Header-Struktur und zum CRC32.

Referenzkonfiguration und Annahmen

Die Referenzkonfiguration ist ein Beispiel für eine logische Festplatte mit einer Größe von 64 MiB. Durch diesen kompakten Aufbau lassen sich die Adressen leicht nachvollziehen, und die Auswirkungen von Änderungen an den GPT-Headern und Eintragsarrays lassen sich isoliert betrachten.

Parameter

Referenzkonfiguration

Logische Kapazität

67.108.864 Byte; 131.072 logische Blöcke

Logische Blockgröße

512 Byte

Partitionsschema

GPT-Revision 1.0; Schutz-MBR

Größen von Headern und Arrays

92-Byte-Kopfzeilen; 128 Einträge mit jeweils 128 Byte

Aktive Partition

Ein Microsoft Basic-Datensatz mit dem Namen LAB-DATA

Inhalt der Partition

Deterministisches Byte-Muster für Integritätsprüfungen über den gesamten Bereich

Der Microsoft-Basic-Dateneintrag beschreibt den Partitionsbereich und den Verwendungszweck. Seine Nutzdaten folgen einem deterministischen Byte-Muster, was einen exakten Vergleich vor dem Schaden und nach der Wiederherstellung ermöglicht.

Die erweiterbaren Berechnungshinweise des Vergleichs geben sowohl die Speicherorte der Metadaten als auch die nutzbaren Grenzen und die genaue Ausdehnung der aktiven Partition an. Alle LBAs beziehen sich auf den Anfang dieser logischen Festplatte. Die Leitfaden zur logischen Blockadressierung erklärt, wie man sie in Byte-Offsets umrechnet.

Versuchsablauf

Die Etiketten S0–S6 Identifizieren Sie die sieben generierten Beispielzustände, die in den Ergebnissen und im Szenario-Selektor verwendet werden. Es handelt sich dabei nicht um aufeinanderfolgende Beschädigungsvorgänge auf einer Festplatte. S0 ist die unveränderte Referenz; S1–S5 beginnen jeweils mit einer unabhängigen Kopie von S0. Nur S6 beginnt mit S3.

Alle Änderungen wurden an temporären Kopien vorgenommen. Führen Sie diese Löschvorgänge nicht auf einem Laufwerk durch, das benötigte Daten enthält.

S0 – Ausgangssituation: Beide GPT-Kopien sind intakt.

Erstellen Sie den Schutz-MBR, die primären und Backup-Header sowie identische Eintrags-Arrays. Überprüfen Sie die Prüfsummen, die Speicherortfelder, die Array-Dimensionen und die Partitionsgrenzen. Behalten Sie diesen unveränderten Zustand als Referenz für jeden Vergleich bei.

S1 – Primäres Header-Byte beschädigt.

Ändere den ersten Eintrag der Hauptüberschrift DiskGUID Byte am header-relativen Offset +0x38 von 33 zu 32. Lassen Sie den gespeicherten CRC-Wert des Headers unverändert. Behalten Sie sowohl die Arrays als auch den Backup-Header und den Inhalt der Partition unverändert bei. Dadurch lässt sich eine Diskrepanz zwischen Header und CRC isolieren.

S2 – Primäre Überschrift fehlt.

Ersetzen Sie den 512-Byte-Block an LBA 1 durch Nullen. Behalten Sie das primäre Array und die vollständige GPT-Sicherung bei. Prüfen Sie, ob die erhaltene Sicherung eine gültige Quelle für die Rekonstruktion darstellt, wenn der primäre Header keine erkennbare Signatur aufweist.

S3 – Primäres Eingabe-Array beschädigt.

Ändere in Eintrag 0 des primären Arrays bei LBA 2 das Namensbyte am eintragsrelativen Offset +0x38 von 4C zu 4D, wobei L in M geändert wird. Beide Header bleiben unverändert. Dadurch wird eine Diskrepanz zwischen Array und CRC isoliert, während der CRC des primären Headers weiterhin gültig ist.

S4 – Beide Kopfzeilen fehlen.

Ersetzen Sie die primären und sekundären Header-Blöcke an LBA 1 und LBA 131071 durch Nullen. Behalten Sie dabei sowohl die Eintrags-Arrays als auch den Inhalt der Partitionen bei. Damit wird die Grenze der Rekonstruktion getestet, wenn kein gültiger Header erhalten geblieben ist.

S5 – Backup-Header ohne Anpassung kopiert.

Kopieren Sie den Backup-Header-Block wortwörtlich an LBA 1. Ändern Sie weder die Positionsfelder noch die Prüfsumme. Damit wird überprüft, ob ein gültiger Header-CRC mit fehlerhaften Adressen auf der Primärseite koexistieren kann.

S6 – Primäre GPT, neu erstellt aus S3.

Beginnen Sie mit dem in S3 definierten Array-Schaden. Stellen Sie das primäre Array anhand seiner verifizierten Sicherung wieder her, passen Sie die Speicherortfelder des Sicherungs-Headers an die Primärseite an und berechnen Sie den CRC-Wert des Headers neu. Vergleichen Sie die rekonstruierten Metadaten Byte für Byte mit S0.

Überprüfen Sie für jeden Zustand den CRC des Headers, den CRC des Arrays und die Speicherortbeziehungen separat. Ein fehlender Header macht die zugehörigen Prüfungen unzugänglich; ein übereinstimmender CRC allein reicht nicht aus, um eine gültige GPT nachzuweisen. Vergleichen Sie den gesamten Bereich des Partitionsinhalts, einschließlich seines SHA-256-Werts, separat mit S0. Die Bedingung für das Bestehen ist ein konsistentes GPT-Layout, bei dem der Bereich des Partitionsinhalts erhalten bleibt.

Testergebnisse zur Wiederherstellung nach einer Beschädigung des GPT-Headers

Bei den drei unten dargestellten Ansichten bleibt derselbe Kopfbereich auf dem Bildschirm sichtbar. Folgen Sie dem umrandeten Byte in Zeile +0030, Spalte 08—Header-Offset +0x38—und vergleichen Sie die gespeicherten und berechneten CRC-Werte des Headers. Die Ansichten zeigen dieselben Beispielbytes an, die bei den Prüfsummen- und Rekonstruktionsprüfungen verwendet wurden.

Erster GPT-Integritätstest: vor dem Schaden

Der primäre Header der Basisversion enthält 33 unter DiskGUID +0x38. Die gespeicherten und berechneten CRC-Werte der Header stimmen überein. Das Primär-Array und die GPT-Sicherung werden ebenfalls validiert.

gpt-header-before-damage

Hexadezimaler Vergleich des GPT-Headers: nach der Änderung eines Bytes

S1 ändert nur dieses Byte von 33 zu 32. Der gespeicherte CRC des Headers bleibt unverändert, der berechnete CRC weicht jedoch davon ab. Der rote Rahmen kennzeichnet das geänderte Byte, während die schattierten Prüfsummenbytes den Wert anzeigen, der nicht aktualisiert wurde. Die gültige Sicherungskopie bleibt in diesem definierten Layout eine mögliche Quelle für die Rekonstruktion.

gpt-header-after-damage

Experiment zur Wiederherstellung des GPT-Headers aus einem Backup: nach der Rekonstruktion

Bei der Rekonstruktion wird der verifizierte Backup-Header für den Primärstandort angepasst und dessen Prüfsumme neu berechnet. Das markierte Byte kehrt zurück zu 33; die gespeicherten und berechneten CRC-Werte stimmen wieder überein. Ein vollständiger Byte-Vergleich bestätigt, dass die wiederhergestellten primären Metadaten mit der Basislinie übereinstimmen. Dieser berechnete Übergang von S1 zur Basislinie ist unabhängig von S6, das den darunter liegenden Array-Schaden behebt.

gpt-header-after-reconstruction

Schäden am Array: Warum ein erfolgreicher CRC-Check beim Header nicht ausreicht

S3 ändert das erste Zeichen des Partitionsnamens im Eintragsarray von „L“ in „M“. Die Header-Bytes bleiben unverändert, sodass deren CRC-Prüfsumme erfolgreich ist, während die CRC-Prüfsumme des Arrays fehlschlägt. S6 stellt das Backup-Array wieder her und baut den primären Header neu auf, wodurch die ursprünglichen Metadaten wieder auf den Ausgangszustand zurückgesetzt werden.

Die Anleitung zum GPT-Partitionseintrags-Array erklärt, warum der Name zum Array und nicht zum Header gehört.

Fehlerzustände, die die Interpretation verändern

Die komprimierte Szenariotabelle behält die verbleibenden Prüfwerte bei. Da der primäre Header fehlt (S2), ermöglicht das intakte Backup weiterhin eine Rekonstruktion. Fehlen beide Header (S4), bleibt kein gültiger Header als Quelle für die Rekonstruktion übrig, obwohl die definierten Arrays erhalten bleiben. Schließlich bewahrt das wortgetreue Kopieren des Backup-Headers auf LBA 1 (S5) zwar dessen gültigen CRC, hinterlässt jedoch fehlerhafte Felder für den primären Speicherort.

Diese Ergebnisse unterscheiden eine übereinstimmende Prüfsumme von einer konsistenten Partitionszuordnung. Für eine gültige Rekonstruktion müssen die Prüfsummen und die Positionsbeziehungen mit dem beabsichtigten Layout übereinstimmen.

Verwenden Sie den unten stehenden Szenario-Explorer, um alle sieben Zustände in Hex zu vergleichen. Beginnen Sie mit S0 und wechseln Sie dann zwischen S1 und S6, um den Primärheader und den Ausschnitt aus dem Eintragsarray sowie die CRC- und Positionsprüfungen zu überprüfen. Rot markiert Bytes, die sich von S0 unterscheiden; grün markiert in S6 rekonstruierte Felder, die mit der Basislinie übereinstimmen.

Wann kann die sekundäre GPT die primäre wiederherstellen?
Header-CRCPASS
Array-CRCFEHLER
StandortprüfungenPASS
GPT-SicherungGÜLTIG
Erstes Byte des Namens des primären Eintrags an Array +0x38: 4C → 4D.
Der CRC des primären Headers ist korrekt, der des Arrays jedoch nicht; die Sicherungskopie bleibt gültig.
Primärer Header · 92 Bytes · LBA 1
OFFSET000102030405060708090A0B0 °C0D0E0FASCII
+00004546492050415254000001005C000000EFI-TEIL....\...
+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
SzenarioHeader-CRCArray-CRCStandortGPT-SicherungCalculated interpretation
S0 · AusgangswertPASSPASSPASSGÜLTIGBoth GPT copies validate.
S1 · Bitumkehr im HeaderFEHLERPASSPASSGÜLTIGBackup header and array remain usable for reconstruction.
S2 · Primäre Überschrift fehltUnavailableUnavailableUnavailableGÜLTIGBackup header and array remain usable for reconstruction.
S3 · Primäres Array beschädigtPASSFEHLERPASSGÜLTIGDer CRC des primären Headers ist korrekt, der des Arrays jedoch nicht; die Sicherungskopie bleibt gültig.
S4 · Beide Kopfzeilen fehlenUnavailableUnavailableUnavailableMissingNo valid header remains; automatic header-to-header reconstruction is unsupported.
S5 · BlindkopiePASSPASSFEHLERGÜLTIGCRC passes, but MyLBA and primary array placement fail.
S6 · Überholtes PrimärgetriebePASSPASSPASSGÜLTIGPrimary 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 Kopfzeilengröße 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.

Schlussfolgerung

Diese Test zur Wiederherstellung nach einer Beschädigung des GPT-Headers 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

Wie kann ich überprüfen, ob ein GPT-Header beschädigt ist?

Führen Sie eine schreibgeschützte Überprüfung der Partitionstabelle durch, um die Signatur, die Header-Größe, den CRC-Wert des Headers, die Positionsfelder und den CRC-Wert des zugehörigen Eintrags-Arrays zu überprüfen. Vergewissern Sie sich über die logische Blockgröße des Geräts, bevor Sie Offsets auswerten. Ein Hex-Vergleich kann geänderte Bytes aufdecken, allerdings weisen Primär- und Backup-Header legitimerweise unterschiedliche Positionsfelder und Prüfsummen auf.

Kann ein beschädigter GPT-Header anhand der Sicherungskopie repariert werden?

Ja, wenn der Backup-Header und sein Eintragsarray gültig sind und die beabsichtigte aktuelle Partitionsstruktur beschreiben. Bei der Rekonstruktion müssen die ortsabhängigen Felder angepasst und die entsprechende Header-Prüfsumme berechnet werden. Ein einfaches, unverändertes Kopieren des Backup-Headers an den primären Speicherort reicht nicht aus, da dessen Adressen weiterhin die Backup-Seite beschreiben.

Werden in der GPT-Sicherung auch gelöschte Partitionen beibehalten?

Das GPT-Backup ist eine redundante Kopie der Partitionsmetadaten und keine Aufzeichnung früherer Layouts. Bei ordnungsgemäßen Partitionsaktualisierungen wird auch das Backup aktualisiert. Daher enthält es möglicherweise keinen Eintrag mehr für eine gelöschte Partition. Sollten die beiden Kopien voneinander abweichen, stellen Sie zunächst fest, welches Layout korrekt ist, bevor Sie eines davon für die Rekonstruktion verwenden.

Kann die GPT-Header-Wiederherstellung Dateien ohne Datenverlust wiederherstellen?

Durch die Reparatur von Partitionsmetadaten kann der Zugriff wiederhergestellt werden, sofern die korrekten Partitionsgrenzen, das Dateisystem und der Dateiinhalt intakt sind. Dabei werden überschriebene Daten nicht rückgängig gemacht, verschlüsselte Volumes nicht entschlüsselt und beschädigte Dateisysteme nicht automatisch repariert. Bewahren Sie die Quelle auf und prüfen Sie eine funktionierende Kopie, bevor Sie Änderungen vornehmen; eine erfolgreiche Reparatur der Metadaten garantiert keine vollständige Wiederherstellung der Dateien.

Was passiert, wenn sowohl der primäre als auch der Backup-GPT-Header beschädigt sind?

Keine der beiden Kopien kann als validierte Header-Quelle dienen, solange ihre Integrität nicht nachgewiesen ist. Erhalten gebliebene Eintrags-Arrays oder Dateisystemstrukturen können zwar bei der Rekonstruktion von Partitionsgrenzen helfen, erfordern jedoch zusätzliche Überprüfungen. Das Fehlen beider Header beweist nicht, dass der gesamte Dateiinhalt verloren gegangen ist. Vermeiden Sie es, vermutete Grenzen auf das Originalgerät zu schreiben.

Wie kann ich die Wiederherstellung des GPT-Headers sicher testen?

Verwenden Sie ein Einweg-Testgerät oder eine Arbeitskopie mit einer gespeicherten Baseline. Überprüfen Sie dessen Identität, Kapazität und logische Blockgröße, bevor Sie einen genau definierten Metadatenbereich ändern. Vergleichen Sie die rekonstruierte Partitionskarte mit der Baseline und bewerten Sie anschließend den Dateisystemzugriff und das Startverhalten separat. Fügen Sie einem Laufwerk, das benötigte Daten enthält, keine absichtlichen Beschädigungen hinzu.

Kann ein Windows-Startfehler durch die Reparatur eines GPT-Headers behoben werden?

Es kann zwar hilfreich sein, wenn die beschädigte Partitionszuordnung den Fehler verursacht hat, doch müssen auch andere Startvoraussetzungen erfüllt sein. In den UEFI/GPT-Partitionsanforderungen von Microsoft wird die Rolle der EFI-Systempartition erläutert. Korrekte GPT-Metadaten allein reichen nicht aus, um sicherzustellen, dass die erforderlichen Partitionen und Startdateien funktionsfähig sind; ein erfolgreicher Systemstart muss separat überprüft werden.

Vasilii ist ein Datenrettungsspezialist mit rund 10 Jahren praktischer Erfahrung in diesem Bereich. Im Laufe seiner Karriere hat er Tausende von komplexen Fällen mit gelöschten Dateien, formatierten Laufwerken, verlorenen Partitionen und RAW-Dateisystemen erfolgreich gelöst. Sein Fachwissen umfasst sowohl manuelle Wiederherstellungsmethoden mit professionellen Tools wie Hex-Editoren als auch fortschrittliche automatische Lösungen mit Wiederherstellungssoftware. Vasilii hat es sich zur Aufgabe gemacht, zuverlässiges Wissen zur Datenwiederherstellung sowohl IT-Fachleuten als auch normalen Nutzern zugänglich zu machen und ihnen dabei zu helfen, ihre wertvollen digitalen Ressourcen zu schützen.