Parted è un'utilità GNU gratuita utilizzata per gestire le partizioni del disco rigido dalla riga di comando. Può creare, eliminare, ridimensionare e stampare la partizione del disco e altro su Linux.
Più spesso utilizziamo lo strumento parted per il partizionamento del disco per eseguire più sistemi operativi, allocare spazio di sistema specifico o separare file importanti o estendere volumi.
Tradizionalmente molti utenti utilizzano lo strumento fdisk per il partizionamento, il motivo principale per utilizzare parted quando la dimensione del disco supera i 2 TB. Inizialmente si è separato supportava solo GPT e da util-linux 2.23 fdisk ha iniziato a supportare anche GPT.
In questo tutorial, mostrerò come utilizzare il comando parted per la gestione del disco in Linux
Installa Parted su Linux
Parted è installato per impostazione predefinita sulla maggior parte delle moderne distribuzioni Linux. Se non è incluso nella tua distribuzione, installa parted manualmente.
Installazione di parted su distribuzioni aromatizzate Ubuntu e Debian:
$ sudo apt-get install parted
Installazione parziale su CentOS e RHEL:
$ sudo yum install parted
Quando esegui il comando parted senza alcuna opzione, stamperà la versione del pacchetto parted, scegli la prima unità per impostazione predefinita e attendi al prompt per comandi aggiuntivi. Il comando Parted deve essere eseguito come root o come utente con accesso Sudo.
$ sudo parted
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Digita quit
per uscire dal prompt separato.
Importante: Tutte le modifiche vengono apportate al disco non appena viene digitato il comando.
Elenca le partizioni del disco
Verifichiamo come stampare tutte le informazioni sul disco e le sue partizioni. Per impostazione predefinita, parted scegli la prima unità. Per stampare tutte le partizioni del disco, digita print all
.
Nota:l'avviso visualizzato nell'output è dovuto al fatto che il disco ha spazio su disco non allocato di cui è ancora necessario eseguire il provisioning.
ubuntu@linoxide:~$ sudo parted
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 8590MB 8589MB primary ext4 boot
Warning: Not all of the space available to /dev/xvdb appears to be
used, you can fix the GPT to use all of the space (an extra 25165824
blocks) or continue with the current setting?
Fix/Ignore? Ignore
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 1024MB 1024MB ext4 primary
2 1024MB 2048MB 1023MB ext4 primary
(parted)
Invece, puoi anche usare un singolo comando:
$ sudo parted /dev/xvda print all
Se hai più dischi, puoi scegliere tra i dischi usando il comando select:
Trova spazio non allocato sul disco
Per trovare lo spazio non allocato, scegli il tuo disco, quindi esegui print free
comando.
Più avanti discuteremo come usare il comando resizepart per estendere la partizione quando hai più spazio su disco non allocato.
Crea una nuova partizione del disco usando parted
Normalmente un sistema operativo è installato sul primo disco /dev/sda
. Quando aggiungi un nuovo disco, il sistema operativo sceglierà il numero successivo come /dev/sdb
. Per illustrare sto usando un disco virtuale Xen che usa la convenzione di denominazione come /dev/xvd
.
Ho aggiunto un nuovo disco da 20 GB e puoi vederlo come unrecognised disk label
.
Il primo passo sarebbe impostare l'etichetta del disco richiesta, l'etichetta del disco supportata è bsd, loop, gpt, mac, msdos, pc98 e sun.
(parted) mklabel msdos
Ora segmenterò /dev/xvdb in due partizioni primarie con la prima partizione da 10 GB e la seconda partizione da 5 GB.
Per creare una nuova partizione utilizziamo mkpart
comando con inizio 0 e fine 10000:
Per creare la seconda partizione, esegui nuovamente il comando mkpart specificando la dimensione iniziale e finale
Nota:il concetto di "primario" riflette da MBR, a GPT non interessa ma deve comunque aggiungere un nome.
Puoi anche utilizzare mkpart per creare la partizione che copre l'intera unità specificando la percentuale da utilizzare (qui da 0% a 100%).
Ad esempio:
$ sudo parted -a opt /dev/sda mkpart primary ext4 0% 100%
Invece di usare il comando print, puoi eseguire comandi alternativi come lsblk
, fdisk -l
to see partitions created.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 18M 1 loop /snap/amazon-ssm-agent/1566
loop1 7:1 0 93.8M 1 loop /snap/core/8935
loop2 7:2 0 93.9M 1 loop /snap/core/9066
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 20G 0 disk
├─xvdb1 202:17 0 9.3G 0 part
└─xvdb2 202:18 0 4.7G 0 part
$
Ora possiamo formattare la partizione (/dev/xvdb1) con il filesystem ex4, utilizzare mkfs.ext4 come segue:
$ sudo mkfs.ext4 /dev/xvdb1
Ridimensiona la partizione del disco usando resizepart
Per far crescere la partizione, è necessario prima ridimensionarla. Ridimensionare semplice significa spostare la posizione finale di una partizione.
Qui ridimensionerò la seconda partizione di /dev/xvdb, spostando la posizione finale su 20000:
(parted) resizepart
Nota:growpart è un altro utile strumento disponibile su Linux per estendere una partizione.
Per ridimensionare ogni file system alla nuova capacità, è necessario eseguire il comando specifico del file system. Per estendere il filesystem in Linux usa resize2fs
comando come segue:
$ sudo resize2fs /dev/xvdb2
resize2fs 1.44.1 (24-Mar-2018)
Resizing the filesystem on /dev/xvdb2 to 2441340 (4k) blocks.
The filesystem on /dev/xvdb2 is now 2441340 (4k) blocks long.
Elimina la partizione da un disco scelto
Per eliminare una partizione dovresti conoscere il numero di partizione sul disco. Usa print
comando in parted per mostrare tutta la partizione e il numero corrispondente.
Per eliminare puoi usare il comando rm seguito dal numero della partizione. Qui elimineremo la 2a partizione come mostrato di seguito:
(parted) rm 2
Imposta flag sulle partizioni
Parted permette di impostare flag sulla partizione. Non sorprenderti, alcuni flag dipendono dalle etichette del disco. Una bandiera può essere attivata o disattivata. I flag più comuni sono boot, lab, swap, raid, LVM, ecc.
Il comando seguente imposta il flag LVM sulla partizione 2:
(separato) imposta 2 LVM su
Un altro esempio pratico quando dobbiamo impostare una partizione di avvio:
(parted) set 2 boot on
Salvataggio della partizione del disco Linux
Rescue viene in aiuto quando elimini accidentalmente una partizione. Una partizione persa può essere recuperata individuando tra l'inizio e la fine.
Eliminiamo la partizione 1 su /dev/xvdb e usiamo il comando rescue per recuperarla:
(parted) rescue
Imposta unità predefinita
Il comando dell'unità in parted aiuta a impostare un'unità predefinita per visualizzare le capacità e le posizioni.
le unità supportate sono:
KiB- kibibyte
MiB - mebibyte
GiB - gibibyte
TiB - tebibyte
kB - kilobyte
MB - megabyte
GB - gigabyte
TB - terabyte
% - percentage of the device
cyl - cylinders
chs - cylinders, heads, sectors addressing
compact - Use human-readable representation for output
Il comando seguente imposta l'unità su compatta:
(parted) unit compact
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 8590MB 8589MB primary ext4 boot
(parted)
Puoi anche stampare in unità come segue:
(parted) unit GB print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 8.59GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 0.00GB 8.59GB 8.59GB primary ext4 boot
(parted)
Conclusione
Al momento dell'aggiornamento di questo tutorial, stiamo utilizzando la versione 3.1 parted ed è bene verificare i comandi attualmente supportati usando -h
opzione. Parted scrive direttamente sul disco, quindi fai attenzione quando esegui qualsiasi comando.
Quando apporti modifiche, assicurati di scegliere l'unità corretta, altrimenti potrebbe causare la perdita di dati.
Se hai domande o pensieri da condividere su questo argomento, utilizza la sezione commenti qui sotto.