Il comando dd sta per data duplicator (alcune fonti lo chiamano disk dump) ed è uno dei comandi Unix/Linux originali, con origini che risalgono agli anni ‘70. Permette la copia e conversione di file e dispositivi a basso livello, risultando utile per operazioni su dischi, immagini ISO e stream di dati. È però estremamente pericoloso: un singolo errore può sovrascrivere dati importanti in modo irreversibile.

Esistono alternative grafiche multipiattaforma come Rufus e balenaEtcher, oltre a strumenti inclusi in alcune distribuzioni Linux come Popsicle o Fedora Media Writer .

Il comando dd offre però la possibilità di eseguire la stessa operazione direttamente da terminale, senza installare software aggiuntivo.

Scaricare le Immagini ISO

Per creare una chiavetta USB avviabile, il primo passo è scaricare l’immagine ISO dal sito ufficiale del sistema operativo, hypervisor o software desiderato.

Un’immagine ISO è un file che contiene la copia esatta di un disco ottico (CD/DVD). Il nome deriva dal filesystem ISO 9660, lo standard dei supporti ottici. Questi file sono repliche bit-per-bit del contenuto originale e includono bootloader, file di sistema e struttura delle cartelle. Sono il formato ideale per distribuire sistemi operativi, supporti di ripristino e software auto-installante.

Dopo il download, è buona pratica verificare l’integrità del file confrontando il checksum SHA256 con quello pubblicato sul sito ufficiale:

bash
sha256sum nome-file.iso

Identificare il Dispositivo USB

Prima di procedere, è fondamentale identificare correttamente la chiavetta USB. Collegare la chiavetta al PC ed eseguire il comando lsblk per visualizzare i dispositivi di archiviazione collegati:

bash
lsblk

L’output mostrerà un elenco simile al seguente. In questo esempio, sdb è un dispositivo da 29GB senza partizioni, corrispondente alla chiavetta USB. Per evitare errori, è consigliabile eseguire lsblk prima e dopo aver collegato la chiavetta, confrontando i risultati per identificare il dispositivo corretto.

bash
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                                             8:0    0 931,5G  0 disk  
└─sda1                                          8:1    0 931,5G  0 part  /mnt/folder
sdb                                             8:16   1  28,7G  0 disk  
nvme0n1                                       259:0    0 931,5G  0 disk  
├─nvme0n1p1                                   259:1    0     1G  0 part  /boot
└─nvme0n1p2                                   259:2    0 930,5G  0 part  
  └─luks-4g65gvvf-6red-3r7f-p3ed-36gd4hiidwui 254:0    0 930,5G  0 crypt /os/folder

Creare la Chiavetta USB Avviabile

Con l’immagine ISO scaricata e il dispositivo USB identificato, è possibile procedere con la scrittura. L’esempio seguente crea una chiavetta avviabile con Proxmox:

Attenzione

L’utilizzo di questo comando andrà a sovrascrivere in modo irrecuperabile i dati presenti nel percorso di destinazione. Verificare di aver selezionato la chiavetta USB corretta e non altri percorsi. Eseguire questo comando a propria discrezione e valutazione.
bash
sudo dd if=./folder/proxmox-ve_9.1-1.iso of=/dev/sdb bs=4M status=progress conv=fsync

Di seguito le opzioni utilizzate:

Opzione Valore Descrizione
if= Percorso file File o dispositivo di input, ovvero l’immagine ISO da scrivere
of= Percorso dispositivo File o dispositivo di output, ovvero la chiavetta USB di destinazione
bs= 4M Dimensione del blocco di lettura/scrittura. Valori più alti (es. 4M) accelerano il processo
status= progress Mostra l’avanzamento del processo con velocità e quantità di dati trasferiti
conv= fsync Sincronizza i dati su disco dopo ogni blocco scritto, garantendo l’integrità della scrittura

L’operazione può impiegare alcuni minuti, a seconda della velocità della chiavetta e della dimensione dell’immagine. Durante la scrittura verrà mostrato l’avanzamento:

944930816 bytes (945 MB, 901 MiB) copied, 45 s, 21,0 MB/s

Al termine del processo verrà mostrato un riepilogo con i dati totali trasferiti:

1116471296 bytes (1,1 GB, 1,0 GiB) copied, 53,2874 s, 21,0 MB/s
225+1 records in
225+1 records out