Voce di partizione GPT: campi “Structure”, “Array” e “GUID”

GPT Partition Entry Structure, Array, and GUID Fields

A Voce di partizione GPT è un record che descrive una partizione su un disco con tabella delle partizioni GUID (GPT). Identifica il tipo di partizione, il GUID univoco, gli indirizzi di blocco logico (LBA) di inizio e fine, gli attributi e il nome. Il solito Struttura delle voci delle partizioni GPT occupa 128 byte. Decodificando questi campi, è possibile individuare una partizione, calcolarne la dimensione e verificare che i relativi metadati siano corretti.

La presente guida segue la specifica UEFI 2.10 e utilizza Windows 10, Windows 11 e Windows Server come esempi pratici. Il formato GPT sottostante è applicabile anche ad altri sistemi operativi compatibili. Tutti gli esempi di byte riportati di seguito sono sintetici e non provengono da un disco reale.

Indice dei contenuti

Che cos’è una voce di partizione GPT?

A Voce di partizione GPT definisce l'identità e i confini di una partizione; non contiene i file della partizione. Per capire dove si colloca, occorre distinguere tre strutture:

Struttura

Cosa contiene

Intestazione GPT

Posizione dell'array, numero e dimensione delle voci, intervallo LBA utilizzabile e checksum

Matrice di voci di partizione GPT

Una sequenza di record di partizione, compresi gli slot non utilizzati

Voce di partizione GPT

GUID, confini, attributi e nome di una partizione

La voce indica al sistema operativo un’area di blocchi logici. Tale area può contenere un file system NTFS, FAT32, exFAT, un altro file system oppure dati privi di un file system convenzionale.

Per la struttura generale del disco, consultare il documento di Amagicsoft Panoramica sulla tabella delle partizioni GUID (GPT).

Struttura delle voci delle partizioni GPT: sei campi e i relativi offset

Specifiche UEFI 2.10, Sezione 5.3.3 definisce lo standard da 128 byte Struttura delle voci delle partizioni GPT:

Campo

Offset relativo

Lunghezza

Significato

GUID del tipo di partizione

0x00–0x0F

16 byte

Tipo di partizione previsto

UniquePartitionGUID

0x10–0x1F

16 byte

Identificatore di questa specifica partizione

StartingLBA

0x20–0x27

8 byte

Primo blocco logico

FineLBA

0x28–0x2F

8 byte

Ultimo blocco logico, compreso

Attributi

0x30–0x37

8 byte

Maschera degli attributi a 64 bit

Nome partizione

0x38–0x7F

72 byte

Nome memorizzato come unità di codice UTF-16LE

Queste compensazioni iniziano all'inizio di una voce, non all'inizio del disco. Inoltre, 128 byte è la dimensione standard delle voci, non l'unica consentita. Con UEFI 2.10, Dimensione della voce di partizione deve essere uguale a 128 × 2^n, con un numero intero non negativo n. Per le voci più grandi, i byte oltre l'offset 0x7F sono riservati e devono essere pari a zero.

I due campi GUID

GUID del tipo di partizione indica al software a quale tipo di partizione si riferisce una voce. UniquePartitionGUID identifica quella specifica partizione. Ad esempio, due partizioni di dati di base possono condividere un GUID di tipo, ma non dovrebbero condividere un GUID di partizione univoco.

Nessuno dei due campi corrisponde all'identificatore del disco GPT. Il DiskGUID fa parte dell'intestazione GPT.

Confini della LBA e dimensione della partizione

A Voce di partizione GPT memorizza entrambi gli endpoint come interi a 64 bit senza segno, in formato little-endian. Poiché FineLBA è inclusivo, calcolare il numero di blocchi e la capacità come segue:

Numero di blocchi = LBA finale − LBA iniziale + 1

Dimensione in byte = Numero di blocchi × Dimensione logica del blocco

Se una partizione si estende dall'LBA 2048 all'LBA 4095, copre 2.048 blocchi. Con blocchi logici da 512 byte, la sua dimensione è pari a 1 MiB. Con blocchi logici da 4096 byte, la sua dimensione è pari a 8 MiB. Non dare mai per scontato che un LBA rappresenti sempre 512 byte.

Attributi e nome della partizione

Il Attributi Il campo contiene una maschera a 64 bit. L'UEFI definisce il bit 0 come "Partizione richiesta", il bit 1 come "Nessun protocollo I/O a blocchi" e il bit 2 come "Avviabile con BIOS legacy". Nella specifica UEFI 2.10, i bit da 3 a 47 sono riservati, mentre i bit da 48 a 63 sono specifici per il tipo di partizione.

