Immagine disco con dd

Un modo semplice per fare un’immagine disco validata è quello di utilizzare dd e MD5. Per questo ho creato una chiavetta usb avviabile con DEFT Linux 6.1 utilizzando UNebootin.

Calcolo checksum

Ho avviato il pc il cui hd deve essere clonato dalla chiavetta usb. Una volta avviato il sistema è necessario ricavare il checksum MD5 del disco di origine:
md5sum /dev/sda > /tmp/md5_source

Creazione immagine

Adesso creiammo l’immagine del disco (nota: il disco non deve essere montato):
dd if=/dev/sda of=/tmp/disk.img bs=1k
I parametri di dd utilizzati sono:

  • if=/dev/sda indica il device di ingresso
  • of=/tmp/disk.img indica il file di destinazione
  • bs=1k indica la dimensione del blocco (1024B o 1KB in questo caso)

Al termine calcoliamo il checksum MD5 del file immagine:
md5sum /tmp/disk.img > /tmp/md5_dest

Verifica

Per verificare che la copia sia coerente, basta comparare i checksum:
cat /tmp/md5_*

Ripristino

Partendo dal file immagine così ottenuto, posso ripristinare il disco invertendo i parametri di ingresso e uscita:
dd if=/tmp/disk.img of=/dev/sda bs=1

Alternativa: utilizzo di gzip per compressione e decompressione on-the-fly

Nel caso di mancanza di spazio, possiamo utilizzare gzip per fare una compressione al volo del file immagine. In questo caso però perdiamo la possibilità di verificare il checksum. Di seguito si suppone che il file immagine venga salvato su un dispositivo esterno montato come /mnt/backup/:
dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > /mnt/backup/sda.img.gz
Per ripristinare:
gunzip -c /mnt/backup/sda.img.gz | dd of=/dev/sda bs=64K

Riferimenti