GUID Partition Map

immagine glossario
« Back to Glossary Index

GPT, acronimo di GUID Partition Map (Mappa delle Partizioni GUID), è uno standard moderno per l’organizzazione della tabella delle partizioni su un dispositivo di archiviazione fisico, come un hard disk drive (HDD), un’unità a stato solido (SSD) o una memoria USB di grandi dimensioni. Fa parte integrante della specifica UEFI (Unified Extensible Firmware Interface), il successore del tradizionale BIOS, ed è stato progettato per superare le numerose limitazioni del vecchio schema di partizionamento noto come MBR (Master Boot Record).

In termini semplici, la tabella delle partizioni è una mappa che descrive al sistema operativo come è suddiviso logicamente un disco fisico in sezioni indipendenti chiamate partizioni. Ogni partizione può contenere un file system diverso ed essere vista come un’unità disco separata. GPT definisce un modo più robusto, flessibile e scalabile per creare e gestire questa mappa, consentendo l’utilizzo di dischi di capacità enormemente maggiori e un numero più elevato di partizioni rispetto al vecchio MBR. È lo standard di partizionamento utilizzato dalla quasi totalità dei computer moderni (sia Mac che PC Windows/Linux) dotati di firmware UEFI.

Il Predecessore MBR e i Suoi Limiti

Per comprendere appieno l’importanza e i vantaggi di GPT, è necessario conoscere il sistema che ha sostituito: il Master Boot Record (MBR). L’MBR è stato lo schema di partizionamento standard per i PC IBM compatibili fin dagli anni ’80.

MBR Master Boot Record L’Antico Standard

L’MBR è un piccolo settore (i primi 512 byte) situato all’inizio di un dispositivo di archiviazione partizionato. Contiene tre elementi principali:

  1. Codice di Avvio (Boot Code): Una piccola porzione di codice eseguibile (circa 446 byte) che il firmware del BIOS carica ed esegue all’avvio del computer. Questo codice ha il compito di identificare la partizione attiva (avviabile) e caricare il boot loader del sistema operativo da quella partizione.
  2. Tabella delle Partizioni MBR: Una struttura dati di 64 byte che descrive le partizioni primarie presenti sul disco. Può contenere al massimo quattro voci.
  3. Firma del Disco (Disk Signature o Boot Signature): Due byte finali (0x55AA) che indicano al BIOS che si tratta di un settore di avvio valido.

Questo schema ha funzionato per decenni, ma presentava limitazioni significative che sono diventate insormontabili con l’evoluzione della tecnologia hardware.

Limite di Dimensione 2 2 Terabyte

La limitazione più critica dell’MBR risiede nella sua tabella delle partizioni. Per definire l’indirizzo di inizio e la dimensione di ciascuna partizione, l’MBR utilizza campi a 32 bit per contare i settori logici (Logical Block Addressing – LBA). Con una dimensione standard dei settori di 512 byte, 32 bit permettono di indirizzare un massimo di $2^{32}$ settori, corrispondenti a $2^{32} \times 512$ byte, ovvero 2 Terabyte (TB), o più precisamente 2.2 TB (utilizzando la definizione di terabyte come $10^{12}$ byte) o 2 TiB (tebibyte, $2^{40}$ byte).

Questo significa che un disco partizionato con MBR non può indirizzare spazio oltre i primi 2.2 TB. Anche se si possiede un hard disk da 4 TB o 8 TB, un sistema operativo che utilizza lo schema MBR potrà vedere e utilizzare solo i primi 2.2 TB, rendendo inutilizzabile lo spazio rimanente. Con la crescita esponenziale delle capacità dei dischi negli ultimi anni, questo limite è diventato un ostacolo insormontabile.

Limite sul Numero di Partizioni Primarie

