« La commande dd » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 154 : Ligne 154 :
Cette commande copiera les 64 dernier octets (skip=446) du fichier MBR_Plus_Table.image sur du disque  dur a partir de l'octet 447 ( seek=446 ).
Cette commande copiera les 64 dernier octets (skip=446) du fichier MBR_Plus_Table.image sur du disque  dur a partir de l'octet 447 ( seek=446 ).


== Sauvegarder d'un disque dur ou d'une partition ==
== Sauvegarder un disque dur ou une partition dans une image compressée ==


  dd if=/dev/sdX | gzip -c > /media/suportamovible/fichierimage.dd.gz  
  dd if=/dev/sdX | gzip -c > /media/suportamovible/fichierimage.dd.gz  


Cette commande fait un clone du disque(partition) sdX en le compressent dans un fichier , ce ci quelque soit l'OS ou le type de formatage des partitions .
Cette commande fait un clone du disque(partition) sdX en le compressant dans un fichier, peu importe l'OS ou le type de formatage des partitions .


Pour restaurer le disque ainsi sauvegarder faire:
Pour restaurer le disque ainsi sauvegarder faire:

Version du 12 mars 2012 à 12:54

Cet article est une ébauche. N'hésitez pas à contribuer ou à en discuter.

La commande dd.

Introduction:

Extrait de la page de man de dd :

"dd copie un fichier (par défaut, depuis l'entrée standard vers la sortie standard) en permettant de sélectionner la taille de bloc, et d'effectuer des conversions."

Utilisée fréquement, la commande dd est très simple d'utilisation, très puissante et... tout aussi dangereuse. Vérifiez toujours bien les commandes deux (trois ?) fois avant de les lancer.

LES COMMANDES QUI SUIVENT PEUVENT ÊTRE EXTRÊMEMENT DESTRUCTIVES SI ELLES NE SONT PAS CONVENABLEMENT UTILISÉES. VOUS ÊTES PRÉVENUS!

Syntaxe

La commande dd se présente généralement sous cette forme:

dd if=<source> of=<cible> bs=<taille des blocs> skip= seek= conv=<conversion>
  1. source = données à copier;
  2. cible = endroit ou copier les données sources;
  3. bs = taille des blocs, de puissance 2, généralement égale à 512;
  4. skip = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture;
  5. seek = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'écriture.
  6. conv = Modifier le fichier comme indiqué par l'argument conversion, qui peut prendre les valeurs suivantes (pas d'espace autour des virgules lorsque plusieurs arguments sont fournis) :
ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync.

Utilisation

Copier une partition de disque dur sur un autre disque dur

Copie l'intégralité de la partition sda9 vers la partition sdb1, ne pas s'arrếter sur les erreurs de lecture.

dd if=/dev/sda9 of=/dev/sdb1 bs=4096 conv=notrunc,noerror

256000+0 enregistrements lus
256000+0 enregistrements écrits
1048576000 octets (1,0 GB) copiés, 30,778 s, 34,1 MB/s

notrunc = Ne pas limiter la taille du fichier de sortie.

noerror = Continuer même après des erreurs de lecture.

Remarque au sujet de l'UUID.

Copier une partition vers une autre copie aussi son UUID. Vous vous retrouvez alors avec deux partitions qui portent le même numéro...

# blkid
...
/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
/dev/sdb1: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"

Il faut alors générer un nouveau numéro pour ne pas avoir de conflit (partition démontée...):

# tune2fs -U random /dev/sdb1
# blkid
/dev/sda9: UUID="a5355774-2e6b-45fe-8993-0f23602c1616" TYPE="ext2"
/dev/sdb1: UUID="75aa7a37-d2a2-4cf4-88f8-616067c7a684" TYPE="ext2"

Cloner un disque dur en entier

Copie de l'intégralité (y compris le mbr) du disque sdg vers le disque sdh:

dd if=/dev/sdg of=/dev/sdh conv=notrunc,noerror

4030464+0 enregistrements lus
4030464+0 enregistrements écrits
2063597568 octets (2,1 GB) copiés, 1160,41 s, 1,8 MB/s

Réaliser l'image ISO d'un CD

dd if=/dev/sr0 of=/home/laurent/cd.iso bs=2048 conv=notrunc

737+0 enregistrements lus
737+0 enregistrements écrits
1509376 octets (1,5 MB) copiés, 3,3215 s, 454 kB/s

Pour monter l'image obtenue:

# mkdir /mnt/cd
# mount -o loop -t iso9660 cd.iso /mnt/cd

Insertion permanente dans fstab:

/chemin_vers_iso/cd.iso   /mnt/cd  iso9660 rw,user,noauto 0 0

Effacer un lecteur

ATTENTION, COMMANDE DANGEREUSE!

Pour les paranos... La commande suivante remplie 7 fois de suite un périphérique avec des données aléatoires. Autant dire qu'il ne sera plus possible de récupérer quoi que ce soit sur ce périphérique...

for n in `seq 7`; do dd if=/dev/urandom of=/dev/sdc bs=8b conv=notrunc; done

dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 37,0691 s, 6,9 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 37,1506 s, 6,9 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 36,6351 s, 7,0 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 36,4881 s, 7,0 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 36,4908 s, 7,0 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 36,5277 s, 7,0 MB/s
dd: écriture de « /dev/sdc »: Aucun espace disponible sur le périphérique
62465+0 enregistrements lus
62464+0 enregistrements écrits
255852544 octets (256 MB) copiés, 36,897 s, 6,9 MB/s

Sauvegarder le MBR d'un disque dur

dd if=/dev/sda of=MBR.image bs=446 count=1

1+0 enregistrements lus
1+0 enregistrements écrits
446 octets (446 B) copiés, 3,0622e-05 s, 14,6 MB/s

Cette commande copiera les 446 premiers octets du disque dur dans un fichier.

Sauvegarder la table de partition d'un disque dur

dd if=/dev/sda of=MBR_Plus_Table.image bs=512 count=1
1+0 enregistrements lus
1+0 enregistrements écrits
512 octets (512 B) copiés, 7,4232e-05 s, 6,9 MB/s

Cette commande copiera les 512 premiers octets du disque dur dans un fichier.

pour restaurer la table de partition

dd if=MBR_Plus_Table.image of=/dev/sda bs=1 count=64 skip=446 seek=446 
64+0 enregistrements lus
64+0 enregistrements écrits
64 octets (64 B) copiés, 0,00132602 s, 48,3 kB/s

Cette commande copiera les 64 dernier octets (skip=446) du fichier MBR_Plus_Table.image sur du disque dur a partir de l'octet 447 ( seek=446 ).

Sauvegarder un disque dur ou une partition dans une image compressée

dd if=/dev/sdX | gzip -c > /media/suportamovible/fichierimage.dd.gz 

Cette commande fait un clone du disque(partition) sdX en le compressant dans un fichier, peu importe l'OS ou le type de formatage des partitions .

Pour restaurer le disque ainsi sauvegarder faire:

gzip -c -d /media/suportamovible/fichierimage.dd.gz | dd of=/dev/sdX

Cette commande décompresse (gzip -c -d) le fichier vers (|) l'entrée standard de dd qui le restaure sur le périphérique (of=/dev/sdX).

Références

Page de man

Unix DD Command and Image Creation

The real dd command


Lol 8 mars 2011 à 07:09 (CST)