« La commande dd » : différence entre les versions
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 == | ||
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) | |||
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),<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 /> | |||
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 = | = 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>
- source = données à copier;
- cible = endroit ou copier les données sources;
- bs = taille des blocs, de puissance 2, généralement égale à 512;
- skip = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture;
- seek = Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'écriture.
- 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
Unix DD Command and Image Creation
Lol 8 mars 2011 à 07:09 (CST)
Débutant