Introduzione

La prima cosa che devi fare dopo aver installato un nuovo SSD o disco rigido è partizionarlo. Un'unità deve avere almeno una partizione prima di poter formattare e archiviare i file su di essa.

Su Linux ci sono diversi strumenti che puoi usare per creare partizioni, fdisk è quella più comunemente usata.

In questo articolo, parleremo del comando fdisk.

fdisk è un'utilità della riga di comando basata su menu che consente di creare e manipolare tabelle delle partizioni su un disco rigido.

fdisk è uno strumento pericoloso e deve essere usato con estrema cautela. Solo i root o gli utenti con privilegi sudo possono manipolare le tabelle delle partizioni.

Elencare le partizioni

Per elencare la tabella delle partizioni di un dispositivo, invocare il comando fdisk con l'opzione -l, seguito dal nome del dispositivo. Ad esempio per elencare la tabella delle partizioni /dev/sda esegui:

fdisk -l /dev/sda

Quando non viene fornito alcun dispositivo come argomento, fdisk stamperà le tabelle delle partizioni di tutti i dispositivi elencati nel file /proc/partitions:

fdisk -l
Disk /dev/sda: 19.1 GiB, 20480786432 bytes, 40001536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AB391DD5-0D8F-4897-8CB7-D5662CFDD785

Device      Start      End  Sectors Size Type
/dev/sda1  135168 40001502 39866335  19G Linux filesystem
/dev/sda14   2048     4095     2048   1M BIOS boot
/dev/sda15   4096   135167   131072  64M EFI System

Partition table entries are not in disk order.

L'output sopra mostra le tabelle delle partizioni correnti di tutti i dispositivi collegati al sistema. In genere, i nomi dei dispositivi SATA seguono il modello /dev/sd[a-z], mentre i nomi dei dispositivi NVMe hanno il modello seguente /dev/nvme[1-9]n[1-9].

Creare una tabella delle partizioni

Per avviare il partizionamento dell'unità, eseguire fdisk con il nome del dispositivo. In questo esempio lavoreremo su /dev/sdb:

fdisk /dev/sdb

Il prompt dei comandi cambierà e fdisk si aprirà la finestra di dialogo in cui è possibile digitare i comandi:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help):

Le modifiche apportate alla tabella delle partizioni non avranno effetto finché non le si scrive con il comando w. È possibile uscire dalla finestra di dialogo fdisk senza salvare le modifiche utilizzando il comando q.

Per ottenere un elenco di tutti i comandi disponibili inserisci m:

m
Command (m for help): m

Help:

  GPT
   M   enter protective/hybrid MBR

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help):

Se si sta partizionando una nuova unità, prima di iniziare a creare partizioni, è necessario creare una tabella delle partizioni. Saltare questo passaggio se il dispositivo ha già una tabella delle partizioni e si desidera mantenerla.

fdisk supporta diversi schemi di partizionamento. MBR e GPT sono i due standard di schema di partizione più popolari, che memorizzano le informazioni di partizionamento su un'unità in modo diverso. GPT è uno standard più recente che consente e presenta molti vantaggi rispetto all'MBR. I punti principali da considerare quando si sceglie quale standard di partizionamento usare:

  • Utilizzare MBR per avviare il disco in modalità BIOS legacy.
  • Utilizzare GPT per avviare il disco in modalità UEFI.
  • Lo standard MBR supporta la creazione di una partizione del disco fino a 2 TiB. Se hai un disco di 2 TiB o superiore, usa GPT.
  • MBR ha un limite di 4 partizioni primarie. Se sono necessarie più partizioni, una delle partizioni primarie può essere impostata come partizione estesa e contenere partizioni logiche aggiuntive. Con GPT puoi avere fino a 128 partizioni. GPT non supporta partizioni estese o logiche.

In questo esempio, useremo una tabella delle partizioni GPT.

Digitare g per creare una nuova tabella delle partizioni GPT vuota:

g

