Questa guida è per chi vuole una copia completa di un disco, con il sistema operativo e tutte le partizioni. Serve prima di un intervento rischioso, per passare a un disco nuovo o per recuperare il possibile da un disco che dà errori. Lo strumento è dd, il programma a riga di comando che copia i dati a basso livello. Alla fine avrai un’immagine compressa del disco e saprai ripristinarla e clonare un disco su un altro. Saprai anche cosa controllare dopo la copia. La guida vale per i sistemi che usano il dd di GNU Coreutils, come Ubuntu e Debian. I comandi sono quelli della documentazione ufficiale, elencata in fondo.
Prima di tutto: dd non chiede conferma
dd sovrascrive il dispositivo indicato dopo of= senza chiedere conferma, e l’operazione non si può annullare. Se indichi il disco sbagliato ne perdi tutto il contenuto. Per tornare indietro c’è un solo modo: ripristinare un’immagine fatta in precedenza. La wiki di Ubuntu sul drive imaging raccomanda di controllare il dispositivo di destinazione due o anche tre volte.
- Scollega i dischi esterni che non c’entrano con l’operazione.
- Ricontrolla il nome del dispositivo subito prima di premere Invio, non solo all’inizio.
if=è il disco da cui si legge,of=quello su cui si scrive: se li inverti, la copia va nella direzione sbagliata.
Cosa serve
Questi sono i requisiti della wiki di Ubuntu:
- accesso esclusivo al disco da copiare, che quindi non deve essere montato;
- un ambiente da cui lavorare, per esempio un sistema live, se devi copiare il disco interno del computer;
- una destinazione (disco USB esterno, disco interno, cartella condivisa in rete) con almeno tanto spazio libero quanto è grande il disco da copiare: per un disco da 160 GB servono almeno 160 GB liberi;
- un file system di destinazione che accetti un unico file della dimensione dell’immagine.
dd copia tutto il disco, compresa la parte vuota. Su un disco da 100 GB con 10 GB di dati, il file non compresso pesa 100 GB.
Alcuni comandi iniziano con sudo. Altri sono riportati senza sudo, come nella documentazione, e vanno lanciati da una shell di root: dmesg, il recupero dei settori danneggiati, il ripristino, la clonazione diretta e il checksum. Nel recupero dei settori danneggiati, poi, sono la shell con < e > ad aprire la partizione e a creare il file, non dd.
Individuare il disco giusto
Prima di tutto devi sapere come si chiamano il disco da copiare e quello di destinazione. Apri un terminale ed elenca dischi e partizioni:
sudo fdisk -l
L’output elenca ogni disco con il suo nome, per esempio /dev/sda, seguito dalle partizioni. Guarda la dimensione: spesso basta a distinguere il disco interno da quello esterno.
Per riconoscere un disco esterno, la guida di installazione di Debian suggerisce di lanciare questo comando prima e dopo averlo collegato:
lsblk
Il dispositivo che compare solo nel secondo elenco è quello nuovo, con un nome del tipo /dev/sdX, dove X è una lettera da a a z. In alternativa, subito dopo il collegamento leggi i messaggi del kernel, come root:
dmesg
Secondo la wiki di Ubuntu sui dispositivi USB, gli ultimi messaggi riguardano il dispositivo appena collegato. Per lavorare sul disco intero usa il dispositivo del disco e non quello di una partizione: /dev/sdb, non /dev/sdb1.
Smontare le partizioni prima della copia
Mentre dd lavora, nessun programma deve scrivere sul disco da copiare o su quello da sovrascrivere, quindi le loro partizioni vanno smontate. Il disco da cui è avviato il sistema non si può smontare: per copiarlo avvia il computer da un sistema live. Per smontare, per esempio, /dev/sdb1:
sudo umount /dev/sdb1
Ripeti il comando per ogni partizione montata di quel disco. Poi rilancia lsblk: per quel disco la colonna dei punti di montaggio deve essere vuota.
Il disco su cui salverai l’immagine, invece, deve restare montato per tutto il backup. Quando copia e compressione sono finite, smontalo con il pulsante di espulsione del file manager. Aspetta che l’operazione sia completata prima di scollegarlo: la wiki di Ubuntu avverte che scollegare un disco senza smontarlo può far perdere dati o danneggiare il file system.
Creare l’immagine compressa del disco
L’esempio della wiki di Ubuntu legge tutto il disco /dev/sda e passa i dati a bzip2, che offre la massima compressione. Il file finisce su un disco esterno montato in /media/usb. Sul tuo sistema il percorso sarà probabilmente diverso: i dispositivi collegati vengono montati automaticamente in /media/<username>, e il percorso esatto lo leggi nell’output di lsblk. Adatta percorso e nome del disco al tuo caso:
sudo dd if=/dev/sda | bzip2 > /media/usb/image.bz2
L’immagine va salvata su un disco diverso da quello che stai copiando. La wiki dice che si può usare anche un altro formato, come gzip o zip, ma non riporta il comando. Alla fine dd stampa un riepilogo dei blocchi letti e scritti, dei byte copiati e della velocità. Ecco l’esempio del manuale di GNU Coreutils:
7287+1 records in
116608+0 records out
59703296 bytes (60 MB, 57 MiB) copied, 0.0427974 s, 1.4 GB/s
Nella notazione w+p, w indica i blocchi interi e p quelli parziali. Un blocco parziale non è un errore: vuol dire che l’operazione è riuscita ma ha trasferito meno dati della dimensione del blocco.
Recuperare una partizione con settori danneggiati
Se il disco ha settori illeggibili, il manuale di Coreutils mette a disposizione tre opzioni:
conv=noerrorfa continuaredddopo un errore di lettura;synccompleta con zeri ogni blocco letto fino alla dimensioneibs;iflag=fullblockfa accumulare addblocchi di input completi.
Così un blocco illeggibile occupa nell’immagine lo stesso spazio degli altri, ma contiene zeri. L’esempio salva la partizione /dev/sda1 nel file /mnt/rescue.img. Va lanciato da una shell di root:
dd conv=noerror,sync iflag=fullblock </dev/sda1 > /mnt/rescue.img
In /mnt deve essere montato un disco diverso da quello danneggiato, con spazio sufficiente. Le zone illeggibili resteranno piene di zeri, quindi alcuni file potrebbero risultare incompleti.
Ripristinare l’immagine sul disco
Per ripristinare si avvia un sistema live e si inverte la direzione della copia: bzcat decomprime il file e dd lo scrive sul disco indicato in of=. Tutto il contenuto del disco di destinazione viene sostituito. Prima di premere Invio, ricontrolla con lsblk che of= indichi il disco giusto. Il comando va lanciato come root:
bzcat /media/usb/image.bz2 | dd of=/dev/sda
L’immagine non deve trovarsi sul disco che stai ripristinando: in quel caso dd finirebbe per sovrascrivere il file stesso, rovinando sia l’immagine sia il disco. Dopo il ripristino il sistema non crea da solo i dispositivi delle partizioni (/dev/sda1, /dev/sda2): riavvia per farli rilevare.
Clonare un disco direttamente su un altro
Se non ti serve un file immagine, puoi copiare un disco intero su un altro in un solo passaggio. L’esempio della wiki di Ubuntu copia /dev/sda su /dev/sdb e va lanciato come root. Tutto quello che c’è su /dev/sdb viene cancellato, e se inverti i due nomi copi il disco di destinazione su quello che volevi salvare.
dd if=/dev/sda of=/dev/sdb
La FAQ di Debian riporta una variante del comando, pensata per scrivere un file immagine, per esempio una ISO, su una chiavetta. Al posto di <file> metti il file, al posto di <device> il disco intero. status=progress mostra l’avanzamento. oflag=sync fa completare tutte le scritture prima che il comando termini, così puoi togliere la chiavetta appena ha finito.
sudo dd if=<file> of=<device> bs=16M status=progress oflag=sync
Verificare la copia con un checksum
La FAQ di Debian propone un controllo per i supporti ottici: si leggono dal dispositivo solo i settori occupati dall’immagine e se ne calcola lo SHA512. Il risultato va confrontato con il checksum dell’immagine originale e deve essere uguale.
Prima ti servono i due valori numerici. Come spiega la FAQ, esegui /sbin/isosize -x <device>, con il dispositivo corretto al posto di <device>. Il comando restituisce il numero di settori e la loro dimensione: mettili in count= e in bs=. I byte letti devono corrispondere all’immagine ISO, non alla capacità totale del supporto. Poi lancia come root:
dd if=<device> count=<sector count> bs=<sector size> | sha512sum
Le pagine usate per questa guida descrivono questa verifica solo per le immagini ISO. Non spiegano come applicarla a un backup compresso come image.bz2.
Controllare UUID, fstab e bootloader dopo il ripristino
dd copia il disco byte per byte, quindi il clone ha gli stessi UUID dell’originale. Se lasci collegati entrambi i dischi, all’avvio due partizioni hanno lo stesso UUID e il sistema può non distinguerle. Prima di avviare il clone, quindi, spegni il computer e scollega il disco originale. Per vedere gli UUID attuali:
sudo blkid
Confronta l’elenco con l’output di sudo fdisk -l per capire quale partizione è quale. La wiki di Ubuntu dice che, se su un disco nuovo gli UUID sono cambiati, vanno aggiornati i punti di montaggio e il bootloader. Tocca questi file solo dopo aver verificato che gli UUID siano davvero cambiati. Per i punti di montaggio:
sudo nano /etc/fstab
In nano salvi con Ctrl+O e Invio ed esci con Ctrl+X. Il comando va lanciato dal sistema ripristinato: dal live apriresti l’fstab del live.
Per il bootloader la wiki, modificata l’ultima volta il 28 settembre 2015, indica il file /boot/grub/menu.lst. Quel file riguarda soltanto GRUB Legacy: aprilo solo se esiste già sul sistema ripristinato.
sudo nano /boot/grub/menu.lst
Con GRUB 2, il bootloader predefinito di Ubuntu, menu.lst non si usa. Non crearlo: nano aprirebbe un file nuovo senza alcun effetto sull’avvio. Dopo aver corretto gli UUID, rigenera invece la configurazione con sudo update-grub dal sistema ripristinato. Se il sistema non si avvia, bisogna entrarci dal live con una procedura chroot prima di aggiornare GRUB, che queste pagine non descrivono. Lanciare update-grub nel solo ambiente live non serve.
Se qualcosa va storto
- Dopo il ripristino le partizioni non compaiono: il sistema non crea da solo i loro dispositivi. Riavvia per farli rilevare.
- Immagine e disco rovinati durante il ripristino: succede se il file immagine si trova sul disco che stai sovrascrivendo. Tieni sempre l’immagine su un altro disco.
- La chiavetta non accetta scritture: secondo la guida Debian potrebbe essere necessario spostare l’interruttore di protezione dalla scrittura.
- Un disco USB dà problemi appena collegato: la wiki di Ubuntu consiglia di lanciare
dmesgsubito dopo il collegamento e di leggere gli ultimi messaggi del kernel.
Documentazione di riferimento
Pagine consultate il 30 settembre 2026. Riguardano Ubuntu e Debian: su altre distribuzioni i nomi dei dispositivi, i file di configurazione e la versione di dd possono essere diversi.
- Ubuntu Community Help Wiki — DriveImaging
- GNU Coreutils manual — dd invocation
- Debian — Domande ricorrenti sulle immagini per CD/DVD/USB
- Ubuntu Community Help Wiki — Mount/USB
- Debian Installation Guide — Preparing Files for USB Memory Stick Booting