From d6cf1acea020e9a4ed07aa196ec662e7466b60c1 Mon Sep 17 00:00:00 2001 From: dado Date: Mon, 20 Jan 2025 21:24:02 +0100 Subject: [PATCH] parted --- 101/023_partizioni_filesystem.md | 101 ++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) diff --git a/101/023_partizioni_filesystem.md b/101/023_partizioni_filesystem.md index 51d16af..1ecd5d8 100644 --- a/101/023_partizioni_filesystem.md +++ b/101/023_partizioni_filesystem.md @@ -174,4 +174,103 @@ btrfs sublovule snapshot /mnt/disk /mnt/disk/snap Per creare istantanee di sola lettura, basta aggiungere il parametro `-r`. -## GNU Parted \ No newline at end of file +## GNU Parted + +`GNU Parted` é un potente editor delle partizioni. Esistono dei front-end grafici, come *GParted*. + +> WARNING: Parted apporta modifiche al disco immediatamente dopo che il comando é stato dato, senza attese, diversamente da fdisk e gdisk + +```bash +parted DEVICE + +parted /dev/sda +``` + +### Selezionare i dischi + +Per passare da un disco diverso da quello selezionato, basta usare il comando `select`: + +```bash +parted /dev/sda +Using /dev/sda +(parted) select /dev/sdb +Using /dev/sdb +``` + +### Ottenere informazioni + +Per ottenere informazioni sul disco, utilizzare il comando `print`: + +```bash +(parted) print +Model: ATA CT500BX500SSD1 (scsi) +Disk /dev/sdb: 500GB +Sector size (logical/physical): 512B/512B +Partition Table: gpt +Disk Flags: + +Number Start End Size File system Name Flags + 1 1049kB 500GB 500GB +``` + +Per ottenere un elenco di tutti i dispositivi a blocchi, utilizzare `print devices`. Tramite il comando `print all` si ottengono informazioni su tutti i dispositivi a blocchi collegati. Tramite il comando `print free` é possibile visualizzare lo spazio libero a disposizione su un singolo device + +### Creare una tabella delle partizioni + +Per creare una tabella delle partizioni su un disco vuoto, usare il comando `mklabel`, seguito dal tipo di tabella che si desidera creare: + +```bash +(parted) mklabel msdos +(parted) mklabel gpt +``` + +### Creare una partizione + +Per creare una partizione, si utilizza il comando `mkpart`: + +```bash +(parted) mkpart PARTTYPE FSTYPE START END +``` + +dove: + +- `PARTTYPE`: il tipo di partizione, che puo' essere *primary*, *logical* o *extended* +- `FSTYPE`: il tipo di filesystem. Parted non crea il filesystem, ma imposta solo un flag sulla partizione che dice al OS che tipo di dati aspettarsi +- `START`: specifica il punto esatto in cui inizia la partizione +- `END`: specifica il punto in cui la partizione finisce (NON la dimensione) + +```bash +(parted) mkpart primary ext4 1m 100m +``` + +### Eliminare una partizione + +Utilizzare il comando `rm` seguito dal numero della partizione da eliminare, visualizzabile col comando `print`. + +### Recuperare una partizione + +Parted permette di recuperare una partizione cancellata. Utilizzare il comando `rescue`, con la sintassi: `rescue START END`, dove START indica la posizione approssimativa in cui la partizione iniziava e END quella in cui finiva. Parted eseguirà una scansione del disco alla ricerca di partizione e si offrirà di ripristinare quelle trovate. Puo' recuperare solo le partizioni in cui é presente un filesystem; quelle vuote non vengono rilevate. + +### Ridimensionare una partizione ext2/3/4 + +Puo' essere anche usato per ridimensionare le partizioni, al fine di renderle piú grandi i piú piccole, con alcune accortezze: + +- durante il ridimensionamento, la partizione deve essere inutilizzata e smontata + +Il comando é `resizepart`, seguito da numero di partizione e di dove dovrebbe finire: `resizepart 2 300g`. + +Una volta ridimensionata la partizione, bisogna ridimensionare il filesystem. Per i filesystem ext2/3/4, questo viene fatto da `resize2fs PARTITION SIZE`. Se si omette il parametro SIZE, verrá utilizzato tutto lo spazio disponibile: `resize2fs /dev/sdb3`. + +Per *restringere* una partizione, il processo deve essere inverso: + +- prima si restringe il filesystem, tramite `resize2fs` +- poi si ridimensiona la partizione stessa utilizzando `parted` + +```bash +resize2fs /dev/sdb3 200g + +parted /dev/sdb3 +(parted) resizepart 3 200g +``` + +## swap