Per i tipi di partizione Windows supportati, Documentazione di Microsoft sulle informazioni relative alle partizioni GPT definisce i flag dei bit superiori, tra cui "sola lettura" (bit 60), "copia shadow" (61), "nascosta" (62) e "senza lettera di unità predefinita" (63). Non applicare indiscriminatamente tali significati di Windows a ogni tipo di partizione.

Nome partizione contiene 36 unità di codice UTF-16 (72 byte). Un nome più breve utilizza la terminazione con carattere null. È importante sottolineare che questo nome GPT è distinto dall'etichetta del volume memorizzata all'interno di un file system. La lettura di un Voce di partizione GPT di per sé non determina l'etichetta che Windows visualizza per un volume montato.

Come funziona l'array delle voci di partizione GPT

Il Matrice delle voci delle partizioni GPT contiene partizioni consecutive di uguale dimensione. La sua intestazione GPT specifica PartitionEntryLBA, Numero di voci di partizione, e Dimensione della voce di partizione. Pertanto, il software legge l'intestazione prima di poter individuare in modo affidabile un determinato record.

Array bytes = NumeroDiVociDellaPartizione × DimensioneDiUnaVoceDellaPartizione

Array blocchi logici = ceiling(Array byte ÷ Dimensione blocco logico)

L'UEFI 2.10 richiede almeno 16.384 byte di spazio per l'Entry Array. Una configurazione comune utilizza 128 slot da 128 byte ciascuno. Di conseguenza, occupa 32 blocchi su un disco a blocchi logici da 512 byte, oppure quattro blocchi su un disco da 4.096 byte. Tuttavia, 128 non è un limite universale per le partizioni. L’intestazione (Header) specifica il numero di voci.

Uno slot non utilizzato ha valore zero GUID del tipo di partizione; anche gli altri byte dovrebbero essere pari a zero in un array gestito correttamente. Quindi, 128 slot disponibili non non ovvero 128 partizioni attive.

GPT partition entry array showing active entries, unused slots, and their corresponding non-overlapping LBA ranges

Trova una voce specifica tramite l'indice

Per trovare l'articolo i, dove i se parte da zero, usa:

Offset assoluto in byte = (PartitionEntryLBA × Dimensione del blocco logico) + (i × Dimensione della voce di partizione)

Ad esempio, supponiamo che PartitionEntryLBA = 2, SizeOfPartitionEntry = 128, e i = 5.

Dimensione del blocco logico

Offset assoluto calcolato

Posizione sul disco

512 byte

(2 × 512) + (5 × 128) = 1664

LBA 3, byte 128

4096 byte

(2 × 4096) + (5 × 128) = 8832

LBA 2, byte 640

Si tratta di calcoli relativi a un esempio ipotetico, non di osservazioni effettuate su due dispositivi fisici. Si noti che lo stesso Voce di partizione GPT L'indice può trovarsi in diverse LBA quando cambia la dimensione del blocco logico del dispositivo.

Array primari e di backup

Un disco GPT convenzionale colloca l'intestazione primaria all'LBA 1 e l'intestazione di backup all'LBA finale. L'array delle voci primarie segue normalmente l'intestazione primaria; l'array di backup si trova prima dell'intestazione di backup. Le loro posizioni derivano dai rispettivi campi delle intestazioni, non da un intervallo di settori universale predefinito.

Il nostro Struttura dell'intestazione GPT e guida al CRC32 spiega in dettaglio questi campi dell'intestazione e la relazione tra i due array.

GUID del tipo di partizione GPT vs. GUID univoco della partizione

A GUID del tipo di partizione GPT descrive l'uso previsto della partizione. Un GUID univoco della partizione identifica una determinata partizione, mentre il GUID del disco identifica il disco GPT. Questi tre identificatori sono correlati ma non sono intercambiabili.

Tra i GUID di tipo comune relativi a Windows figurano:

Tipo di partizione

GUID di tipo

Partizione di sistema EFI

C12A7328-F81F-11D2-BA4B-00A0C93EC93B

Riservato a Microsoft

E3C9E316-0B5C-4DB8-817D-F92DF00215AE

Dati di base su Microsoft

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

Ripristino Microsoft

DE94BBA4-06D1-4D40-A16A-BFD50179D6AC

Un GUID di tipo non identificare direttamente un file system. Ad esempio, una partizione Microsoft Basic Data potrebbe contenere NTFS, FAT32 o exFAT. Per riconoscerne il file system, il software deve esaminare i dati contenuti nella partizione.

