logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:dd [30/12/2011 10:05]
smolski
doc:systeme:dd [15/02/2019 21:35]
smolski [Créer une clé installation debian bootable] lien vers le tuto
Ligne 1: Ligne 1:
-======dd=======+===== dd ======
  
-**ATTENTION !** La commande dd est très utile pour la sauvegarde de données, mais **elle peut avoir des effets désastreux si vous ne faites ​pas trés attention à ce que vous faites**!+  * Objet : dd 
 +  * Niveau requis : {{tag>​débutant avisé}} 
 +  * Commentaires : //Copier tout ou partie d'un disque par blocs d'​octets. // 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) 
 +  * Suivi : 
 +    * Création par [[user>​deuchdeb]] le 09-07-2010 
 +    * Testé par [[user>​deuchdeb]] le 02-09-2010 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=2770 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 + 
 + 
 + 
 +<note warning>**ATTENTION !** La commande dd est très utile pour la sauvegarde de données, mais **elle peut avoir des effets désastreux si vous ne portez ​pas très attention à ce que vous faites**!</​note>​
  
 =====Introduction===== =====Introduction=====
Ligne 11: Ligne 22:
  
 //On peut utiliser dd pour bien d'​autres choses : recherche dans les fichiers effacés, recherche dans la mémoire vive, création de disque virtuel etc...// //On peut utiliser dd pour bien d'​autres choses : recherche dans les fichiers effacés, recherche dans la mémoire vive, création de disque virtuel etc...//
 +
  
 ===== Les bases ===== ===== Les bases =====
Ligne 26: Ligne 38:
 ===== Copier une partition de disque dur sur un autre disque dur ===== ===== Copier une partition de disque dur sur un autre disque dur =====
  
-<​note>​ Remplacer //sda1, sda2// par les valeurs qui correspondent à votre système +<​note>​ Remplacer //sda2, sdb2// par les valeurs qui correspondent à votre système ​: par exemple: //hdb1, hda1 ect...//</​note>​
-Example: //hdb1, hda1 ect...//</​note>​+
  
-<​code>​+<​code ​root>
 dd if=/​dev/​sda2 of=/​dev/​sdb2 bs=4096 conv=notrunc,​noerror dd if=/​dev/​sda2 of=/​dev/​sdb2 bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 39: Ligne 50:
 ===== Cloner un disque dur en entier ===== ===== Cloner un disque dur en entier =====
  
-<​code>​+<​code ​root>
 dd if=/dev/sda of=/dev/sdb conv=notrunc,​noerror dd if=/dev/sda of=/dev/sdb conv=notrunc,​noerror
 </​code>​ </​code>​
 +  * **notrunc** signifie « ne pas tronquer le fichier en sortie ».
 +  * **noerror** signifie « de continuer en cas d'​erreur ». Normalement,​ **dd** s'​arrête en cas d'​erreur.\\ Si vous vous interrogez sur un disque dur, si vous vous demandez s'il fonctionne ou pas, vous pouvez tenter de l'​utiliser,​ à titre de test, comme lecteur source de la commande dd. Vous devriez obtenir une erreur s'il ne fonctionne pas.\\ Les lecteurs cibles en revanche doivent être vraiment en très mauvais état pour provoquer une erreur due à dd.
  
