Introduzione

Prima di poter utilizzare una scheda SD o un'unità USB, è necessario formattarla e partizionarla. In genere la maggior parte delle unità USB e delle schede SD vengono preformattate utilizzando il file system FAT e non devono essere formattate immediatamente. Tuttavia, in alcuni casi, potrebbe essere necessario formattare l'unità.

In Linux, è possibile utilizzare uno strumento grafico come GParted o strumenti da riga di comando come fdisk o parted per formattare l'unità e creare le partizioni richieste.

In questo tutorial, ti mostreremo come formattare un'unità USB o una scheda SD su Linux usando l'utilità parted.

È importante notare che la formattazione è un processo distruttivo e cancellerà tutti i dati esistenti. Se sull'unità UDS sono presenti dati sulla scheda SD, assicurarsi di eseguirne il backup.

Installare parted

GNU Parted è uno strumento per la creazione e la gestione di tabelle delle partizioni. Il pacchetto parted è preinstallato sulla maggior parte delle distribuzioni Linux al giorno d'oggi. Puoi verificare se è installato sul tuo sistema digitando:

parted --version
parted (GNU parted) 3.2
Copyright (C) 2014 Free Software Foundation, Inc.
...

Se parted non è installato sul tuo sistema, puoi installarlo usando il gestore pacchetti della tua distribuzione.

Installare parted su Ubuntu e Debian

Aggiornare l'elenco dei pacchetti disponibili:

sudo apt update

Installare parted:

sudo apt install parted

Installare parted su CentOS e Fedora

sudo yum install parted

Identificazione del nome della scheda USB o SD

Inserisci l'unità flash USB o la scheda SD nella tua macchina Linux e trova il nome del dispositivo usando il comando lsblk:

lsblk

Il comando stamperà un elenco di tutti i dispositivi a blocchi disponibili:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdb      9:42   1  14.4G  0 disk 
└─sdb1   9:43   1   1.8G  0 part /media/data
...

Nell'esempio sopra, il nome del dispositivo SD è /dev/sdb, ma questo può variare sul tuo sistema.

Puoi anche usare il comando dmesg per trovare il nome del dispositivo:

dmesg

Una volta collegato il dispositivo, dmesg  mostrerà il nome del dispositivo:

...
[  +0.000232] sd 1:0:0:0: [sdb] 30218842 512-byte logical blocks: (15.5 GB/14.4 GiB)
...

Cancellazione sicura dei dati (opzionale)

Prima di formattare l'unità, è possibile cancellare in modo sicuro tutti i dati su di esso sovrascrivendo l'intera unità con dati casuali. Ciò garantisce che i dati non possano essere recuperati da nessuno strumento di recupero dati.

Fare molta attenzione prima di eseguire il comando seguente e cancellare irrevocabilmente i dati dell'unità. Usare il comando dd e scrivere il percorso dell'unità di destinazione dopo  of=:

sudo dd if=/dev/zero of=/dev/sdb bs=4096 status=progress

A seconda delle dimensioni dell'unità, il completamento del processo richiederà del tempo.

Una volta che il disco è stato cancellato, il comando dd stamperà  “No space left on device”:

15455776768 bytes (15 GB, 14 GiB) copied, 780 s, 19.8 MB/s 
dd: error writing '/dev/sdb': No space left on device
3777356+0 records in
3777355+0 records out
15472047104 bytes (15 GB, 14 GiB) copied, 802.296 s, 19.3 MB/s

Creare una partizione e formattare

I file system più comuni sono exFAT e NTFS su Windows, EXT4 su Linux e FAT32 che possono essere utilizzati su tutti i sistemi operativi.

Ti mostreremo come formattare l'unità USB o la scheda SD su FAT32 o EXT4. Utilizzare EXT4 se si intende utilizzare l'unità solo su sistemi Linux, altrimenti formattarla con FAT32. Una singola partizione è sufficiente per la maggior parte dei casi d'uso.

Formatta con FAT32

Innanzitutto, crea la tabella delle partizioni eseguendo il comando seguente:

sudo parted /dev/sdb --script -- mklabel msdos

Crea una partizione Fat32 che occupi l'intero spazio:

sudo parted /dev/sdb --script -- mkpart primary fat32 1MiB 100%

Formatta la partizione di avvio su FAT32:

sudo mkfs.vfat -F32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)

Al termine, utilizzare il comando seguente per stampare la tabella delle partizioni e verificare che tutto sia impostato correttamente:

sudo parted /dev/sdb --script print

L'output dovrebbe assomigliare a questo:

Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  15.5GB  15.5GB  primary  fat32        lba

La formattazione è terminata.

Formatta con EXT4

Crea una tabella delle partizioni GPT emettendo:

sudo parted /dev/sdb --script -- mklabel gpt

Eseguire il comando seguente per creare una partizione EXT4 che occupa l'intero spazio:

sudo parted /dev/sdb --script -- mkpart primary ext4 0% 100%

Formatta la partizione su ext4:

sudo mkfs.ext4 -F /dev/sdb1
mke2fs 1.44.1 (24-Mar-2018)
/dev/sdb1 contains a vfat file system
Creating filesystem with 3777024 4k blocks and 944704 inodes
Filesystem UUID: 72231e0b-ddef-44c9-a35b-20e2fb655b1c
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

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

Verifica stampando la tabella delle partizioni:

sudo parted /dev/sdb --script print

L'output dovrebbe assomigliare a questo:

Model: Kingston DataTraveler 3.0 (scsi)
Disk /dev/sdb: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  15.5GB  15.5GB  ext4         primary  

Conclusione

La formattazione di un'unità USB o di una scheda SD su Linux è un processo piuttosto semplice. Tutto quello che devi fare è inserire l'unità, creare una tabella delle partizioni e formattarla con FAT32 o il tuo file system preferito.