Allo stesso modo, non tutti i dischi GPT dispongono di una partizione di sistema EFI. Un normale disco dati GPT potrebbe non averne bisogno.

Anche durante la copia dei dischi, la presenza di identificatori univoci duplicati può essere rilevante. Lo standard UEFI richiede che il software di copia compatibile con GPT generi nuovi GUID del disco e GUID univoci delle partizioni. Una clonazione “raw” potrebbe invece conservare gli identificatori originali, quindi non dare mai per scontato che una copia esatta contenga GUID appena generati.

Decodifica di una voce di partizione GPT da un valore esadecimale

Ecco l'esempio tecnico illustrato nell'articolo: un sintetico Voce di partizione GPT creata sulla base della struttura dei campi UEFI. È internamente coerente come singola voce, ma non costituisce un’immagine completa del disco GPT né un esperimento reale.

Campo

Esempio decodificato

Tipo

Dati di base su Microsoft

GUID di tipo

EBD0A0A2-B9E5-4433-87C0-68B6B72699C7

GUID univoco

01234567-89AB-4CDE-8123-001122334455

LBA iniziale

2048

LBA finale

4095

Attributi

0x0000000000000000

Nome della partizione

DATI

STRUTTURA SU DISCO · ESEMPIO DIDATTICO
Voce di partizione GPT · 128 byte
Illustrazione a solo lettura
Seleziona un campo oppure clicca su un byte qualsiasi per visualizzarne il valore su disco e il significato decodificato.
OFFSETBYTE ESADECIMALI (00–0F PER RIGA)ASCII
CAMPO SELEZIONATO
Byte grezzi (su disco)
Valore decodificato

Confronto delle taglie LBALo stesso intervallo LBA 2048–4095 copre diverse capacità in byte.
Dimensione del blocco logico
Dimensione della partizione1 MiB
Offset del byte iniziale1,048,576

Voce della partizione “Dati di base sintetici”, non proveniente da un’acquisizione WinHex né da una lettura dal dispositivo. La voce è internamente coerente; non viene verificata né la struttura completa del disco né il CRC dell’intestazione GPT.

Passaggio 1: Decodificare il GUID del tipo

I primi 16 byte sono:

A2 A0 D0 EB E5 B9 33 44 87 C0 68 B6 B7 26 99 C7

La rappresentazione del GUID su disco utilizza l'ordine dei byte "little-endian" per le sue componenti di 4 byte, 2 byte e 2 byte. Pertanto:

  • A2 A0 D0 EB diventa EBD0A0A2.
  • E5 B9 diventa B9E5.
  • 33 44 diventa 4433.
  • Gli altri otto byte generano 87C0-68B6B72699C7.

Il valore completo è il tipo di dati GUID di Microsoft Basic. Vedi la documentazione di Microsoft Specifiche di rappresentazione GUID for the underlying encoding.

Step 2: Decode the LBA fields

At relative offset 0x20, the bytes 00 08 00 00 00 00 00 00 represent decimal 2048 in little-endian order.

A 0x28, FF 0F 00 00 00 00 00 00 represents decimal 4095. Therefore, this Voce di partizione GPT describes 2,048 logical blocks, not 2,047.

If the device exposes 512-byte logical blocks, the starting byte offset equals 2048 × 512 = 1,048,576. If it exposes 4096-byte blocks, the corresponding offset is 8,388,608.

Step 3: Decode attributes and name

The example’s attribute bytes are all zero, so no attribute bits are set. At relative offset 0x38, the name starts with 44 00 41 00 54 00 41 00, which decodes to DATI in UTF-16LE.

A hex editor’s ASCII column may show D.A.T.A. because it treats the zero bytes as nonprintable characters. However, those periods are not part of the partition name.

Together, these steps let you move from raw bytes to a readable Voce di partizione GPT without treating GUID text, LBA values, and UTF-16LE text as if they shared one encoding.

How to Validate a GPT Partition Entry

A decoded Voce di partizione GPT is not necessarily a valid description of the disk. Check its fields against the GPT Header and other active entries.

Controllo

Cosa verificare

Perché è importante

Active slot

GUID del tipo di partizione is not all zero

All-zero type marks an unused slot

LBA order

StartingLBA ≤ EndingLBA

Rejects reversed or empty ranges

Usable range

Both endpoints fall between Primo LBA utilizzabile e LastUsableLBA

Keeps partitions out of reserved GPT space

Overlap

Active entries describe disjoint ranges

Avoids conflicting partition descriptions

Identifiers

Appropriate nonduplicate Unique Partition GUIDs

Avoids identity conflicts

