Partizionamento GPT gdisk

GPT gdisk, Globally Unique Identifier (GUID) Partition Table (GPT), è uno strumento per partizionare hard disk di qualsiasi dimensione e necessario per i dischi che hanno una capacità maggiore di 2 TB. Per default, gdisk si accerterà che le partizioni siano ben allineate per i dischi SSD, (o hard disk che non hanno settori da 512 byte).

Il vantaggio cruciale di GPT è che non c'è più il bisogno di affidarsi a partizioni primarie, estese o logiche che riguardano MBR per il partizionamento. GPT può supportare quasi un numero illimitato di partizioni ed è limitato soltanto dalla quantità di spazio riservato per le partizioni nel disco GPT. Notare che lo strumento gdisk ha per default 128 partizioni.

Tuttavia, utilizzare GPT su piccole penne USB/SSD, (per esempio 8GB), può essere controproducente se c'è il bisogno di trasferire dati da un computer all'altro o da un s.o. ad un altro.

Note Importanti

I termini UEFI e EFI sono intercambiabili ed hanno lo stesso significato.

dischi dati GPT

Alcuni sistemi operativi non supportano dischi dati GPT, fare riferimento alla documentazione propria di questi s.o.

I dischi dati GPT sono disponibili per macchine a 32 e 64 bit in Linux.

Avviare i dischi GPT

Il doppio e triplo avvio dei dischi GPT con Linux, BSD e Apple sono supportati utilizzando il modo EFI a 64 bit.

Il doppio avvio di dischi GPT con Linux e MS Windows è possibile, a patto che MS Windows possa avviare i dischi GPT in modalità UEFI 64 bit.

Strumenti di partizionamento grafici per usare GPT

A parte gdisk basato su terminale, gli strumenti grafici come" gparted" e "partitionmanager" supportano i dischi GPT. Stabilito questo, gdisk dovrebbe essere lo strumento preferito per evitare anomalie grafiche non intenzionali. Tuttavia "Gparted - gparted" insieme a "KDE Partition Manager - partitionmanager", fra gli altri, sono validi strumenti per restituire una visuale di quello che si è fatto con gdisk.

Letture obbligatorie prima di procedere oltre:

Partitionare l'hard disk utilizzando gdisk per un sistema Linux

Capire i comandi chiave di gdisk come m per tornare al menu principale, d, n, p e t, fra gli altri, diventeranno principalmente i comandi richiesti riguardanti il partizionamento gdisk, e converrà esplorare gdisk su di un disco di test.
NOTA IMPORTANTE riguardo al comando "n":

Quando si utilizza il comando n, si preme <Enter> per dare alla partizione il numero progressivo libero e quindi si deve premere nuovamente <Enter> per accettare il settore iniziale di default per la prossima partizione prima di impostare la dimensione di cui si ha bisogno per l'ultimo settore. Per esempio:

Command (? for help):  n  
Partition number (2-128, default 2):  2 
First sector (34-15728606, default = 411648) or {+-}size{KMGTP}: 
Last sector (411648-15728606, default = 15728606) or {+-}size{KMGTP}: +6144M

Esempio di partizionamento di un disco GPT

Scalare per soddisfare i propri requisiti:

  1. Creare una partizione bootloader, (assumendo che il disco non è un disco dati puro e deve essere avviabile)
  2. Creare una partizione swap, (assumendo che il disco non è un disco dati puro e deve essere avviabile)
  3. Creare partizioni linux
  4. Creare altre partizioni dati

NOTA: l'esempio seguente utilizza una penna USB per dimostrare i passi richiesti e pertanto non è esaustiva.

I passi

Se non si è sicuri del nome del disco, utilizzare fdisk per accertarsi del nome, (sono richiesti i privilegi di root per tutti i comandi di partizionamento e formattazione):

fdisk -l

fdisk restituirà il percorso richiesto e possibilmente include anche altri nomi di partizioni, tuttavia si deve guardare al percorso disco attuale, senza tenere conto di partizioni che possono esistere nel disco. Per esempio, facciamo conto che è sdb ed avviamo gdisk con il percorso del disco:

gdisk /dev/sdb

La visualizzazione iniziale è un avvertimento se il disco non è un disco nuovo oppure un disco che già utilizza GPT:

GPT fdisk (gdisk) version 0.7.2
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):

Quando si avvia gdisk su di un disco con partizioni MBR già esistenti e non GPT, il programma visualizza un messaggio contornato da asterischi riguardo alla conversione delle partizioni esistenti a GPT. Questo avviene per spaventarvi se viene avviato gdisk nel disco sbagliato per caso oppure se non si ha idea di cosa si sta facendo. Si deve rispondere esplicitamente a questo avvertimento prima di procedere. Questo è un messaggio voluto per evitare il danneggiamento dei dischi di avvio.

Premere ? e si vedrà una lista di comandi disponibili, (i comandi colorati sono per motivi di documentazione):

Command (? for help):  ? 
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Per verificare che si sta veramente lavorando nel disco che si crede premere p.

Command (? for help):  p 
Disk /dev/sdb: 16547840 sectors, 7.9 GiB Questo esempio utilizza una penna usb da 8GB
Logical sector size: 512 bytes
Disk identifier (GUID): 0267952D-9B06-4B10-A648-B83684786910
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 16547806
Partitions will be aligned on 2048-sector boundaries
Total free space is 16547773 sectors (7.9 GiB)
Number  Start (sector)    End (sector)  Size       Code  Name

La colonna Code dell'output mostra il codice del tipo di partizione ed la colonna Name mostra una stringa di testo che si può modificare.

Cancellare la tabella delle partizioni

Adesso c'è bisogno di cancellare per intero la tabella delle partizioni del disco per poter impostare il partizionamento GPT:

command (? for help):  d 

Avvio GPT-EFI oppure avvio GPT-BIOS

Se è richiesto l'avvio di un disco GPT, ci sono 2 opzioni per formattare il settore d'avvio di un disco GPT.

Le opzioni sono:

oppure

Avvio EFI

Il BIOS deve essere idoneo per EFI, abilitato e selezionato per essere avviabile.

Se si sta per avviare utilizzando EFI si deve disporre di una partizione di sistema EFI formattata come FAT (tipo EF00) come prima partizione. Questa partizione contiene i bootloader. Quando si installa il programma install-gui ignorerà ogni scelta "da dove avviare" ed un bootloader aptosid verrà installato nella partizione di sistema EFI in /efi/aptosid. La partizione di sistema EFI verrà montata come /boot/efi purché si lasci selezionata l'opzione "monta altre partizioni", non c'è bisogno di dire al programma di installazione di fare il mount di questa partizione.

Creare la partizione bootloader EFI

Scrivere n per aggiungere una nuova partizione e +200M per dare una dimensione al bootloader.

Command (? for help):  n 
Partition number (1-128, default 1):  1 
First sector (34-16547806, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-16547806, default = 16547806) or {+-}size{KMGTP}:  +200M 
Current type is 'Linux filesystem'

Scrivendo L verrà restituita una lista di codici:

Hex code or GUID (L to show codes, Enter = 8300):  L 
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8300 Linux filesystem      8301 Linux reserved      
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a800 Apple UFS             a901 NetBSD swap         
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated 
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot          
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline  
af03 Apple label           af04 AppleTV recovery      be00 Solaris boot        
bf00 Solaris root          bf01 Solaris /usr & Mac Z  bf02 Solaris swap        
bf03 Solaris backup        bf04 Solaris /var          bf05 Solaris /home       
bf06 Solaris alternate se  bf07 Solaris Reserved 1    bf08 Solaris Reserved 2  
bf09 Solaris Reserved 3    bf0a Solaris Reserved 4    bf0b Solaris Reserved 5  
c001 HP-UX data            c002 HP-UX service         ef00 EFI System          
ef01 MBR partition scheme  ef02 BIOS boot partition   fd00 Linux RAID

Scrivere ef00 per ottenere una partizione UEFI:

Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed system type of partition to 'EFI System'

Partizione di avvio BIOS

Creare una partizione di avvio BIOS

Se il sistema non supporta UEFI, si può creare una partizione di avvio BIOS, che sostituisce il settore del disco in un drive partizionato DOS che si trova tra la tabella delle partizioni e la prima partizione dove viene scritto direttamente grub.