-**notrunc** signifie «ne pas tronquer le fichier en sortie» (voir [[#​notrunc]] pour plus de détails). +<note warning>​ATTENTION ! Il faut que les disques soient au moins de même volume ​pour le clonage.</​note>​
- +
-**noerror** signifie de continuer en cas d'​erreur. Normalement,​ dd s'​arrête en cas d'​erreur. Si vous vous interrogez sur un disque dur, si vous vous demandez s'il fonctionne ou pas, vous pouvez tenter de l'​utiliser,​ à titre de test, comme lecteur source de la commande dd. Vous devriez obtenir une erreur s'il ne fonctionne pas. Les lecteurs cibles en revanche doivent être vraiment en très mauvais état pour provoquer une erreur due à dd. +
  
 +IMPORTANT: Les disques ne doivent pas être montés!!Utiliser un système live pour travailler.
 ===== Créer un disque de sauvegarde ===== ===== Créer un disque de sauvegarde =====
  
 Copier son disque de travail en cours sda vers le disque sdb. Copier son disque de travail en cours sda vers le disque sdb.
  
-<​code>​+<​code ​root>
 dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,​noerror dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 58: Ligne 69:
 Si je détruis l'​installation sur sda, je n'ai qu'à booter avec un CD DebianLive et copier sdb vers sda : Si je détruis l'​installation sur sda, je n'ai qu'à booter avec un CD DebianLive et copier sdb vers sda :
  
-<​code>​+<​code ​root>
 dd if=/dev/sdb of=/dev/sda bs=4096 conv=notrunc,​noerror dd if=/dev/sdb of=/dev/sda bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
 +
  
 Je veux copier ma partion root dans mon home  Je veux copier ma partion root dans mon home 
-<​code>​+<​code ​root>
 dd if=/​dev/​sda2 (root) of=/​home/​user/​root.img bs=4096 conv=notrunc,​noerror dd if=/​dev/​sda2 (root) of=/​home/​user/​root.img bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 69: Ligne 81:
 pour réaliser un backup de root faire : pour réaliser un backup de root faire :
  
-<​code>​+<​code ​root>
 dd if=/​home/​user/​root.img of=/​dev/​sda2 (root) bs=4096 conv=notrunc,​noerror dd if=/​home/​user/​root.img of=/​dev/​sda2 (root) bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 75: Ligne 87:
 //Remettre l'​image de root dans la partition root si vous avez semé la pagaille et ne pouvez plus lancer le serveur X, ou éditer /etc/fstab, et ne trouvez pas ce que vous avez fait de mal. Cela ne prend que quelques minutes pour restaurer une partition root de 15 Go depuis un fichier image.// //Remettre l'​image de root dans la partition root si vous avez semé la pagaille et ne pouvez plus lancer le serveur X, ou éditer /etc/fstab, et ne trouvez pas ce que vous avez fait de mal. Cela ne prend que quelques minutes pour restaurer une partition root de 15 Go depuis un fichier image.//
  
 +===== Créer une clé installation debian bootable =====
  
 +Voir le tuto : \\
 +[[doc:​install:​usb-boot|Cle USB Installation debian]]
 ===== Copier une partition de disque dans un fichier placé sur une partition différente ===== ===== Copier une partition de disque dans un fichier placé sur une partition différente =====
  
 <note warning>​Attention!! Ne pas copier une partition sur la même partition.</​note>​ <note warning>​Attention!! Ne pas copier une partition sur la même partition.</​note>​
  
-<​code>​+<​code ​user>
 dd if=/​dev/​sdb2 of=/​home/​user/​partition.image bs=4096 conv=notrunc,​noerror dd if=/​dev/​sdb2 of=/​home/​user/​partition.image bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 86: Ligne 101:
 Cela créera un fichier qui est l'​exacte réplique de la partition sdb2. Vous pouvez remplacer par hdb, sda, hda ou toute autre désignation de votre disque. Ou : Cela créera un fichier qui est l'​exacte réplique de la partition sdb2. Vous pouvez remplacer par hdb, sda, hda ou toute autre désignation de votre disque. Ou :
  
-<​code>​+<​code ​user>
 dd if=/​dev/​sdb2 ibs=4096 | gzip > partition.image.gz conv=noerror dd if=/​dev/​sdb2 ibs=4096 | gzip > partition.image.gz conv=noerror
 </​code>​ </​code>​
Ligne 92: Ligne 107:
 Crée une archive gzip de la partition complète. Pour la restauration,​ utiliser : Crée une archive gzip de la partition complète. Pour la restauration,​ utiliser :
  
-<​code>​+<​code ​user>
 dd if=/​dev/​sdb2 ibs=4096 | gunzip > partition.image.gz conv=noerror dd if=/​dev/​sdb2 ibs=4096 | gunzip > partition.image.gz conv=noerror
 </​code>​ </​code>​
Ligne 98: Ligne 113:
 Pour bzip2 (plus lent, plus petit), remplacer par bzip2 et bunzip2, et nommer le fichier Pour bzip2 (plus lent, plus petit), remplacer par bzip2 et bunzip2, et nommer le fichier
  
-<​code>​+<​code ​user>
 .bz2 .bz2
 </​code>​ </​code>​
Ligne 104: Ligne 119:
 ===== Restaurer une partition de disque depuis un fichier image ===== ===== Restaurer une partition de disque depuis un fichier image =====
  
-<​code>​+<​code ​user>
 dd if=/​home/​user/​partition.image of=/​dev/​sdb2 bs=4096 conv=notrunc,​noerror dd if=/​home/​user/​partition.image of=/​dev/​sdb2 bs=4096 conv=notrunc,​noerror
 </​code>​ </​code>​
Ligne 116: Ligne 131:
 ==== Copier une disquette sur le disque dur ==== ==== Copier une disquette sur le disque dur ====
  
-<​code>​+<​code ​root>
 dd if=/dev/fd0 of=/​home/​user/​floppy.image bs=2x80x18b conv=notrunc dd if=/dev/fd0 of=/​home/​user/​floppy.image bs=2x80x18b conv=notrunc
 </​code>​ </​code>​
Ligne 122: Ligne 137:
 ou ou
  
-<​code>​+<​code ​root>
 dd if=/dev/fd0 of=/​home/​user/​floppy.image conv=notrunc dd if=/dev/fd0 of=/​home/​user/​floppy.image conv=notrunc
 </​code>​ </​code>​
Ligne 137: Ligne 152:
  
 Faire : Faire :
-<​code>​+<​code ​user>
 dd if=/​home/​user/​floppy.image of=fd0 bs=2x80x18b conv=notrunc dd if=/​home/​user/​floppy.image of=fd0 bs=2x80x18b conv=notrunc
 </​code>​ </​code>​
- 
- 
  
 ===== Sauvegarde de disquettes sur disque dur ===== ===== Sauvegarde de disquettes sur disque dur =====
Ligne 147: Ligne 160:
 Je sauvegarde toutes mes disquettes sur disque dur. Les disquettes ne sont pas éternelles,​ aussi je fais : Je sauvegarde toutes mes disquettes sur disque dur. Les disquettes ne sont pas éternelles,​ aussi je fais :
  
-<​code>​+<​code ​user>
 dd if=/dev/fd0 of=/​home/​sam/​disquettes/​backup.bin conv=notrunc dd if=/dev/fd0 of=/​home/​sam/​disquettes/​backup.bin conv=notrunc
 </​code>​ </​code>​
Ligne 153: Ligne 166:
 Si ma disquette défaille, je peux faire des copies en nombre illimité : Si ma disquette défaille, je peux faire des copies en nombre illimité :
  
-<​code>​+<​code ​user>
 dd if=/​home/​sam/​disquettes/​backup.bin of=/dev/fd0 conv=notrunc dd if=/​home/​sam/​disquettes/​backup.bin of=/dev/fd0 conv=notrunc
 </​code>​ </​code>​
Ligne 159: Ligne 172:
  
 ===== Les Options ===== ===== Les Options =====
-**if**=fichier\\ 
-Lire les données depuis le fichier indiqué plutôt que depuis l'​entrée standard. 
- 
-**of**=fichier\\ 
-Écrire les données dans le fichier mentionné, et non pas sur la sortie standard. Si conv=notrunc n'est pas indiqué, le fichier est initialement tronqué à la taille spécifiée par seek= (0 octets si seek= n'est pas fourni). 
- 
-**ibs**=nombre\\ 
-Lire le nombre indiqué d'​octets en une fois. Par défaut 512. 
- 
-**obs**=nombre\\ 
-Écrire le nombre indiqué d'​octets en une fois. Par défaut 512. 
- 
-**bs**=nombre\\ 
-Lire et écrire le nombre indiqué d'​octets en une fois. A priorité sur ibs et obs. (et indiquer bs n'est pas équivalent à indiquer la\\ 
-même valeur pour ibs et obs du moins lorsqu'​aucune autre conversion que sync, noerror et notrunc n'est indiquée, car cela\\ 
-indique que chaque bloc d'​entrée doit être copié dans un bloc de sortie indépendant,​ sans regrouper les blocs plus courts).\\ 
- 
-**cbs**=nombre\\ 
-Indique la taille des blocs pour les conversion block et unblock. 
- 
-**skip**=nombre\\ 
-Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture. 
- 
-**seek**=nombre\\ 
-Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'​écriture. 
- 
-**count**=nombre\\ 
-Copier seulement le nombre indiqué de blocs (dont la taille est fournie par ibs), et non pas tout jusqu'​à la fin du fichier. 
- 
-**conv**=conversion[,​conversion]...\\ 
-Modifier le fichier comme indiqué par l'​argument conversion, qui peut prendre les valeurs suivantes (pas d'​espace autour desvirgules lorsque plusieurs arguments sont fournis) :\\ 
-**ascii** \\ 
-Convertir l'​EBCDIC en ASCII. 
- 
-**ebcdic**\\ 
-Convertir l'​ASCII en EBCDIC. 
- 
-**ibm**\\ 
- ​Convertir l'​ASCII en EBCDIC IBM. 
- 
-**block** \\ 
-Compléter les blocs se terminant par un saut de ligne avec des espaces, jusqu'​à atteindre la taille mentionnée par 
-cbs. 
- 
-**unblock**\\ 
-Remplacer les espaces en fin de blocs (de taille cbs) par un saut de ligne. 
- 
-**lcase**\\ 
- ​Transformer les majuscules en minuscules. 
- 
-**ucase** \\ 
-Transformer les minuscules en majuscules. 
- 
-**swab**\\ 
- ​Échanger par paire les octets lus en entrée. Contrairement à la commande dd d'​Unix,​ la version GNU fonctionne\\ 
-également lorsqu'​on copie un nombre impair d'​octets. Dans ce cas, le dernier octet est tout simplement copié.\\ 
-[POSIX 1003.2b, interprétations PASC 1003.2 #3 and #4] 
- 
-**noerror**\\ 
-Continuer même après des erreurs de lecture. 
- 
-**notrunc**\\ 
-Ne pas limiter la taille du fichier de sortie. 
  
-**sync** Compléter chaque bloc lu avec des NULs pour atteindre la taille ibs.+^Option ​ ^Utilisation ​ ^ 
 +|**if**=fichier ​ |Lire les données depuis le fichier indiqué plutôt que depuis l'​entrée standard. ​ | 
 +|**of**=fichier ​ |Écrire les données dans le fichier mentionné, et non pas sur la sortie standard. Si conv=notrunc n'est pas indiqué, le fichier est initialement tronqué à la taille spécifiée par seek= (0 octets si seek= n'est pas fourni). ​ | 
 +|**ibs**=nombre ​ |Lire le nombre indiqué d'​octets en une fois. Par défaut 512.  | 
 +|**obs**=nombre ​ |Écrire le nombre indiqué d'​octets en une fois. Par défaut 512.  | 
 +|**bs**=nombre ​ |Lire et écrire le nombre indiqué d'​octets en une fois. A priorité sur ibs et obs. (et indiquer bs n'est pas équivalent à indiquer la même valeur pour ibs et obs du moins lorsqu'​aucune autre conversion que sync, noerror et notrunc n'est indiquée, car cela indique que chaque bloc d'​entrée doit être copié dans un bloc de sortie indépendant,​ sans regrouper les blocs plus courts). ​ | 
 +|**cbs**=nombre ​ |Indique la taille des blocs pour les conversion block et unblock. ​ | 
 +|**skip**=nombre ​ |Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de la lecture. ​ | 
 +|**seek**=nombre ​ |Ignorer le nombre indiqué de blocs (dont la taille est fournie par ibs) au début de l'​écriture. ​ | 
 +|**count**=nombre ​ |Copier seulement le nombre indiqué de blocs (dont la taille est fournie par ibs), et non pas tout jusqu'​à la fin du fichier. ​ | 
 +|**conv**=conversion[,​conversion]... ​ |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) ainsi :\\ **ascii** Convertir l'​EBCDIC en ASCII.\\ **ebcdic** Convertir l'​ASCII en EBCDIC.\\ **ibm** Convertir l'​ASCII en EBCDIC IBM.  | 
 +|**block** ​ |Compléter les blocs se terminant par un saut de ligne avec des espaces, jusqu'​à atteindre la taille mentionnée par cbs.  | 
 +|**unblock** ​ |Remplacer les espaces en fin de blocs (de taille cbs) par un saut de ligne. ​ | 
 +|**lcase** ​ |Transformer les majuscules en minuscules. ​ | 
 +|**ucase** ​ |Transformer les minuscules en majuscules. ​ | 
 +|**swab** ​ |Échanger par paire les octets lus en entrée. Contrairement à la commande dd d'​Unix,​ la version GNU fonctionne également lorsqu'​on copie un nombre impair d'​octets. Dans ce cas, le dernier octet est tout simplement copié.\\ [POSIX 1003.2b, interprétations PASC 1003.2 #3 and #4]  | 
 +|**noerror** ​ |Continuer même après des erreurs de lecture. ​ | 
 +|**notrunc** ​ |Ne pas limiter la taille du fichier de sortie. ​ | 
 +|**sync** ​ |Compléter chaque bloc lu avec des NULs pour atteindre la taille ibs.  |
  
 ===== Les variables d'​environnement ===== ===== Les variables d'​environnement =====
Ligne 246: Ligne 214:
 ===== Récupérer les données d'un disque ===== ===== Récupérer les données d'un disque =====
  
-  * [[manuel:recupdonnee]]+  * [[:doc:​systeme:​ddrescue]]
  
 +===== Lien sur l'​utilisation de dd sur le forum =====
 +
 +  * [[https://​debian-facile.org/​viewtopic.php?​pid=200330#​p200330]]
 +  * [[https://​debian-facile.org/​viewtopic.php?​pid=255790#​p255790]] Clé bootable pour installation.
 ===== Liens externes ===== ===== Liens externes =====
 +
   *[[http://​jp.barralis.com/​linux-man/​man1/​dd.1.php|Man de dd en français]]   *[[http://​jp.barralis.com/​linux-man/​man1/​dd.1.php|Man de dd en français]]
   *[[http://​wiki.mandriva.com/​fr/​Copie_par_blocs_d%27octets_avec_dd| La source de ce document, trés complet]]   *[[http://​wiki.mandriva.com/​fr/​Copie_par_blocs_d%27octets_avec_dd| La source de ce document, trés complet]]
doc/systeme/dd.txt · Dernière modification: 25/02/2020 09:13 par smolski

Pied de page des forums

Propulsé par FluxBB