Reserved bits

Required reserved bits and bytes are zero

Checks compliance with the entry format

These checks reveal metadata consistency, not the original cause of a failure. A Voce di partizione GPT is only one part of a broader disk-layout check. A boundary can be invalid even when its two 64-bit fields decode without error.

CRC32 checks cover the whole Entry Array

GPT does not store a CRC32 in each entry. Instead, the Header stores PartitionEntryArrayCRC32, calculated over exactly NumeroDiVociDellaPartizione × DimensioneDiUnaVoceDellaPartizione bytes. This range includes unused entry slots, but excludes any logical-block padding after the declared array length.

If software modifies a Voce di partizione GPT, it must update the Array CRC32 and then the corresponding Header CRC32. A matching checksum means that the bytes agree with the recorded checksum. It does non prove the partition boundaries, identifiers, or file system are correct.

For a complete integrity review, also compare the primary and backup GPT metadata. However, do not assume that a backup always preserves an older partition layout.

GPT validity is not file-system validity

A Voce di partizione GPT may accurately point to a partition whose NTFS or exFAT structures are damaged. Conversely, a deleted entry may leave much of the underlying data untouched. The partition table and the file system occupy different structural layers, so they require different checks.

Missing or Corrupted GPT Partition Entry: What Changes?

An unused slot, a deleted partition definition, and a damaged record are not identical:

  • Unused: Its type GUID is zero, and a properly cleared slot has zero values in the remaining fields.
  • Eliminato: A partitioning operation removes the definition from the active GPT layout. Depending on what else the operation does, the old file-system data may remain.
  • Corrotto: A record contains inaccurate or conflicting information, such as an incorrect LBA boundary or GUID.

Windows may show the affected region as Unallocated or fail to mount a volume. Still, those symptoms alone cannot identify which Voce di partizione GPT field changed.

A valid backup array can sometimes help determine the intended layout. Yet a normal deletion may update both arrays, and an outdated backup may contain obsolete addresses. Therefore, restoring a record solely because it appears in a backup is unsafe.

If important data is at risk, avoid formatting, initializing, running destructive partition commands, or rewriting GPT metadata before preserving the source. If the drive repeatedly disconnects or reports serious read errors, stop unnecessary access.

GPT Partition Entry vs. MBR Partition Entry

Il Voce di partizione GPT provides more metadata than an MBR partition record, which occupies only 16 bytes.

Caratteristica

GPT

MBR

Typical entry size

128 bytes

16 byte

Tipo di partizione

128-bit GUID

8-bit type code

Partition identifier

Unique Partition GUID

No equivalent per-entry GUID

Range

64-bit starting and ending LBAs

32-bit starting LBA and sector count

Nome

UTF-16LE field

No partition-name field

Built-in metadata redundancy

Primary and backup structures

No built-in backup partition table

MBR supports extended partitions to provide additional logical volumes. GPT instead uses an array whose slot count is declared in the Header. See the Tabella delle partizioni MBR for its record format.

GPT vs. MBR — Interactive Partition Table Explorer
Interactive storage guide

GPT vs. MBR: See the Structural Difference

Compare the disk layouts and inspect the structure of each partition record.

GPT vs. MBR

Struttura del disco GPT

Modern structure

Primary and backup metadata; partition records live in arrays.

Common GPT layout. Exact array locations and sizes are defined by the headers.

Choose a GPT regionClick any block above to inspect its role.

MBR disk layout

Legacy structure

The first sector contains boot code and four partition-table entries.

Conceptual MBR layout. Extended partitions are optional.

Choose an MBR regionClick any block above to inspect its role.
Record structure comparison

Partition record fields: 128 bytes vs. 16 bytes

Record size at a common scale

GPT · 128 B
Tipo
Unico
S
E
A
Nome della partizione
MBR · 16 B
GPT: 16 + 16 + 8 + 8 + 8 + 72 = 128 bytes MBR: 1 + 3 + 1 + 3 + 4 + 4 = 16 bytes

At this shared scale, one GPT entry is eight times the size of one MBR entry. The colored field blocks in the two cards below are interactive.

Select a colored field below to inspect its size and purpose.

GPT partition entry · 128 bytes (common)

Six defined fields describe type, identity, boundaries, attributes, and name.

Select a GPT fieldIts length, encoding, and purpose will appear here.

MBR partition entry · 16 bytes

Four slots are stored in the MBR sector. Each slot uses a compact legacy record.

Select an MBR fieldIts length, encoding, and purpose will appear here.

What changes when you use GPT instead of MBR?