L'output sarà simile al seguente:

Created a new GPT disklabel (GUID: 034596B2-1998-B241-BD8A-029063BDB87E).

Il prossimo passo è creare le nuove partizioni.

Creeremo due partizioni. Il primo con una dimensione di 100 GiB e il secondo occuperà il resto dello spazio su disco.

Esegui il comando n per creare una nuova partizione:

n

Ti verrà richiesto di inserire il numero di partizione. Premi "Invio" per utilizzare il valore predefinito (1):

Partition number (1-128, default 1):

Successivamente, il comando ti chiederà di specificare il primo settore. Generalmente si consiglia sempre di utilizzare i valori predefiniti per il primo valore. Premi "Invio" per utilizzare il valore predefinito (2048):

First sector (2048-500118158, default 2048):

Al prompt successivo, è necessario inserire l'ultimo settore. È possibile utilizzare un valore assoluto per l'ultimo settore o valore relativo al settore iniziale, utilizzando il simbolo + seguito dalla dimensione della partizione. La dimensione può essere specificata in kibibyte (K), mebibytes (M), gibibytes (G), tebibytes (T) o pebibytes (P).

Digitare +100G e premere "Invio" per impostare la dimensione della partizione su 100 GiB:

Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.

Per impostazione predefinita, il tipo di nuova partizione è impostato su "filesystem Linux", che dovrebbe andare bene per la maggior parte dei casi. Se si desidera modificare il tipo, premere l per ottenere un elenco di tipi di partizione, quindi premere t per modificare il tipo.

Creiamo la seconda partizione che occuperà il resto dello spazio su disco:

n

Utilizzare i valori predefiniti per il numero di partizione, il primo e l'ultimo settore. Ciò creerà una partizione che utilizzerà tutto lo spazio disponibile sul disco.

Partition number (2-128, default 2): 
First sector (209717248-625142414, default 209717248): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-625142414, default 625142414): 

Una volta terminata la creazione delle partizioni, utilizzare il comando p per visualizzare la nuova tabella delle partizioni:

p
Disk /dev/sdb: 298.9 GiB, 320072933376 bytes, 625142448 sectors
Disk model: nal USB 3.0     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8365250-AF58-F74E-B592-D56E3A5DEED1

Device         Start       End   Sectors   Size Type
/dev/sdb1       2048 209717247 209715200   100G Linux filesystem
/dev/sdb2  209717248 625142414 415425167 198.1G Linux filesystem

Se si desidera eliminare una partizione, utilizzare il comando d.

Salvare le modifiche eseguendo il comando w:

p

Il comando scriverà la tabella su disco e uscirà dal menu fdisk.

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Il kernel leggerà la tabella delle partizioni del dispositivo senza la necessità di riavviare il sistema.

Attivare le partizioni

Ora che le partizioni sono state create, il passaggio successivo consiste nel formattare le partizioni e montarle nella struttura di directory del sistema.

Formatteremo entrambe le partizioni su ext4:

sudo mkfs.ext4 -F /dev/sdb1
sudo mkfs.ext4 -F /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 51928145 4k blocks and 12984320 inodes
Filesystem UUID: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done   

In questo esempio, verranno montate le partizioni e le directory /mnt/audio e /mnt/video.

Crea i punti di montaggio con mkdir:

sudo mkdir -p /mnt/audio /mnt/video 

Montare la nuova partizione:

sudo mount /dev/sdb1 /mnt/audio
sudo mount /dev/sdb2 /mnt/video 

Le partizioni rimarranno montate fino a quando non si smonta o si spegne la macchina. Per montare automaticamente una partizione all'avvio del sistema Linux, definire il montaggio nel file /etc/fstab.

Questo è tutto, ora puoi utilizzare le nuove partizioni per archiviare i tuoi file.

Conclusione

fdisk è uno strumento da riga di comando per la creazione di schemi di partizione. Per ulteriori informazioni sul comando fdisk, digitare:

man fdisk