C'est l'application
dd dont la fonction principale est de copier un bloc d'octets d'une source vers une destination.
dd s'affranchit des systèmes de fichier et traite des blocs. C'est donc très utile pour récupérer le contenu exact d'une partition, d'un disque, de la mémoire vive.
Il est aussi possible de générer un flux d'octets aléatoires ou de zéro pour effacer un disque.
Globalement la syntaxe est la suivante :
sudo dd if=/source/des/données of=/destination/des/données bs=taille/d/un/bloc count=/nombre/de/blocs skip=/nombre/de/blocs/sautés/sur/la/source seek=/nombre/de/blocs/sautés/sur/la/destination
exemple : Afficher la table des partitions principales d'un disque msdos
La table des partition commence au 446ème octet du premier secteur du disque /dev/sda et fait 64 octets
sudo dd if=/dev/sda bs=1 count=64 skip=446 | hexdump -C
source if=/dev/sda, c'est l'intégralité du disque sda
bs=1 : chaque bloc fait 1 octet
count=64 : ici on récupère 64 blocs (64 octets) qui correspondent aux 4 partitions principales de 16 octets décrivant une partition
skip=446 : la table des partitions commence au 446ème octet du disque
| hexdump -C : la destination étant omise, la sortir par défaut est l'écran, le "pipe" correspondant au caractère | (altgr+6) fait un traitement par hexdump du flux d'octets. hexdump -C affiche les valeurs des octets en hexadécimal et affiche les caractères ascii correspondants