Introduction aux capacités de dd
Véritable outil de référence pour les administrateurs système sous Linux, l’utilitaire dd s’avère incontournable pour cloner des volumes de stockage, initialiser des fichiers de test ou orchestrer des copies brutes de bas niveau. Ce tutoriel pratique détaille le fonctionnement de ses paramètres clés (bs, count, status=progress, conv, oflag) à travers des cas d’usage réels exécutés dans un terminal Ubuntu.
1. Syntaxe fondamentale : flux d’E/S et dimensionnement des blocs (bs, count)
Afin de manipuler les fichiers sans risque pour l’intégrité de vos disques, isolez d’abord votre environnement d’expérimentation dans un dossier dédié via la commande mkdir -p /tmp/dd_demo && cd /tmp/dd_demo.

Conçu pour traiter les données bloc par bloc, dd autorise la lecture et l’écriture directe aussi bien sur des fichiers classiques que sur des périphériques en mode bloc. Générons un fichier fictif sample_10m.img de 10 Mo en extrayant dix segments consécutifs de 1 Mo depuis le flux de zéros /dev/zero.
⚙️ [Paramètres essentiels]
if=FILE : chemin de la source en lecture (fichier ou périphérique d’entrée).of=FILE : destination cible où écrire le flux binaire.bs=BYTES : volume unitaire des blocs alloués à chaque cycle de transfert.count=N : quantité totale de blocs successifs à copier.status=LEVEL : niveau de verbosité et suivi dynamique de l’opération (ex. progress).conv=CONVS : filtres de conversion ou directives de synchronisation matérielle appliqués au flux (ex. sync, fdatasync).

Contrôlez ensuite la création et la taille exacte du fichier produit au moyen de ls -lh sample_10m.img.

2. Suivre les transferts volumineux en direct avec status=progress
Repositionnez-vous dans le répertoire de démonstration à l’aide de cd /tmp/dd_demo.

Par défaut, l’outil s’exécute de façon silencieuse, ce qui peut prêter à confusion lors du clonage de gros volumes. L’ajout du paramètre status=progress comble ce manque en affichant en temps réel le débit d’écriture, le temps écoulé et le volume déjà transféré pendant la création de notre image de 100 Mo nommée sample_100m.img.

Vérifiez l’allocation effective des 100 Mo sur l’espace de stockage avec la commande ls -lh sample_100m.img.

3. Altération de contenu et intégrité des flux : la directive conv
Reprenez place dans le répertoire expérimental en exécutant cd /tmp/dd_demo.

Préparez un fichier source textuel composé de minuscules pour ce test de manipulation de chaîne avec l’instruction echo 'hello linux ubuntu dd command tutorial' > input.txt.

L’argument conv=ucase ordonne à dd de convertir à la volée l’ensemble des lettres en majuscules avant de les stocker dans output_upper.txt. L’emploi simultané de status=none désactive les métriques habituelles pour limiter la sortie au strict nécessaire.

Affichez le résultat dans votre console via cat output_upper.txt pour constater la conversion intégrale en capitales.

4. Évaluer les débits d’écriture réels : contournement du cache (oflag=direct) et nettoyage
Basculez de nouveau dans l’espace de test en utilisant cd /tmp/dd_demo.

Lors des opérations d’écriture, le noyau Linux utilise la mémoire vive comme mémoire tampon (page cache), ce qui peut fausser les mesures de vitesse du matériel. L’utilisation du drapeau oflag=direct permet d’écrire directement sur le support de stockage sans solliciter ce cache intermédiaire. Associée à status=progress, cette écriture de 50 Mo dans bench_test.img donne un aperçu précis des performances brutes en écriture.

Une fois ces manipulations terminées, supprimez l’ensemble des fichiers temporaires à l’aide de la commande rm -rf /tmp/dd_demo.

Ce guide illustre la souplesse offerte par dd sous Ubuntu pour administrer des fichiers et évaluer la bande passante de vos disques. Compte tenu de sa puissance, vérifiez systématiquement le chemin du fichier ou périphérique de destination (of) avant chaque validation pour éviter tout écrasement accidentel.