Comment utiliser la commande dd dans Linux

Dd Guide 00 Featured Image

dd est l’une des commandes les plus importantes dans Linux, principalement utilisée pour sauvegarder des disques durs et des partitions. Lorsqu’elle est utilisée correctement, dd peut être un outil puissant pour écrire des données d’une partition à une autre et effectuer différentes tâches avec des fichiers. Ici, nous vous montrons comment bien utiliser la commande dd.

Table des matières

  • L’histoire de dd
  • Opérandes de base
  • Création d’une image disque
  • Sauvegarde d’une image disque sur une partition
  • Création d’une image disque compressée
  • Spécification d’une taille de bloc
  • Effacement d’un disque dur
  • Création d’une clé USB bootable
  • Clonage de partitions spécifiques avec dd
  • Dumping du contenu d’un CD avec dd
  • Gravure du dump ISO sur CD
  • Questions fréquemment posées

Lisez aussi : 5 distributions Arch Linux plus faciles à installer et à utiliser

L’histoire de dd

La commande a été initialement développée aux Laboratoires Bell d’AT&T dans les années 1970 par un informaticien nommé Ken Thompson. Elle a été développée pour les systèmes basés sur Unix et a reçu un nom choisi en référence à une déclaration trouvée dans le langage de contrôle de tâches d’IBM, qui s’appelait “DD”. Il convient de noter que la syntaxe de la commande ressemble de près à une déclaration dans le langage de contrôle de tâches.

La commande a été conçue à l’origine comme un utilitaire pour convertir l’ASCII en EBCDIC et vice versa. Elle a été intégrée pour la première fois à une version d’Unix en 1974, avec la sortie de la 5ème édition du système d’exploitation.

dd a été appelé “destructeur de disque” en plaisantant dans la communauté Unix en raison de sa capacité à détruire des données sur des disques durs lorsqu’il est mal utilisé.

Lisez aussi : Comment chiffrer vos fichiers dans le cloud en utilisant Rclone

Opérandes de base

Maintenant que vous en savez un peu plus sur l’historique de la commande et ses capacités destructrices lorsqu’elle est mal utilisée, il est temps d’apprendre à tirer parti de tout ce qu’elle offre aux utilisateurs de différentes distributions Linux.

Tout d’abord, consultez le manuel en utilisant le drapeau --help :

dd --help

Dd Guide 01 Dd Print Help

Il y a deux opérandes pour la commande qui sont les plus couramment utilisées. Ce sont if et of, qui signifient “fichier d’entrée” et “fichier de sortie” respectivement. L’opérande if est utilisée pour représenter l’emplacement source, tandis que l’opérande of est utilisée pour représenter l’emplacement où vous avez l’intention de sauvegarder les données de l’emplacement d’entrée.

dd if= of=

Les emplacements source et de sortie les plus courants incluent les disques durs, les partitions et les images disque.

Avant d’utiliser la commande, il peut être utile d’utiliser l’utilitaire fdisk pour afficher les partitions de votre système. Cela peut facilement être fait en utilisant le drapeau -l de la commande :

sudo fdisk -l

Dd Guide 02 List Fdisk Partitions

Lisez aussi : 4 façons de cloner un disque dur entier sur Linux

Dans ce cas, if est utilisé pour représenter le disque “ /dev/sda “, et of représente le disque “ /dev/sdb “, où les données de “ /dev/sda “ seront sauvegardées :

dd if=/dev/sda of=/dev/sdb

Dd Guide 03 Duplicate Device

Création d’une image disque

L’un des meilleurs cas d’utilisation de la commande est la création d’images disque au format de fichier “.img”. Cela est extrêmement utile pour sauvegarder des données sur votre système basé sur Linux et est probablement le moyen le plus rapide et le plus simple de sauvegarder un disque dur entier.

La logique ici est principalement la même dans ce cas, avec l’opérande if représentant le disque “ /dev/sda “ et l’opérande of représentant un fichier “.img”, où les données du disque dur seront sauvegardées :

dd if=/dev/sda of=/tmp/image.img

Dd Guide 04 Dump Partition To Img

Lisez aussi : Le guide ultime des commandes Apt et Apt-Get

Sauvegarde d’une image disque sur une partition

Créer une image disque avec la commande est assez simple, mais il en va de même pour la version inversée de ce processus.

Dans ce scénario, notre fichier d’image disque agit comme le fichier d’entrée, et notre nouvelle partition agit comme le fichier de sortie. L’utilitaire sauvegarde les données de notre image disque sur notre partition “ /dev/sdb “ :

