« 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 156 : Ligne 156 :
== Sauvegarder un disque dur ou une partition dans une image compressée ==
== Sauvegarder un disque dur ou une partition dans une image compressée ==


dd if=/dev/sdX | gzip -c > /media/suportamovible/fichierimage.dd.gz
Les commandes suivantes permettent de sauvegarder dans un fichier compressé, puis de restaurer la partition "n" (valeur numérique) du disque "/dev/sdX" (lettre alphabétique).<br />
(peu importe le type de partition)


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 .
dd if=/dev/sdXn | gzip -c > /media/suportamovible/fichierimage_part_dd.gz


Pour restaurer le disque ainsi sauvegarder faire:
Dans cette commande, le programme "dd" lit par blocs (de 512 octets par défaut) le contenu de la partition "n" du disque "X" (/dev/sdXn),<br />
le flux de sortie du programme "dd" est connecté par un tube anonyme (|) au flux d'entrée du programme "gzip",<br />
qui va compresser ce flux retourner ce flux compressé par son flux de sortie (option "c") qui est redirigé par ">" vers le fichier "/media/suportamovible/fichierimage.ddpart.gz".<br /><br />


gzip -c -d /media/suportamovible/fichierimage.dd.gz | dd of=/dev/sdX
Pour restaurer la partition ainsi sauvegardée faire:


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).
gzip -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn
 
Dans cette commande, le programme "gzip" décompresse (option "d") le fichier "/media/suportamovible/fichierimage.ddpart.gz" et renvoie le résultat par son flux de sortie (option "c") qui est connecté par un tube anonyme (|) à l'entrée du programme "dd" dont la sortie (of=) se fera sur la partition "n" du périphérique "/dev/sdX".


= Références =
= Références =

Version du 14 mai 2013 à 12:51

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

Les commandes suivantes permettent de sauvegarder dans un fichier compressé, puis de restaurer la partition "n" (valeur numérique) du disque "/dev/sdX" (lettre alphabétique).
(peu importe le type de partition)

dd if=/dev/sdXn | gzip -c > /media/suportamovible/fichierimage_part_dd.gz 

Dans cette commande, le programme "dd" lit par blocs (de 512 octets par défaut) le contenu de la partition "n" du disque "X" (/dev/sdXn),
le flux de sortie du programme "dd" est connecté par un tube anonyme (|) au flux d'entrée du programme "gzip",
qui va compresser ce flux retourner ce flux compressé par son flux de sortie (option "c") qui est redirigé par ">" vers le fichier "/media/suportamovible/fichierimage.ddpart.gz".

Pour restaurer la partition ainsi sauvegardée faire:

gzip -cd /media/suportamovible/fichierimage_part_dd.gz | dd of=/dev/sdXn

Dans cette commande, le programme "gzip" décompresse (option "d") le fichier "/media/suportamovible/fichierimage.ddpart.gz" et renvoie le résultat par son flux de sortie (option "c") qui est connecté par un tube anonyme (|) à l'entrée du programme "dd" dont la sortie (of=) se fera sur la partition "n" du périphérique "/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) Débutant