Extrait de la page de man de dd :
“dd copie un fichier (par défaut, depuis l'entrée standard vers la sortie standard) en permettant de sélectionner la taille de bloc, et d'effectuer des conversions.”
Utilisée fréquemment, la commande dd est très simple d'utilisation, très puissante et… tout aussi dangereuse. Vérifiez toujours bien les commandes deux (trois ?) fois avant de les lancer.
LES COMMANDES QUI SUIVENT PEUVENT VOUS FAIRE PERDRE TOUTES LES INFORMATIONS CONTENUES DANS VOTRE MACHINE SI ELLES NE SONT PAS CONVENABLEMENT UTILISÉES. VOUS ÊTES PRÉVENUS!
NOTE: Pour pouvoir être copiée, déplacée, agrandie ou réduite, la partition source doit au préalable être “démountée” du système (voir “umount”).
La syntaxe d'une ligne de commandes utilisant dd se présente généralement sous cette forme:
dd if=<source> of=<cible> bs=<taille des blocs> skip= seek= conv=<conversion>
Arguments :
ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync.
Copier une partition d'un disque dur vers un partition d'un autre disque dur
Copie l'intégralité de la partition sda9 vers la partition sdb1 et ne pas interrompre la copie en cas d'erreurs.
dd if=/dev/sda9 of=/dev/sdb1 bs=4096 conv=noerror
noerror : Continuer même en cas d'erreur.
Remarque au sujet de l'UUID.
Copier une partition autre vers une partition copie aussi l'UUID puisqu'il est inscrit dans la partition même.\ Vous vous retrouveriez alors avec deux partitions qui ont le même UUID…
# blkid ... /dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2" /dev/sdb1: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
Il faut alors modifier l'UUID de la partition copiée pour ne pas avoir de conflit si la partition originale et sa copie sont accessibles au système :
# tune2fs -U random /dev/sdb1 # blkid /dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2" /dev/sdb1: UUID="75aa7a37-d2a2-4cf4-88f8-616067c7a684" TYPE="ext2"
Copie de l'intégralité (y compris le mbr) du disque sdg vers le disque sdh:
dd if=/dev/sdg of=/dev/sdh conv=noerror
dd if=/dev/sr0 of=/home/laurent/cd.iso bs=2048
Pour monter le fichier image ISO obtenu :
mkdir /mnt/cd mount -o loop -t iso9660 cd.iso /mnt/cd
Montage permanent par /etc/fstab :
/chemin_vers_iso/cd.iso /mnt/cd iso9660 rw,user,noauto 0 0
ATTENTION, COMMANDE DANGEREUSE!
Pour les paranos… La commande suivante remplie 7 fois de suite un périphérique avec des données aléatoires. Autant dire qu'il ne sera plus possible de récupérer quoi que ce soit sur ce périphérique…
for n in $(seq 7); do dd if=/dev/urandom of=/dev/sdc bs=8b; done
dd if=/dev/sda of=ChrgBoot.dd bs=440 count=1
Cette commande copiera les 440 premiers octets du disque dur dans un fichier.
dd if=/dev/sda of=MBR.dd bs=512 count=1
Cette commande copiera les 512 premiers octets du disque dur dans un fichier.
dd if=/dev/sda of=TablePart.dd bs=64 count=1 skip=446
Cette commande copiera les 512 premiers octets du disque dur dans un fichier.
pour restaurer la table de partition
dd if=TablePart.dd of=/dev/sda bs=64 count=1 seek=446
Cette commande copiera la table des partitions contenue dans le fichier TablePart.dd sur le disque /dev/sda
La ligne de commandes suivante permet de créer un fichier compressé, qui pourra être utilisé pour restaurer la partition “n” (“n” est une valeur numérique) du disque “/dev/sdX” (“X” est une lettre alphabétique). (peu importe le type de partition)
#dd if=/dev/sdXn | gzip -c > /media/suportamovible/fichierimage_part_dd.gz dd if=/dev/sdXn | pigz -c > /media/suportamovible/fichierimage_part_dd.gz # Avec taux de compression adapté automatiquement sudo dd if=/dev/sda | pv | zstd --adapt > image.dd.zst zstdcat image.dd.zst | pv | sudo dd of=/dev/sda )
Dans cette ligne de commandes, le programme “dd” lit par blocs (de 512 octets par défaut) le contenu de la partition “n” du disque “X” (/dev/sdXn). Le flux de sortie du programme “dd” est connecté par un tube anonyme (|) au flux d'entrée du programme “gzip”. “gzip” va compresser ce flux et le retourner par son flux de sortie (option “c”) qui sera re-dirigé par “>” vers le fichier “/media/suportamovible/fichierimage_part_dd.gz”. Si le fichier “/media/suportamovible/fichierimage_part_dd.gz” existait avant l'exécution de cette ligne de commandes, il serait “écrasé”.
Pour restaurer la partition ainsi sauvegardée faire :
#gzip -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn pigz -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn
Dans cette commande, le programme “gzip” dé-compresse (option “d”) le fichier “/media/suportamovible/fichierimage_part_dd.gz”. Le flux de sortie du programme “gzip” (option “c”) est connecté à un tube anonyme (|) qui est connecté à l'entrée du programme “dd”. La sortie (of=) du programme “dd” se fera sur la partition “n” du disque “X” (/dev/sdXn), et le contenu de cette partition sera écrasé et remplacé par le contenu du fichier sauvegardé par la ligne de commandes précédente.
zip -r - . | dd of=/dev/nrst0 obs=16k
sgdisk --zap-all -- /dev/sdX