dd if=/tmp/image.img of=/dev/sdb

Dd Guide 05 Write Img To Device

Lisez aussi : Comment utiliser la commande ps dans Linux pour tuer un processus

Création d’une image disque compressée

Si vous créez une image disque d’un disque dur de taille complète, vous pouvez imaginer que la taille du fichier de l’image disque finale sera probablement assez grande. Pour cette raison, l’utilitaire dd a une fonctionnalité qui crée des images disque compressées.

Une image disque compressée peut être créée en utilisant la commande pipe |. Dans ce cas, elle est utilisée pour prendre le contenu du fichier d’entrée et effectuer la commande gzip avec un drapeau -c, le contenu étant emballé dans un fichier “.gz” :

dd if=/dev/sda | gzip -c > /tmp/image.gz

Dd Guide 06 Create Compressed Dump

Lisez aussi : Comment utiliser cURL pour le transfert de données en ligne de commande et plus encore

Spécification d’une taille de bloc

Vous pouvez également jouer avec la vitesse de l’opération de la commande dd. Cela peut être accompli en utilisant l’opérande bs, qui est utilisée pour représenter la taille du bloc. La taille du bloc représente le nombre d’octets que dd copie dans le fichier de sortie en une seule instance. Elle est représentée en multiples de 1024 octets, et la valeur par défaut est fixée à 512 octets. Plus la taille du bloc est élevée, plus les données seront rapidement sauvegardées dans le fichier de sortie.

Dans ce cas, nous fixons la taille du bloc à 2048 :

dd if=/dev/sda of=/tmp/image.img bs=2048

La taille du bloc peut également être spécifiée en kilooctets :

dd if=/dev/sda of=/tmp/image.img bs=2K

Dd Guide 07 Img Dump Modify Blocksize

Lisez aussi : Comment utiliser la commande lsof dans Linux pour lister les fichiers ouverts

Effacement d’un disque dur

dd peut également être utilisé pour effacer votre disque dur. Cela est accompli en lisant des zéros ou des caractères aléatoires depuis “ /dev/zero “ ou “ /dev/urandom “ et en les sauvegardant sur le disque dur/partition, ce qui écrase les données qui s’y trouvent. Cela est extrêmement utile lorsque vous voulez vous assurer que vos données ne peuvent pas être facilement récupérées après avoir vendu ou autrement disposé de votre disque dur.

Écraser un disque dur en utilisant des zéros :

dd if=/dev/zero of=/dev/sdb

Dd Guide 08 Zeroing Disk

Vous pouvez également écraser le périphérique en utilisant des caractères aléatoires :

dd if=/dev/urandom of=/dev/sdb

Dd Guide 09 Randomized Disk

Lisez aussi : Comment exécuter des commandes Bash en arrière-plan dans Linux

Création d’une clé USB bootable

La création de clés USB flash bootables à l’aide de fichiers “.iso” avec la commande est simple :

dd if=os.iso of=

Dd Guide 10 Write Image To Device

Clonage de partitions spécifiques avec dd

Une autre utilisation brillante de dd est le clonage de partitions actives sur votre système Linux. Contrairement à un fichier IMG, le clonage vous permet de créer une copie exacte d’une partition particulière et de l’utiliser immédiatement. Cela peut être utile si vous avez une configuration multi-disques et que vous souhaitez créer des partitions redondantes pour votre système.

Pour cloner la partition de “ /dev/sda4 “ à “ /dev/sdd1 “.

dd if=/dev/sda4 of=/dev/sdb1 conv=noerror,sync

Le paramètre conv vous permet d’inclure des options supplémentaires pour modifier le comportement de dd. Cela peut être aussi simple que de convertir un nom de fichier en majuscules ou quelque chose de complexe comme changer la propriété d’un bloc. Dans ce cas, j’utilise noerror et sync :

  • L’option “noerror” indique à dd de continuer à copier à travers un fichier de périphérique même s’il signale des erreurs de périphérique. Cela peut être utile si le périphérique où se trouve votre partition est déjà défectueux, car “noerror” garantit que dd copiera toutes les données récupérables dans cette partition.
  • L’option “sync” indique à dd de remplir chaque bloc de données entrant dans le tampon de copie. Ce que cela signifie, c’est que dd s’assurera que chaque bit de données qu’il peut copier est exactement le même entre la source et la destination. Cela vise à garantir l’intégrité des données de la partition que vous clonez.

Dd Guide 11 Strict Clone Partition

Lisez aussi : Comment utiliser la commande lp dans Linux pour imprimer des fichiers depuis le terminal

Dumping du contenu d’un CD avec dd