CaratteristicaGPTMBR
Record size128 bytes is common; Header defines entry size and count.16 bytes per entry; four top-level slots in the MBR.
Tipo di partizione128-bit GUID8-bit type code
Rispondere a64-bit starting and ending LBA32-bit starting LBA and sector count
Partition countDepends on the Entry Array sizeFour primary-table slots; one may be an extended partition
Metadata redundancyPrimary and backup GPT metadataNo built-in backup partition table
The key distinction

GPT is not simply a larger partition record. It uses a Header-defined array, GUID-based identifiers, 64-bit LBA boundaries, and backup metadata. MBR uses a compact 16-byte record and a four-slot table in the first sector.

Teaching example based on the GPT format defined by UEFI and the legacy MBR partition-record layout. The diagrams summarize structure; they do not read or modify a disk.

Conclusione

A Voce di partizione GPT connects a partition’s identity to its logical-block range. Its six fields explain what the partition is meant to be, where it resides, and which attributes apply. By combining the Struttura delle voci delle partizioni GPT, Header-defined array offsets, GUID decoding, and boundary checks, you can interpret GPT metadata without confusing it with the file system or assuming that a valid CRC32 proves the data is healthy.

FAQ

Ogni voce di partizione GPT ha una dimensione esatta di 128 byte?

No. Lo standard UEFI 2.10 consente dimensioni delle voci pari a 128 × 2^n byte. L'intestazione Dimensione della voce di partizione Il campo indica al parser la dimensione effettiva. Pertanto, un parser che salta sempre in avanti esattamente di 128 byte potrebbe leggere in modo errato le voci di dimensioni maggiori.

Un array di voci di partizione GPT può contenere più di 128 partizioni?

Sì. Molti dischi riservano 128 slot per impostazione predefinita, ma è l'Header a controllarne il numero. Un array più grande può supportare un numero maggiore di slot, nel rispetto delle specifiche applicabili e dei vincoli di implementazione. Il fatto che uno slot sia stato allocato non implica automaticamente che una partizione attiva lo utilizzi.

Il GUID del tipo di partizione GPT mi permette di capire se una partizione è NTFS?

No. Un GUID di tipo dati di base di Microsoft non distingue il file system NTFS da FAT32 o exFAT. È necessario ricavare tali informazioni dalle strutture del file system presenti all’interno della partizione. Inoltre, il GUID descrive la destinazione d’uso, non lo stato di integrità del file system contenuto.

Perché il GUID appare invertito in un editor esadecimale?

I primi tre campi binari di un GUID utilizzano l'ordinamento little-endian. Pertanto, un editor esadecimale visualizza tali byte in modo diverso rispetto al testo standard del GUID. È necessario interpretarli in base ai confini dei campi, anziché invertire tutti i 16 byte come un'unica unità.

Il nome della partizione GPT corrisponde all’etichetta del volume?

No. Il nome della partizione fa parte della voce GPT, mentre l'etichetta del volume appartiene al file system. I loro valori possono differire. La modifica di un'etichetta non comporta automaticamente l'aggiornamento del nome GPT.

È possibile che una voce di partizione GPT superi la verifica CRC32 ma sia comunque errata?

Sì. Il checksum dell'Entry Array verifica la corrispondenza tra i byte memorizzati e il checksum presente nell'intestazione. Non verifica se gli intervalli LBA si sovrappongono, se i GUID identificano le partizioni previste o se le strutture del file system rimangono utilizzabili. È necessario valutare questi aspetti separatamente.

L'eliminazione di una voce di partizione GPT comporta la cancellazione dei file?

Non necessariamente. L'eliminazione della definizione può lasciare intatti i blocchi di dati precedenti, ma ulteriori operazioni di formattazione, sovrascrittura o altre operazioni sul dispositivo potrebbero distruggere i dati. Non dare mai per scontata la recuperabilità solo sulla base della mancanza di una voce ed evita di scrivere su un disco che contiene dati importanti andati persi.

Vasilii è uno specialista del recupero dati con circa 10 anni di esperienza pratica nel settore. Nel corso della sua carriera, ha risolto con successo migliaia di casi complessi riguardanti file cancellati, unità formattate, partizioni perse e file system RAW. La sua esperienza copre sia i metodi di recupero manuale utilizzando strumenti professionali come gli editor esadecimali, sia le soluzioni automatiche avanzate con i software di recupero. La missione di Vasilii è quella di rendere accessibile la conoscenza del recupero dati affidabile sia ai professionisti IT che agli utenti di tutti i giorni, aiutandoli a salvaguardare i loro preziosi beni digitali.