La tabella delle partizioni MBR, come detto, può contenere solo quattro voci. Questo limita il numero massimo di partizioni primarie a quattro. Per superare questa limitazione, è stato introdotto il concetto di partizione estesa. Una delle quattro voci della tabella MBR può essere designata come partizione estesa, la quale non contiene direttamente un file system ma agisce come un contenitore per un numero virtualmente illimitato di partizioni logiche, definite in una struttura concatenata all’interno della partizione estesa stessa.

Questa soluzione (3 partizioni primarie + 1 estesa contenente partizioni logiche) funzionava, ma introduceva una complessità non necessaria nella gestione delle partizioni e poteva creare problemi di compatibilità o limitazioni con alcuni sistemi operativi o utility.

Vulnerabilità e Mancanza di Ridondanza

Tutte le informazioni cruciali dell’MBR (codice di avvio e tabella delle partizioni) sono memorizzate in un unico settore all’inizio del disco (LBA 0). Questo lo rende un single point of failure: se questo settore viene danneggiato da un errore del disco, un virus o una sovrascrittura accidentale, l’intero disco diventa inaccessibile e il sistema non può avviarsi. Non esiste un meccanismo di backup o ridondanza integrato nello standard MBR.

Architettura e Struttura di GPT

GPT è stato progettato per superare tutte queste limitazioni, offrendo un’architettura più moderna, robusta e scalabile.

Intestazione GPT Primaria e Secondaria

A differenza dell’MBR, GPT non memorizza tutte le informazioni critiche in un unico settore. Utilizza invece una struttura più distribuita e ridondante:

  • Intestazione GPT Primaria (Primary GPT Header): Situata nel secondo settore del disco (LBA 1, subito dopo il Protective MBR). Contiene informazioni vitali come il GUID univoco del disco, la posizione (LBA) della tabella delle partizioni primaria, la posizione della tabella delle partizioni secondaria (backup), il numero di voci di partizione allocate e un checksum CRC32 per verificare l’integrità dell’intestazione stessa.
  • Intestazione GPT Secondaria (Secondary GPT Header): È una copia esatta dell’intestazione primaria, situata all’ultimo settore del disco. Serve come backup in caso di danneggiamento dell’intestazione primaria.

Tabella delle Partizioni Primaria e Secondaria

  • Tabella delle Partizioni Primaria (Primary Partition Entry Array): Si trova nei settori immediatamente successivi all’intestazione GPT primaria (a partire da LBA 2). È un array di voci di partizione, ognuna delle quali descrive una singola partizione sul disco. La dimensione di ogni voce e il numero totale di voci (e quindi lo spazio occupato dalla tabella) sono definiti nell’intestazione GPT.
  • Tabella delle Partizioni Secondaria (Secondary Partition Entry Array): È una copia esatta della tabella primaria, situata nei settori che precedono l’intestazione GPT secondaria, alla fine del disco. Serve come backup in caso di danneggiamento della tabella primaria.

Questa duplicazione sia dell’intestazione che della tabella delle partizioni garantisce un elevato livello di ridondanza. Se la struttura primaria viene corrotta, il firmware UEFI o il sistema operativo possono tentare di recuperare le informazioni dalla copia secondaria.

Protective MBR Compatibilità all’Indietro

Per evitare che utility disco legacy, che conoscono solo lo schema MBR, riconoscano erroneamente un disco GPT come vuoto o non partizionato (rischiando di sovrascriverlo), il primo settore del disco (LBA 0) in uno schema GPT contiene ancora un Master Boot Record, ma con una configurazione speciale chiamata Protective MBR. Questo MBR contiene una singola voce di partizione di tipo 0xEE, che definisce una partizione che si estende idealmente per l’intero disco GPT (o fino al limite massimo indirizzabile dall’MBR, 2.2 TB). Questo "protegge" il disco segnalando ai vecchi sistemi che lo spazio è già allocato e non deve essere toccato. I sistemi operativi e le utility compatibili con GPT riconoscono il tipo 0xEE e ignorano il Protective MBR, procedendo a leggere l’intestazione GPT da LBA 1.

