Copia, Clona e Crea Drive USB Avviabili con il Comando “dd”

Una delle più antiche applicazioni del mondo Linux, “dd” è ancora oggi utilissima nello svolgere alcune funzioni da linea di comando che su altri sistemi richiedono l’uso di potenti strumenti commerciali:

  1. Fare Backup di Hard Disk o Partizioni su Dischi Esterni
  2. Creare File Immagine ISO da CD o DVD
  3. Installare Immagini ISO su Drive o Penna USB Avviabile al Boot

Con estrema semplicità “dd” può clonare interi dischi anche se la sorgente e la destinazione sono dispositivi eterogenei (un disco interno, un disco esterno, un cd o dvd, una chiave USB, ecc..)

Come Funziona “dd” 

E’ doveroso avvertire che un uso errato di “dd” può causare la perdita accidentale dei dati. “dd” fondamentalmente copia i dati da una sorgente ad una destinazione. Confondere questi due argomenti a linea di comando potrebbe portare a sovrascrivere i dati sorgenti con quelli destinatari.

L’indicativo della sorgente è if (input file) mentre la destinazione è of (output file) che generalmente vengono definiti come da esempio:

if=/dev/cdrom

if=/dev/sda4

ad indicare un cdrom o la partizione del tuo hard disk.

Esempi di destinazione possono essere:

of=/home/ubuntulinux/cdbackup.iso

of=/home/ubuntulinux/hddbackup.img

A “dd” possono essere passati anche molti altri parametri come ad esempio “bs” per definire il block size dei file dei file, che deve essere un multiplo di 512 ( 512mb, 1024mb e 2048mb sono i più utilizzati).

1) Backup dell’Hard Disk su Partizione o Disco Esterno 

Questo è un classico esempio di utilizzo di “dd” che ti permette di fare il backup di una partizione del tuo hard disk su una partizione o su un disco esterno:

sudo dd if=/dev/sda1 of=/dev/sdc1 bs=4096 conv=noerror,sync

In questo caso abbiamo utilizzato un blocksize di 4096 (per permettere un backup più veloce) e l’opzione noerror per indicare a “dd” di continuare la copia anche in caso di settori illeggibili che potrebbero generare errori.

Se vuoi salvare il contenuto su un file immagine puoi invece lanciare il comando:

sudo dd if=/dev/sda1 of=/dev/sdc1/hddbackup.img

2) Creare un’Immagine .ISO da un CDROM 

Questo esempio è estremamente simile al precedente con l’unica differenza che la sorgente è un drive cdrom fisico.

sudo dd if=/dev/cdrom of=/home/ubuntulinux/cdbackup.iso bs=2048 conv=sync

L’opzione “conv=sync” indica a “dd” di sicronizzare l’input e l’output che assicura una protezione contro la perdita di dati. A seconda della velocità del tuo drive, il processo potrebbere richiedere alcuni minuti e al termine avrai un’immagine ISO che potrai anche masterizzare.

3) Realizzare un Drive USB Bootable da un Disco Immagine 

Questo processo ti permetterà di installare all’interno di una penna USB un sistema avviabile dal boot della macchina a partire da un file immagine, ad esempio di una distribuzione Linux scaricata da internet.

Dopo aver connesso la penna USB al computer accertati di averla smontata e digita il comando di seguito per trasformarla in un drive avviabile al boot:

sudo dd if=/home/ubuntulinux/Scrivania/ubuntu.iso of=/dev/sdc

In questo caso a differenza degli altri esempi non hai indicato una partizione come destinazione ma tutto il disco fisico (infatti non c’è il numero dopo /dev/sdc).

  • http://twitter.com/kerby82 Andrea

    consiglio unetbootin una gui per la creazione di pennette usb avviabili :-)

    • http://www.ubuntu-linux.it Andrea Zorzetto

      bo sarà che farlo da linea di comando mi ispira di più.. ma unetbootin offre qualche vantaggio particolare?

    • http://pulse.yahoo.com/_UI6G6PAOOV5WPX4QZQXN2DNMPY Daniele Perduno

      unetbootin non permette di creare dello spazio persistente dove salvare le modifiche, o sbaglio ?

  • Anonimo

    unetbootin non è paragonabile a dd: esegue una funzione più complessa, ma molto più specifica. dd è un’utility che copia un volume su un altro, senza modificarlo;

    Quando si copia un disco con settori difettosi conviene dare l’opzione conv=noerror,sync al posto del solo noerror. Con il solo noerror, dd omette di scrivere i settori che non è riuscito a leggere, generando una copia di lunghezza inferiore dove tutti i dati scritti dopo il punto in cui si è verificato l’errore sono fuori posto, con sync dd sostituisce con degli zeri i dati che non è riuscito a leggere.

    • http://www.ubuntu-linux.it Andrea Zorzetto

      grazie. articolo aggiornato

  • Ilnanny

    Grazie mille per la dritta :D e buon Lavoro.

  • http://www.claimid.com/koolinus kOoLiNuS

    grazie per il piccolo howto

    • http://www.ubuntu-linux.it Andrea Zorzetto

      Prego! Vuoi un invito x Google Plus?

      • http://www.claimid.com/koolinus kOoLiNuS

        ti ringrazio ma ne ho uno dal giorno #0 ;-)

      • Nantrel

        Grazie  per l’articolo, proprio ciò che mi serviva-
        Per l’invito a google plus……non è che ce l’hai per me? Puoi mandarlo a nantrel chioccola gmail ecc :-)
        Grazie ;)

        • http://www.ubuntu-linux.it Andrea Zorzetto

          Inviato!!