
Copie blocco a blocco con dd
Il comando dd è uno di quelli
che più spesso sono presenti
negli script che lavorano su dischi, file o
partizioni. La sua peculiarità risiede nel
fatto che è in grado di copiare dati da
un supporto all'altro leggendoli e scrivendoli
blocco a blocco, a basso livello,
o se preferite in modalità raw. La sintassi
è molto semplice: bisogna indicare
una sorgente, identificata dall'opzione
if, un destinatario, identificato dalla
direttiva of, e la dimensione dei blocchi
indicata con la direttiva bs. I campi di
applicazione di dd sono molteplici. Ad
esempio è possibile creare velocemente l'immagine ISO di un CD leggendo e
scrivendo il suo contenuto in un file .iso:
dd if=/dev/cdrom
of=/home/nome_utente/
CD.iso bs=2048
In questo caso specifico, premuto il tasto
Invio, il Cd-Rom presente nel lettore
del PC verrà letto blocco a blocco e
il suo contenuto scritto nel file CD.iso.
Altri esempi classici sono quelli per scrivere
una immagine su un floppy (caso
tipico dei vecchi dischetti di boot):
dd if=./floopy.img of=/dev/fd0
Oppure ancora, con dd è possibile eseguire
la copia di un'intera partizione su
un'altra o su un file in modo da creare
backup completi:
dd if=/dev/sda1
of=/home/giovanni/
partizione.img bs=4096
conv=noerror
In quest'ultimo esempio abbiamo utilizzato
anche l'opzione noerror che forza
dd a continuare a leggere anche nel
caso in cui dovesse riscontrare qualche
errore: aspetto, questo, molto importante
se l'utilizzo del comando dd
così “confezionato” serve per salvare
un hard disk che esala i suoi ultimi respiri.
Come è possibile notare da questi
tre esempi, le potenzialità del comando
non si esauriscono certo qui, e
proprio per questo bisogna prestare la
massima attenzione a quello che si scrive.
In particolare, consigliamo di controllare
bene la direttiva of dato che la scrittura
su un device errato potrebbe portare
a gravi conseguenze: cancellazione
di file, partizioni o interi dischi.