Il comando dd copia e converte i file per consentirne il trasferimento da un tipo di supporto all'altro. Il comando dd ha vari operandi o azioni da eseguire.
Operando | Usato a |
---|---|
if={nome file} | Specificare il file da cui verranno letti i dati. |
di={nome file} | Specificare il file in cui verranno scritti i dati. |
bs={byte} | Specifica la dimensione totale del blocco da leggere e scrivere, in byte. I byte possono anche essere formattati in un modo più intuitivo, ad esempio 50 M per specificare 50 megabyte e 10 G per specificare 10 gigabyte. |
conteggio={blocchi} | Specificare il numero di blocchi da scrivere nel file di output dal file di input. |
stato={livello} | Specifica il livello di informazioni da stampare con errore standard:nessuno per eliminare tutto tranne i messaggi di errore, noxfer per eliminare le statistiche sui trasferimenti totali, avanzamento per visualizzare periodicamente le statistiche di trasferimento. |
Sintassi
La sintassi del comando dd è:
# dd [options] [operands]
Utilizzo di dd per i backup
È possibile utilizzare dd per eseguire un backup completo di una partizione di archiviazione. L'esempio seguente copia i dati da /dev/sda1 a /dev/sdb2:
# dd if=/dev/sda of=/dev/sdb
Usando dd, puoi anche creare un'immagine di un'unità e quindi clonare una seconda unità con essa:
# dd if=/dev/sda of=drive_image.iso # dd if=drive_image.iso of=/dev/sdb
dd Esempi di comandi
1. Per copiare un file:
# dd if=old.txt of=old.txt
2. Per leggere e scrivere byte specificati di un file alla volta:
# dd bs=1024 if=old.txt of=old.txt
3. Per convertire un file in un formato specificato:
# dd bs=1024 if=old.txt of=new.txt conv=ascii (from EBCDIC to ASCII) # dd bs=1024 if=old.txt of=new.txt conv=ebcdic (from ASCII to EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=ibm (from ASCII to alternate EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=block (pad oldline-terminated records with spaces to cbs-size) # dd bs=1024 if=old.txt of=new.txt conv=unblock (replace trailing spaces in cbs-size records with oldline) # dd bs=1024 if=old.txt of=new.txt conv=lcase (change upper case to lower case) # dd bs=1024 if=old.txt of=new.txt conv=excl (fail if the output old already exists) # dd bs=1024 if=old.txt of=new.txt conv=notrunc (do not truncate the output old) # dd bs=1024 if=old.txt of=new.txt conv=ucase (change lower case to upper case) # dd bs=1024 if=old.txt of=new.txt conv=swab (swap every pair of input bytes) # dd bs=1024 if=old.txt of=new.txt conv=noerror (continue after read errors) # dd bs=1024 if=old.txt of=new.txt conv=sync (pad every input block with NULs to ibs-size) # dd bs=1024 if=old.txt of=new.txt conv=fdatasync (physically write output old data before finishing) # dd bs=1024 if=old.txt of=new.txt conv=fsync (likewise, but also write metadata)
4. Per copiare solo il numero specificato di blocchi:
# dd count=1024 if=old.txt of=new.txt
5. Per copiare un file specificando un flag:
# dd if=old.txt of=new.txt oflag=append # dd if=old.txt iflag=directory of=new.txt oflag=directory # dd if=old.txt iflag=noatime of=new.txt oflag=append
6. Per convertire i byte specificati alla volta:
# dd cbs=1024 if=old.txt of=new.txt
7. Per leggere il numero specificato di byte alla volta:
# dd ibs=1024 if=old.txt of=new.txt
8. Per scrivere il numero specificato di byte alla volta:
# dd obs=1024 if=old.txt of=new.txt
9. Per saltare il numero specificato di blocchi all'inizio di o/p:
# dd seek=1024 if=old.txt of=new.txt
10. Per saltare il numero specificato di blocchi all'inizio di i/p:
# dd skip=1024 if=old.txt of=new.txt
11. Per eliminare le statistiche di trasferimento:
# dd status=noxfer if=old.txt of=new.txt
12. Per cancellare la tabella delle partizioni per un dispositivo:
# dd if=/dev/zero of=/dev/sda4 bs=512 count=1