Scrivere n per aggiungere una nuova partizione e +200M per dare una dimensione al bootloader (la ragione di crearla di +200M, confrontata con il pensiero tradizionale di +32M, è quella di avere pronta una partizione dimensionata per EFI in caso si dovesse cambiare l'avvio del disco in EFI).

Command (? for help):  n 
Partition number (1-128, default 1):  1 
First sector (34-16547806, default = 34) or {+-}size{KMGTP}: 
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-16547806, default = 16547806) or {+-}size{KMGTP}:  +200M 
Current type is 'Linux filesystem'

Scrivere ef02 per ottenere una partizione di avvio BIOS:

Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed system type of partition to 'BIOS boot'

Nota Importante: la partizione di avvio BIOS non deve essere formattata.

Creare la partizione di swap

La dimensione della partizione di swap non dovrebbe mai essere sottostimata, particolarmente per i portatili che devono avere la possibilità di fare il sospendi su disco se richiesto. Dovrebbe almeno eguagliare la dimensione della RAM.

Scrivere n per aggiungere una nuova partizione e +2G, (oppure +2048M) per dare la dimensione alla partizione di swap con un codice di tipo 8200. Un esempio di questa procedura assomiglierà a questa:

Command (? for help):  n  
Partition number (2-128, default 2):  2 
First sector (34-15728606, default = 411648) or {+-}size{KMGTP}: 
Last sector (411648-15728606, default = 15728606) or {+-}size{KMGTP}: +2048M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8200
Changed type of partition to 'Linux swap

Creare le partizioni dati

Scrivere n per aggiungere una nuova partizione e XXXG per darle una dimensione. In questo esempio +4G:

Partition number (3-128, default 3):  3 
First sector (34-15728606, default = 4605952) or {+-}size{KMGTP}: 
Last sector (4605952-15728606, default = 15728606) or {+-}size{KMGTP}: +4G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem

Ripetere lo stesso procedimento per le altre partizioni a seconda delle necessità.

Dal momento che questo esempio è una penna usb può essere saggio creare una partizione qualsiasi tipo dati OS con un codice di tipo 0700, altrimenti darle il codice per un filesystem linux (8300):

Command (? for help):  n 
Partition number (4-128, default 4):  4 
First sector (34-15728606, default = 12994560) or {+-}size{KMGTP}: 
Last sector (12994560-15728606, default = 15728606) or {+-}size{KMGTP}: +1300M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):  0700 
Changed type of partition to 'Microsoft basic data'

Per esaminare le partizioni che si sono create:

Command (? for help):  p 
Disk /dev/sdx: 15728640 sectors, 7.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F409CFD3-6DDC-4551-BBC5-85DC218C1352
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15728606
Partitions will be aligned on 2048-sector boundaries
Total free space is 73661 sectors (36.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          411647   200.0 MiB   EF00  Boot
   2          411648         4605951   2.0 GiB     8200  Swap
   3         4605952        12994559   4.0 GiB     8300  Linux File System
   4        12994560        15656959   1.3 GiB     0700  Any OS Data

Per aggiungere una descrizione ad ognuna delle partizioni utilizzare il comando c per descrivere lo scopo di ogni partizione. Per esempio:

Command (? for help): c
Partition number (1-4): 4
Enter name: Nome descrittivo a scelta

Il comando w scrive i cambiamenti su disco mentre il comando q esce dal programma senza salvare i cambiamenti:

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.

Formattare le partizioni

Dal momento che gdisk crea partizioni e non filesystem, si dovrà formattare ogni partizione creata tramite la console testo. Tuttavia è necessario sapere i nomi delle partizioni in modo da eseguire correttamente la formattazione, perciò eseguire:

fdisk -l

fdisk restituirà l'informazione richiesta. Supponendo che questa sia sdb:

gdisk /dev/sdb
Command (? for help):  p 

Adesso premere q per uscire da gdisk e tornare al prompt root #, in modo da inserire il percorso per ogni numero di partizione:

Per le partizioni UEFI, (non formattare la partizione di avvio BIOS):

 mkfs -t vfat /dev/sdb1

Per le partizoni Linux, (la sintassi cambierà per ogni partizione addizionale linux, quindi sdb4, sdb5, e così via:

 mkfs -t ext4 /dev/sdb3

Per la partizione comune a sistemi operativi differenti, (possibilmente richiesta soltanto se una penna USB è necessaria per l'interoperabilità):

 mkfs -t vfat /dev/sdb4

Formattare la partizione di swap:

mkswap /dev/sdb2

Quindi:

swapon /dev/sdb2

Infine controllare se swap viene riconosciuta con:

swapon -s

In caso affermativo, eseguire:

swapoff -a

Questi comandi funzionano come per le partizioni MBR.

È assolutamente necessario riavviare per fare in modo che il nuovo schema di partizionamento possa essere letto dal kernel.

Dopo il riavvio si è pronti per iniziare l'installazione o utilizzare un disco GPT.

Comandi gdisk avanzati

Prima di salvare le modifiche, si potrebbe verificare che non ci siano problemi con le strutture dati GPT. Per farlo si può utilizzare il comando v :

Command (? for help):  v 
No problems found. 0 free sectors (0 bytes) available in 0
segments, the largest of which is 0 sectors (0 bytes) in size

In questo caso, ogni byte disponibile nel disco è allocato tramite partizioni e non sono stati rilevati problemi. Se ci fosse stato spazio disponibile per la creazione di partizioni avrebbe restituito la quantità. Se gdisk trova problemi, come partizioni sovrapposte oppure tabelle delle partizioni principale e di backup non corrispondenti, le avrebbe riportate. Naturalmente, gdisk include misure di sicurezza per essere certi che l'utente non possa creare problemi. L'opzione di controllo v è intesa per dare un aiuto nel rilevare problemi che possono risultare da corruzione dati.

Se sono stati rilevati problemi, si possono correggere tramite le varie opzioni del recovery & transformation menu, che è un secondo menu di opzioni disponibile premendo r :

Command (? for help):  r 

recovery/transformation command (? for help): ?
b	use backup GPT header (rebuilding main)
c	load backup partition table from disk (rebuilding main)
d	use main GPT header (rebuilding backup)
e	load main partition table from disk (rebuilding backup)
f	load MBR and build fresh GPT from it
g	convert GPT into MBR and exit
h	make hybrid MBR
i	show detailed information on a partition
l	load partition data from a backup file
m	return to main menu
o	print protective MBR data
p	print the partition table
q	quit without saving changes
t	transform BSD disklabel partition
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Un terzo menu, experts menu, può essere visualizzato premendo x nel main menu oppure nel recovery & transformation menu.

recovery/transformation command (? for help): x

Expert command (? for help): ?
a       set attributes
c       change partition GUID
d       display the sector alignment value
e       relocate backup data structures to the end of the disk
g       change disk GUID
i       show detailed information on a partition
l       set the sector alignment value
m       return to main menu
n       create a new protective MBR
o       print protective MBR data
p       print the partition table
q       quit without saving changes
r       recovery and transformation options (experts only)
s       resize partition table
v       verify disk
w       write table to disk and exit
z       zap (destroy) GPT data structures and exit
?       print this menu

Possono essere eseguite delle modifiche a basso livello, come cambiare i GUID delle partizioni o dei dischi (c e g, rispettivamente). L'opzione z distrugge immediatamente le strutture dati GPT, cosa che deve essere fatta se si vuole riutilizzare un disco GPT con un altro schema di partizionamento. Se queste strutture non vengono cancellate, alcuni strumenti di partizionamento si possono confondere dalla presenza apparente di due sistemi di partizioni.

In generale, le opzioni nei menu recovery & transformation e experts non dovrebbero essere utilizzate se non si è esperti. Tuttavia anche i non esperti potrebbero essere costretti ad utilizzare questi menu se un disco è danneggiato. Prima di fare azioni drastiche si dovrebbe utilizzare l'opzione b nel menu principale per creare un backup in un file e copiarlo in un posto che non sia nel disco che si sta modificando, anche in un penna usb va bene. In questo modo si potrà recuperare la configurazione originale se si danneggiano le partizioni.

Fonti:

GPT fdisk Tutorial by Roderick W. Smith

Windows Hardware Developer Center

Content last revised 15/08/2011 1155 UTC