Elencare, creare, cancellare le partizioni sui dischi MBR e GPT

By | Agosto 11, 2018

Nota: questo è un obiettivo d’esame RHCSA 7.

Presentazione

Un disco (disk) può essere utilizzato come entità semplice o suddiviso in una o più partizioni.

I dischi sono generalmente chiamati /dev/sda, /dev/sdb, ecc, nei server fisici (s per scsi anche se hanno interfacce IDE, SATA o SAS) e /dev/vda, /dev/vdb, ecc, in macchine virtuali.

Le partizioni prendono il loro nome dal nome del disco stesso e aggiungono un numero che inizia da 1 (/dev/sda1, /dev/sda2, etc o /dev/vda1, /dev/vda2, ecc.).

Una tabella delle partizioni è una struttura speciale che contiene l’organizzazione delle partizioni.

I dischi non recenti utilizzano settori da 512 byte e la tabella delle partizioni MBR (MBR sta per Master Boot Record). Questa organizzazione consente solo 4 partizioni primarie. Se si desidera altro, è necessario creare una partizione estesa (utilizzando uno dei 4 slot principali) e quindi creare all’interno partizioni logiche. Più fastidioso, su dischi con capacità superiore a 2 TB, lo spazio sopra questo limite non è disponibile.

Per ovviare a tutte queste limitazioni, i dischi recenti utilizzano i settori a 4096 byte e la tabella delle partizioni GPT (GPT sta per GUID – IDentificatore globalmente univoco – Tabella delle partizioni). Maggiori dettagli sono disponibili sulla pagina Wikipedia di GPT.

Storicamente, esistono due comandi per manipolare dischi e partizioni: fdisk e parted.
Poiché il comando fdisk non gestisce le tabelle delle partizioni GPT, non è consigliabile utilizzarlo più (per vostra informazione, alcuni dettagli sono forniti alla fine di questa pagina sul comando fdisk).
Recentemente, un nuovo strumento chiamato gdisk è stato creato per gestire le tabelle delle partizioni GPT, offrendo un’alternativa al comando parted.

Attenzione: in questo tutorial, abbiamo a che fare con dischi reali. Ogni errore potrebbe distruggere completamente il tuo sistema.

Il comando parted

Per avviare il comando parted, digitare:

# parted
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Per elencare tutti i dischi e le partizioni, digitare:

(parted) print all
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  525MB  524MB  primary  ext4         boot
 2      525MB   500GB  500GB  primary               lvm


Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  End  Size  Type  File system  Flags


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_root-lv_root: 497GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  497GB  497GB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_root-lv_swap: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0.00B  2147MB  2147MB  linux-swap(v1)

Qui, abbiamo un disco chiamato /dev/sdb senza partizione ma con una tabella delle partizioni MBR (Partition Table: msdos).
Per selezionare il disco /dev/sdb, digitare:

(parted) select /dev/sdb
Using /dev/sdb

o creare una tabella delle partizioni GPT sul disco /dev/sdb, digitare:

(parted) mktable gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? Y
(parted) print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

Nota: digitare mktable msdos per creare una tabella delle partizioni MBR.
Per creare una partizione primaria con il tipo ext4 (qui a partire da 1 MB e terminando a 400 GB), digitare:

(parted) mkpart primary ext4 1MB 400GB

Nota 1: la specifica di ext4 non formatta la partizione in ext4, la contrassegna solo come partizione ext4.
Nota 2: la partizione non inizia a 0 ma 1 MB per evitare problemi di allineamento del disco.
Nota3: per specificare tutto lo spazio rimanente, utilizzare -1 come posizione finale.
Nota4: Con parted, 1 GB = 1000 MB.

A volte quando si imposta la prima partizione, viene visualizzato un avviso: “Warning: The resulting partition is not properly aligned for best performance.
Per risolvere questo problema, digitare il seguente comando in cui 400 GB è la dimensione della partizione (è possibile utilizzare il 100% anziché 400 GB se si desidera allocare tutto il disco):

(parted) mkpart primary ext4 0% 400GB

Per verificare che la prima partizione sia allineata correttamente, digitare:

(parted) align-check optimal 1
1 aligned

Per creare una partizione di swap con una dimensione di 2 GB (qui a partire da 400 GB e terminando a 402 GB), digitare:

