Mentre il MBR inizia con il Master Boot Code, che contiene un fileeseguibile che ha lo scopo di identificare e avviare la partizione attiva, il GPT utilizza le potenzialità offerte dall'EFI per realizzare queste funzionalità. Per motivi di protezione e compatibilità l'unità inizia con un riferimento MBR, cui segue il GPT stesso con la tabella delle partizioni.
Il GPT utilizza l'indirizzamento a blocchi logici (LBA, acronimo inglese di Logical block addressing) anziché l'indirizzamento di tipo cilindro-testina-settore (CHS, cylinder-head-sector) utilizzato dal MBR. Le informazioni per la compatibilità con il MBR sono contenute nello LBA 0, l'intestazione GPT si trova nello LBA 1, a cui segue la tabella delle partizioni vera e propria. Nel sistema operativoWindows a 64-bit, vengono riservati 16.384 bytes, o 32 settori per il GPT, lasciando lo LBA 34 come primo settore utilizzabile dell'unità.
Il GPT è ridondante, poiché scrive l'intestazione e la tabella delle partizioni sia all'inizio che alla fine dell'unità.
Compatibilità MBR (LBA 0)
Lo scopo principale del MBR all'inizio dell'unità (LBA 0) è quello di evitare alle applicazioni per unità MBR di non riconoscere ed eventualmente sovrascrivere unità GPT. A tale scopo, viene indicata una singola partizione, che comprende l'intera unità GPT. Il System ID per la partizione viene fissato al valore 0xEE, indicando che il sistema usa il GPT. L'EFI ignora il MBR. I sistemi operativi a 32-bit che non gestiscono unità GPT riconoscono questo ID e mostrano all'utente l'unità GPT come inaccessibile. I sistemi operativi più obsoleti in generale riconosceranno sull'unità una singola partizione di tipo sconosciuto, senza spazio libero; in questo modo vengono generalmente rifiutate le modifiche dell'unità, a meno che l'utente non richieda esplicitamente e confermi la cancellazione della partizione. In questo modo, vengono prevenute cancellazioni accidentali dell'unità.
Intestazione della tabella delle partizioni (LBA 1)
L'intestazione della tabella delle partizioni (LBA 1) definisce quali blocchi dell'unità sono utilizzabili dall'utente. Definisce inoltre il numero e la dimensione degli elementi della tabella delle partizioni. Su una macchina con Windows Server 2003 a 64-bit, vi sono 128 elementi riservati, ognuno di 128 bytes. Perciò possono essere create al massimo 128 partizioni.
L'intestazione contiene il GUID (Globally Unique Identifier, in inglese) dell'unità. Memorizza la propria dimensione e posizione (sempre LBA 1) e la dimensione e posizione della intestazione e della tabella GPT secondaria (sempre nell'ultimo settore dell'unità). È importante notare che contiene anche una checksum CRC32 per sé e per la tabella delle partizioni, che viene verificata dai processi EFI all'avvio. Poiché l'EFI utilizza e verifica questa checksum, è sconsigliato utilizzare editoresadecimali per modificare il contenuto del GPT, dal momento che queste modifiche potrebbero invalidare la checksum. In questo caso, l'EFI dovrebbe sovrascrivere il GPT primario con il secondario, o, se entrambi contenessero checksum non valide, non sarebbe in grado di accedere all'unità.
Descrizione della partizione (LBA 2-33)
Le righe della tabella delle partizioni (LBA 2-33) sono semplici e chiare. Per ogni riga, i primi 16 bytes identificano il GUID del tipo di partizione (un esempio di GUID di un EFI System Partition è {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}), mentre i successivi 16 bytes contengono il GUID univoco della partizione. All'interno di ogni riga sono anche memorizzati i LBA (ognuno di 64 bit) che individuano l'inizio e la fine della partizione considerata, oltre al nome e agli attributi di quest'ultima.
Nota: Linux e Windows usano lo stesso GUID per le loro rispettive partizioni dati
Nota: I GUID in questa tabella sono riportati con la convenzione di ordinamento dei byte di tipo little-endian. Per esempio, il GUID per una EFI System partition (Esp) viene qui riportato come C12A7328-F81F-11D2-BA4B-00A0C93EC93B, che corrisponde alla sequenza di 16 bytes 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B (solo i primi 3 blocchi hanno i byte invertiti).