GUID Identificatori Univoci Globali

Una caratteristica fondamentale di GPT è l’uso estensivo dei GUID (Globally Unique Identifiers), noti anche come UUID (Universally Unique Identifiers). Si tratta di numeri a 128 bit generati in modo tale da essere statisticamente unici a livello globale. In GPT:

  • Disk GUID: Ogni disco partizionato con GPT possiede un GUID univoco che lo identifica in modo inequivocabile.
  • Partition GUID (Unique): Ogni singola partizione creata sul disco ha anch’essa un GUID univoco che la identifica.
  • Partition Type GUID: Ogni partizione ha anche un GUID che ne definisce il tipo e l’utilizzo previsto (es. partizione di sistema EFI, partizione dati di base Microsoft, partizione filesystem Linux, etc.).

L’uso dei GUID elimina le potenziali collisioni e ambiguità che potevano verificarsi con i sistemi di identificazione meno robusti dell’MBR, specialmente quando si spostavano dischi tra sistemi diversi o si utilizzavano configurazioni complesse.

Voci di Partizione Dettagliate

Ogni voce nella tabella delle partizioni GPT è tipicamente di 128 byte e contiene informazioni molto più dettagliate rispetto alle voci MBR:

  • Partition Type GUID: Identifica lo scopo della partizione.
  • Unique Partition GUID: Identificatore univoco di questa specifica partizione.
  • Starting LBA: Indirizzo del primo settore della partizione (a 64 bit).
  • Ending LBA: Indirizzo dell’ultimo settore della partizione (a 64 bit).
  • Attributes: Flag a 64 bit che definiscono attributi della partizione (es. sola lettura, nascosta, non montare automaticamente).
  • Partition Name: Un nome descrittivo per la partizione in formato Unicode (UTF-16LE), fino a 36 caratteri.

La dimensione predefinita della tabella delle partizioni solitamente riserva spazio per 128 voci, permettendo quindi la creazione di 128 partizioni senza bisogno di meccanismi complessi come le partizioni estese/logiche dell’MBR. Questo numero può essere aumentato se necessario, modificando i valori nell’intestazione GPT (anche se 128 è più che sufficiente per la stragrande maggioranza degli usi).

Vantaggi Fondamentali di GPT rispetto a MBR

L’architettura di GPT si traduce in numerosi vantaggi pratici rispetto al vecchio MBR.

Superamento del Limite di 2 2 Terabyte

Grazie all’utilizzo di indirizzi LBA a 64 bit per definire l’inizio e la fine delle partizioni, GPT può gestire dischi e partizioni di dimensioni enormemente superiori al limite MBR. In teoria, 64 bit permettono di indirizzare $2^{64}$ settori. Con settori da 512 byte, questo corrisponde a 9.4 Zettabyte (ZB), una dimensione talmente vasta da essere più che sufficiente per qualsiasi tecnologia di storage attuale e prevedibile nel prossimo futuro. I limiti pratici attuali sono imposti più dai sistemi operativi e dai file system che dallo standard GPT stesso.

Numero Elevato di Partizioni

Come già accennato, GPT elimina la distinzione tra partizioni primarie, estese e logiche. Permette nativamente la creazione di un gran numero di partizioni (tipicamente 128, ma configurabile), tutte dello stesso tipo. Questo semplifica enormemente la gestione del disco, specialmente in scenari complessi come sistemi multi-boot o configurazioni server avanzate.

Maggiore Robustezza e Ridondanza

La duplicazione dell’intestazione GPT e della tabella delle partizioni all’inizio e alla fine del disco offre un meccanismo intrinseco di backup e recupero. Se la struttura primaria viene danneggiata, il sistema può utilizzare la copia secondaria per ripristinare le informazioni di partizionamento, aumentando significativamente l’affidabilità del disco rispetto all’MBR.

Controllo di Integrità CRC32

