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:
- Creare una partizione bootloader, (assumendo che il disco non è un disco dati puro e deve essere avviabile)
- Creare una partizione swap, (assumendo che il disco non è un disco dati puro e deve essere avviabile)
- Creare partizioni linux
- 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:
- Nella macchina è disponibile (U)EFI tramite il BIOS ed è abilitato, ed è selezionato come avviabile.
- Si vuole utilizzare EFI per avviare un disco formattato come GPT
oppure
- Nella macchina non è disponibile (U)EFI tramite il BIOS
- Si vuole utilizzare il BIOS per avviare un disco formattato come GPT
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.