Ceci est une ancienne révision du document !
Table des matières
dd : copier et convertir un disque ou fichier
La commande dd permet de copier des fichiers ou disque entier par blocs et même les convertir.
Cet outil très puissant doit être utilisé avec précaution.
Idéal pour sauvegarder le “mbr”, créer des “iso” …
Introduction
Pré-requis
Installation
Cette commande fait partie d'Ubuntu. Aucune installation nécessaire
Configuration
Utilisation
Syntaxe de base
$ sudo dd if=[fichier_source] of=[fichier_cible] [Options]
- if=fichier_source
- abréviation de Input File, source : un fichier, un répertoire, un blocs du disque, un périphérique…
- of=fichier_cible
- abréviation de Output File, emplacement de sortie, où l'on va écrire.
Options
- bs=taille_des_blocs
- abréviation de Block Size, taille des blocs pour copier les données, par défaut en octets, pour Ko ajouter un “K”, pour Mo ajouter un “M”…
- count=nombre_de_blocs
- nombre de blocs à copier, vous pouvez ajouter un “K” pour “1 000”, un “M” ajouter un “1 000 000”…
- skip=nombre_de_blocs_a_sauter
- nombre de blocs à sauter au début du fichier.
- ibs=taille_des_blocs_a_l'entrée
- taille des blocs en entrée en octets. Par défaut 512 octets. Nécessite obs.
- obs=taille_des_blocs_en sortie
- taille des blocs en sortie en octets. Par défaut 512 octets. Nécessite ibs.
- seek=nombre_de_blocs_a_sauter
- nombre de blocs à sauter au début du fichier dont la taille est fournie par ibs.
- conv=type_1,type_2
- Permet de faire une ou plusieurs conversions d'un type vers un autre.
-
Liste des types de conversion:
- - ascii
- ⇒ EBCDIC vers ASCII
- - ebcdic
- ⇒ ASCII vers EBCDIC
- - ibm
- ⇒ EBCDIC vers ASCII
- - lcase
- ⇒ Convertit en minuscules
- - noerror
- ⇒ continuer même s'il y a des erreurs de lecture
- - ucase
- ⇒ Convertit en majuscules
- - swab
- ⇒ Échanger par paire les octets lus en entrée
- - sync
- ⇒ Compléter chaque blocs d'entrée avec des zéros pour avoir la bonne taille de blocs en “ibs”
Exemples
- sauvegarder les 512 premiers octets (bs=512) du disque sda1, en une seule partie (count=1), dans le fichier boot.mbr :
$ sudo dd if=/dev/sda1 of=boot.mbr bs=512 count=1
- convertir en ascii le fichier /home/totoc en /home/totox :
$ sudo dd if=/home/totoc of=/home/totox conv=ascii
- découper le fichier fichier_a_découper en morceaux de 10Mo ; à chaque ligne, on fait 1000 blocs(count=1K) de 10Ko(bs=10K), pour sauvegarder en le fichier fichier_a_découper_XXXème_partie, à partir de la 2ème ligne on saute les parties déjà découpées avec skip=1K :
$ sudo dd bs=10K count=1K if=fichier_a_découper of=fichier_a_découper_1ère_partie $ sudo dd bs=10K count=1K skip=1K if=fichier_a_découper of=fichier_a_découper_2ème_partie $ sudo dd bs=10K count=1K skip=2K if=fichier_a_découper of=fichier_a_découper_3ème_partie $ sudo dd bs=10K count=1K skip=3K if=fichier_a_découper of=fichier_a_découper_4ème_partie $ sudo dd bs=10K count=1K skip=4K if=fichier_a_découper of=fichier_a_découper_5ème_partie