GPT include checksum CRC32 sia per l’intestazione GPT che per l’array delle voci di partizione. Al momento dell’avvio o quando si accede al disco, il firmware UEFI o il sistema operativo possono calcolare i checksum dei dati letti e confrontarli con i valori memorizzati nell’intestazione. Se i valori non corrispondono, significa che si è verificata una corruzione dei dati, e il sistema può tentare il recupero utilizzando la copia secondaria (se anch’essa non è corrotta). Questo fornisce un livello di rilevamento degli errori assente nell’MBR.

Identificazione Univoca GUID

L’uso dei GUID per identificare sia il disco che ogni singola partizione in modo univoco a livello globale previene conflitti e ambiguità, facilitando la gestione dei dischi in ambienti complessi, script di automazione e sistemi operativi multi-boot.

Tipi di Partizione Standardizzati GUID

L’uso di Partition Type GUID specifici e standardizzati per identificare il tipo di file system o lo scopo di una partizione (es. EFI System Partition, Microsoft Basic Data, Linux Swap, ecc.) permette ai diversi sistemi operativi di riconoscere e interagire correttamente con le partizioni create da altri sistemi, migliorando l’interoperabilità.

GPT e il Firmware UEFI L’accoppiata Moderna

GPT è strettamente legato allo standard UEFI, che ha sostituito il vecchio BIOS come firmware di sistema nella maggior parte dei computer prodotti dall’inizio degli anni 2010.

UEFI Il Successore del BIOS

UEFI (Unified Extensible Firmware Interface) offre numerosi vantaggi rispetto al BIOS legacy, tra cui un’interfaccia grafica più ricca, supporto per mouse, funzionalità di rete integrate, tempi di avvio più rapidi e, soprattutto, un processo di avvio più sicuro e flessibile, non legato ai limiti dell’MBR.

GPT come Parte dello Standard UEFI

La specifica UEFI richiede l’uso dello schema di partizionamento GPT per i dischi da cui si intende avviare il sistema operativo in modalità UEFI nativa. Il firmware UEFI è progettato per leggere la tabella delle partizioni GPT e individuare la partizione di sistema EFI per caricare i boot loader.

EFI System Partition ESP

Un requisito fondamentale per l’avvio UEFI da un disco GPT è la presenza di una partizione speciale chiamata EFI System Partition (ESP). Questa partizione, identificata da un Partition Type GUID specifico, è tipicamente formattata con un file system semplice e standard come FAT32. La ESP contiene i boot loader per i sistemi operativi installati sul disco, i driver UEFI necessari per l’hardware durante l’avvio, e altri file utilizzati dal firmware UEFI stesso. Il firmware UEFI cerca automaticamente la ESP sul disco di avvio e carica il boot loader appropriato da essa.

Avvio Sicuro Secure Boot

L’accoppiata UEFI/GPT/ESP abilita anche funzionalità di sicurezza avanzate come il Secure Boot. Questa funzione permette al firmware UEFI di verificare, tramite firme digitali, che il boot loader e il kernel del sistema operativo caricati dalla ESP non siano stati manomessi da malware. Questo aiuta a proteggere il sistema da rootkit e altri attacchi che potrebbero compromettere il processo di avvio.

Compatibilità e Adozione Sistemi Operativi e Hardware

GPT è ampiamente supportato dai sistemi moderni, ma la compatibilità dipende dal sistema operativo e dal firmware.

Supporto nei Sistemi Operativi Moderni Windows macOS Linux

  • Windows: Le versioni a 64 bit di Windows Vista, 7, 8, 8.1, 10 e 11 supportano GPT sia per dischi dati che per dischi di avvio (quest’ultimo richiede firmware UEFI). Le versioni a 32 bit di Windows possono usare dischi dati GPT ma non possono avviare da essi.
  • macOS: Apple ha adottato GPT come standard fin dalla transizione ai processori Intel nel 2006. Tutti i Mac Intel e Apple Silicon utilizzano GPT e UEFI.
  • Linux: Il kernel Linux supporta GPT da molti anni. La maggior parte delle distribuzioni moderne utilizza GPT e UEFI per le nuove installazioni.

