Aperçu
dd est connu pour être l'acronyme de 'disk dump' ou 'data duplicator' et fonctionne en lisant et écrivant des données par blocs. Il lit les données du fichier d'entrée (if) et les copie vers le fichier de sortie (of), tout en permettant l'application de diverses conversions (conv) et options de taille de bloc (bs).
Fonctionnalités principales
- Création et restauration d'images disque/partition
- Création de médias amorçables
- Redimensionnement de fichiers et initialisation de contenu
- Conversion de données (par exemple, conversion majuscules/minuscules)
Options principales
La commande dd permet une manipulation de données sophistiquée grâce à diverses options. La spécification des fichiers d'entrée (if) et de sortie (of) est particulièrement importante, et la taille du bloc (bs) et le nombre de blocs à copier (count) contrôlent la portée de l'opération.
Spécification d'entrée/sortie
Taille et nombre de blocs
Conversion et statut
Commande générée :
Essayez de combiner les commandes.
Description:
`dd` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
La commande dd est puissante, mais une mauvaise utilisation peut entraîner une perte de données grave. Les exemples ci-dessous montrent des utilisations courantes, mais lors de l'application sur des disques système réels, il est essentiel d'effectuer une sauvegarde et de procéder avec prudence.
Création d'un fichier factice de 100 Mo
dd if=/dev/zero of=dummy.img bs=1M count=100
Lit 100 blocs de 1 Mo depuis /dev/zero et crée le fichier 'dummy.img'.
Sauvegarde d'une partition de disque (nécessite une attention particulière)
dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress
Sauvegarde le contenu complet de la partition /dev/sda1 dans le fichier 'sda1_backup.img'. Affiche la progression avec 'status=progress'. **Vérifiez très attentivement le chemin du périphérique de destination.**
Remplir le contenu d'un fichier avec des zéros (effacement sécurisé)
dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc
Écrase le contenu du fichier 'myfile.txt' existant avec des zéros. 'conv=notrunc' maintient la taille du fichier.
Création d'une clé USB amorçable à partir d'une image ISO (très prudent)
dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress conv=fsync
Copie le fichier 'ubuntu.iso' sur le périphérique USB '/dev/sdb' pour le rendre amorçable. **Assurez-vous de vérifier le chemin du périphérique spécifié dans 'of'. Une spécification incorrecte peut endommager le disque système.** 'conv=fsync' garantit que toutes les données sont complètement écrites sur le disque.
Copie d'une partie spécifique d'un fichier
dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0
Lit 100 octets à partir du 51ème octet du fichier 'input.txt' et les copie au début du fichier 'output.txt'. (Comme bs=1, skip/seek sont en octets)
Conseils et précautions
La commande dd est très puissante, il faut donc être particulièrement prudent lors de son utilisation. Spécifier des périphériques ou des fichiers incorrects pour les options `if` et `of` peut endommager les données système.
Précautions clés
- **Vérification de la destination** : Vérifiez plusieurs fois les chemins spécifiés dans `if` et `of`. Les fichiers de périphérique comme `/dev/sda` peuvent être particulièrement critiques.
- **Progression** : Utilisez l'option `status=progress` pour vérifier la progression de la tâche en temps réel. C'est utile pour les opérations sur de gros volumes.
- **Taille du bloc** : L'option `bs` a un impact significatif sur les performances. Généralement, 1M, 4M, 8M sont efficaces.
- **Risque de perte de données** : `dd` peut écraser des données sans avertissement. Par conséquent, lors de l'utilisation sur des disques ou des partitions contenant des données importantes, effectuez toujours une sauvegarde au préalable.
Utilisation avec la commande pv
La commande `dd` elle-même a une indication de progression limitée. L'utilisation de la commande `pv` (Pipe Viewer) permet de visualiser une progression plus détaillée, la vitesse de transfert et le temps d'achèvement estimé. Si `pv` n'est pas installé, vous devez d'abord l'installer. (Ex: `sudo apt install pv` ou `sudo yum install pv`) **Exemple d'utilisation :** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`