Il est également possible d’utiliser dd comme outil de dumping pour le contenu des disques. Semblable à un fichier IMG, vous pouvez le faire en utilisant un lecteur de disque comme entrée et l’extension .ISO comme sortie. Considérez l’exemple suivant :

dd if=/dev/cdrom of=/tmp/dump.iso conv=noerror,sync

Cette commande indiquera à dd de charger le périphérique CD-ROM et de copier son contenu dans un fichier ISO.

Dd Guide 12 Dump Cd Disc

Une fois terminé, vous pouvez utiliser la commande file pour vérifier si le fichier dumpé est une image ISO 9660 :

file /tmp/dump.iso

Gravure du dump ISO sur CD

Ensuite, vous pouvez utiliser dd pour créer des duplicatas du fichier ISO que vous venez de créer. Pour ce faire, vous devez insérer un disque vierge dans votre lecteur et utiliser “ /dev/cdrom “ comme fichier de sortie de dd. Avec cela, vous pouvez ensuite exécuter la commande suivante pour graver correctement le fichier ISO sur le disque :

dd if=/tmp/image.iso of=/dev/cdrom obs=32k seek=0

Cette commande n’essaie pas d’utiliser des contournements d’erreur ou des vérifications d’intégrité. Au lieu de cela, elle définit deux options spécifiques à l’écriture sur CD-ROM :

  • L’option “obs” définit la taille des blocs que dd va écrire sur le disque. Dans ce cas, la commande utilise 32 kilooctets comme base pour les transferts de médias optiques.
  • D’autre part, l’option “seek” indique à dd de définir le début du transfert à un bloc de données spécifique. Pour transférer correctement vers un CD-ROM, il est important de le définir à 0 afin que dd écrive immédiatement dans le premier secteur du disque.

Dd Guide 13 Burn Cd Disk

Lisez aussi : 8 invites Bash utiles et intéressantes

Questions fréquemment posées

Est-il possible de voir la progression d’une opération dd ?

Oui ! Il est incroyablement facile de regarder la progression d’une opération dd. Pour ce faire, il vous suffit d’inclure le paramètre status à la fin de votre commande dd :

dd if=/dev/sda4 of=/dev/sdd1 conv=noerror,sync status=progress

L’option “progress” indique à dd d’imprimer les blocs qu’il est en train de copier sur la sortie standard, ce qui vous permet effectivement de voir la progression de la commande. En plus de l’option “progress”, le paramètre status accepte également deux valeurs supplémentaires :

  • Noxfer : La valeur “noxfer” est similaire à “progress” mais elle n’imprime pas les informations de transfert globales à la fin de la commande. Cela peut être utile si vous utilisez des commandes dd dans le cadre d’un grand pipe UNIX.
  • None : La valeur “none” indique à dd de ne pas imprimer d’informations sauf les erreurs lorsqu’il s’exécute. Cela est utile si vous exécutez des tâches dd programmées telles que la création de fichiers IMG de sauvegarde pour des partitions actuellement actives.

Est-il acceptable de toujours définir une taille de bloc élevée pour accélérer les transferts ?

Non. Bien que définir une taille de bloc élevée accélère certainement le taux de transfert de dd, cela ne garantit pas que le périphérique sur lequel vous écrivez s’initialise correctement. Par exemple, définir une taille de bloc élevée pour des médias optiques tels qu’un CD-ROM ou un DVD-ROM peut entraîner des disques illisibles lors de la lecture sur un lecteur de disque.

Une bonne règle de base est d’utiliser des tailles de bloc élevées uniquement lors du dumping de médias tels que des disques et des clés USB. De plus, il est également bon de fixer la taille de bloc maximale à 2048 kilooctets seulement. Cela garantit que vous pouvez toujours remettre le contenu d’un disque sur un CD ou un DVD.

J’ai essayé de créer une clé USB bootable mais elle n’a pas démarré. dd ne fonctionne-t-il pas ?

Non ! La raison la plus probable pour laquelle elle n’a pas démarré est que le fichier que dd a copié sur la clé USB n’est pas un fichier bootable. Par exemple, écrire un installateur de CD sur une clé USB ne définira pas les drapeaux appropriés pour le rendre bootable.

Une façon de s’assurer qu’il est bootable est de vérifier ses propriétés via le programme file. Par exemple :

file /Downloads/ubuntu-21.10.iso

À partir de là, vous devez ensuite examiner les propriétés qui sont imprimées dans la sortie standard. Un fichier bootable doit être soit une image disque, soit un fichier ISO hybride.

Crédit d’image : Unsplash