Utilizzo su Dischi Dati e Dischi di Avvio

GPT può essere utilizzato su qualsiasi disco rigido o SSD, sia interno che esterno. È particolarmente necessario per i dischi di dimensioni superiori a 2.2 TB affinché tutto lo spazio sia utilizzabile. È obbligatorio per l’installazione e l’avvio di sistemi operativi in modalità UEFI nativa. Per i dischi dati più piccoli di 2.2 TB utilizzati su sistemi che non richiedono avvio UEFI, MBR potrebbe ancora essere utilizzato per massima compatibilità con sistemi molto vecchi, ma GPT è generalmente preferibile per la sua maggiore robustezza.

Strumenti di Gestione Utility Disco Gestione Disco GParted

Tutti i principali sistemi operativi forniscono utility integrate per creare e gestire partizioni su dischi GPT:

  • macOS: Utility Disco.
  • Windows: Gestione Disco e l’utility a riga di comando diskpart.
  • Linux: GParted (interfaccia grafica), fdisk, gdisk, parted (riga di comando).

MBR vs GPT Quando Usare Cosa

La scelta tra MBR e GPT dipende principalmente dal firmware del sistema, dalle dimensioni del disco e dai requisiti del sistema operativo.

GPT Scelta Predefinita per Sistemi Moderni

GPT dovrebbe essere la scelta predefinita per:

  • Qualsiasi disco (di avvio o dati) su un computer con firmware UEFI.
  • Qualsiasi disco di dimensioni superiori a 2.2 TB.
  • Qualsiasi disco su cui si necessita di creare più di 4 partizioni primarie.
  • L’installazione di sistemi operativi moderni (versioni a 64 bit di Windows, macOS, Linux recenti) che richiedono o beneficiano dell’avvio UEFI.

MBR Necessario per Compatibilità Legacy

MBR potrebbe essere ancora necessario o preferibile per:

  • Dischi di avvio su computer molto vecchi dotati solo di BIOS legacy (non UEFI).
  • L’installazione di sistemi operativi molto vecchi (es. Windows XP 32-bit) che non supportano l’avvio da GPT/UEFI.
  • La creazione di supporti rimovibili (USB) formattati per la massima compatibilità con una vasta gamma di dispositivi, anche se FAT32/exFAT su GPT sta diventando più comune.
  • Dischi dati di piccole dimensioni (< 2.2 TB) destinati all’uso con hardware o software molto datati che potrebbero non riconoscere GPT.

Considerazioni Finali Lo Standard per lo Storage Moderno

GPT ha sostituito con successo l’MBR, diventando lo standard indiscusso per il partizionamento dei dispositivi di archiviazione moderni.

Fondamentale per Grandi Capacità

Senza GPT, non saremmo in grado di utilizzare appieno gli hard disk e gli SSD multi-terabyte che sono comuni oggi. La sua capacità di indirizzamento a 64 bit è essenziale per gestire le enormi capacità dello storage moderno e futuro.

Base per l’Avvio UEFI Sicuro

GPT è un componente chiave dell’architettura UEFI, abilitando un processo di avvio più veloce, flessibile e sicuro rispetto al vecchio BIOS/MBR, grazie all’integrazione con funzionalità come Secure Boot e la gestione standardizzata dei boot loader tramite la ESP.

Robustezza e Flessibilità Migliorate

La ridondanza intrinseca, i controlli di integrità CRC32 e la flessibilità nel numero e nella gestione delle partizioni rendono GPT uno standard significativamente più robusto e versatile dell’MBR, contribuendo a una maggiore affidabilità e facilità d’uso dei sistemi di archiviazione moderni.

« Torna all'indice del Glossario