(parted) mkpart primary linux-swap 400GB 402GB

Nota 1: parted controlla che entrambe le partizioni non si sovrappongano.
Nota 2: se in un secondo momento si desidera modificare il tipo di partizione, non rilasciare e ricreare la partizione: formattare la partizione come si desidera e parted rileverà normalmente il nuovo tipo.

Per stampare il risultato, digitare:

(parted) print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End    Size    File system  Name     Flags
 1      1049kB  400GB  400GB   ext4         primary
 2      400GB   402GB  2000MB               primary

Per impostare la prima partizione come avviabile(bootable), digitare:

(parted) set 1 boot on
(parted) print
Model: ATA Hitachi HDP72505 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End    Size    File system  Name     Flags
 1      1049kB  400GB  400GB   ext4         primary  boot
 2      400GB   402GB  2000MB               primary

Nota: digitare set 1 boot off per rimuovere il flag di avvio.
Per rimuovere la partizione di swap (qui numero di partizione 2), digitare:

(parted) rm 2

Per uscire dal prompt parted, digitare:

(parted) quit

Per aggiornare la configurazione del disco vista dal kernel, digitare:

# partprobe /dev/sdb

Il comando parted può anche essere utilizzato per la gestione del file system. Tuttavia, questo utilizzo è deprecato.

Il comando gdisk

Installa il pacchetto gdisk:

# yum install -y gdisk

Esegui il comando gdisk (qui con il /dev/vda disk come parametro):

# gdisk /dev/vda
GPT fdisk (gdisk) version 0.8.6

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


Digitare ? per visualizzare tutte le opzioni:

 

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

Digitare p per stampare la tabella delle partizioni:

Command (? for help): p
Disk /dev/vda: 12582912 sectors, 6.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C6F7C323-530D-40B5-A985-241A1B181354
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 12582878
Partitions will be aligned on 2048-sector boundaries
Total free space is 1318845 sectors (644.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   8300  Linux filesystem
   2         1026048        11266047   4.9 GiB     8E00  Linux LVM


Digitare n per creare una nuova partizione:

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-12582878, default = 11266048) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}: 2047
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8300
Changed type of partition to 'Linux filesystem'


Digitare p per visualizzare la tabella delle partizioni:

Command (? for help): p
Disk /dev/vda: 12582912 sectors, 6.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): C6F7C323-530D-40B5-A985-241A1B181354
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 12582878
Partitions will be aligned on 2048-sector boundaries
Total free space is 1316831 sectors (643.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   8300  Linux filesystem
   2         1026048        11266047   4.9 GiB     8E00  Linux LVM
   3              34            2047   1007.0 KiB  8300  Linux filesystem


Digita w per scrivere la tabella delle partizioni sul disco:

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) to /dev/vda.
The operation has completed successfully.


Per forzare il kernel a leggere la tabella delle partizioni aggiornata, digitare:

# partprobe

 

Il comando fdisk


Per elencare tutte le partizioni, digitare:

# fdisk -l

Per creare una partizione primaria su un disco (qui /dev/vda), digitare:

# fdisk /dev/vda

Premere “c“, “u“, quindi “p” per stampare la tabella delle partizioni.
Quindi premere ‘n‘ (per nuovo), digitare il numero della partizione (tra 1 e 4), il primo settore e la dimensione.
Infine, premi “w per salvare la tabella delle partizioni.

Per eliminare una partizione primaria su un disco (qui /dev/vda), digitare:

# fdisk /dev/vda

Premere “c“, “u“, quindi “p” per stampare la tabella delle partizioni.
Quindi premere “d” (per eliminare) e digitare il numero della partizione (tra 1 e 4).
Infine, premi “w” per salvare la tabella delle partizioni.

Per impostare il tipo di una partizione primaria (qui /dev/vda3), digitare:

# fdisk /dev/vda

Premere “c“, “u“, quindi “p” per stampare la tabella delle partizioni.
Quindi premere ‘t‘ (per tag), digitare il numero di partizione (qui ‘3’) e il tipo di partizione (83 per linux, 8e per Linux LVM, 82 per lo scambio).
Infine, premi “w” per salvare la tabella delle partizioni.

Per forzare il kernel a leggere la tabella delle partizioni aggiornata, digitare:

# partprobe

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.