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
dd [Le 13/05/2018, 16:42]
82.246.139.158 [Créer une clé USB bootable]
dd [Le 14/03/2019, 15:28] (Version actuelle)
Judibet Rajout "Block Size"
Ligne 7: Ligne 7:
 =====Introduction===== =====Introduction=====
  
-La commande dd permet de copier tout ou partie d'un disque par blocs d'​octets,​ indépendamment de la structure du contenu du disque en fichiers et en répertoires. ​+La commande dd permet de copier tout ou partie d'un disque ​**   
 +---- 
 +[[smartmontools| EN BON ETAT]]** ​par blocs d'​octets,​ indépendamment de la structure du contenu du disque en fichiers et en répertoires. ​
 <note help>​Pour dupliquer un disque, il est préférable d'​utiliser la commande ddrescue ​ ( [[:​ddrescue]] ) qui dispose d'une possibilité de reprise en cas d'​arrêt intempestif.</​note>​ <note help>​Pour dupliquer un disque, il est préférable d'​utiliser la commande ddrescue ​ ( [[:​ddrescue]] ) qui dispose d'une possibilité de reprise en cas d'​arrêt intempestif.</​note>​
  
Ligne 36: Ligne 38:
 **source** représente les données à copier, **cible** est l'​endroit où les copier ; ça se comprend : **if** correspond à l'​**i**nput **f**ile et **of** correspond à l'​**o**utput **f**ile. **source** représente les données à copier, **cible** est l'​endroit où les copier ; ça se comprend : **if** correspond à l'​**i**nput **f**ile et **of** correspond à l'​**o**utput **f**ile.
  
-**bs** est habituellement une puissance de 2, supérieure ou égale à 512, représentant un nombre d'​octets (par exemple: 512, 1024, 2048, 4096, 8192, 16384, mais cela peut être tout nombre raisonnable). ​+**bs** ​(**b**lock **s**ize) ​est habituellement une puissance de 2, supérieure ou égale à 512, représentant un nombre d'​octets (par exemple: 512, 1024, 2048, 4096, 8192, 16384, mais cela peut être tout nombre raisonnable). ​
  
 <note warning>​Attention !! Si vous inversez la **source** et la **cible**, vous pouvez perdre beaucoup de données. Cette caractéristique a inspiré le surnom de dd : le Destructeur de Données !!</​note>​ <note warning>​Attention !! Si vous inversez la **source** et la **cible**, vous pouvez perdre beaucoup de données. Cette caractéristique a inspiré le surnom de dd : le Destructeur de Données !!</​note>​
Ligne 83: Ligne 85:
 **bs=4k** indiquera à dd d'​utiliser un bloc de taille 4 kiloctets. J'ai trouvé que **bs=4k** est le plus rapide pour la copie de disques sur une machine moderne. **bs=4k** indiquera à dd d'​utiliser un bloc de taille 4 kiloctets. J'ai trouvé que **bs=4k** est le plus rapide pour la copie de disques sur une machine moderne.
  
-====Copier une partition de disque ​dur sur un autre disque ​dur====+====Copier une partition de disque sur un autre disque====
  
 <​code>​ <​code>​
Ligne 89: Ligne 91:
 </​code>​ </​code>​
  
-Veillez à ce que tous soit attaché après "​conv=",​ 
-sda2 et sdb2 sont des partitions. Vous voulez copier sda2 dans sdb2. Si sdb2 n'​existe pas, dd commencera au début du disque et le créera. ​ 
  
-<note warning>​Faites attention à l'​ordre de **if=** et **of=**. Vous pouvez écrire ​un disque ​vierge sur un disque utilisé ​si vous êtes désordonné. A priori l'​argument conv=notrunc ne sert à rien : on copie une partition pas un fichier… et l'​argument noerrror est **risqué** puisqu'​il ignore les erreurs de lecture</​note>​+<note warning> 
 +  * sda2 et sdb2 sont des partitions : pensez à mettre celles qui correspond à vos besoins. ​Faites attention à l'​ordre de **if=** et **of=**. Vous pouvez écrire ​une partition ​vierge sur une partition utilisée ​si vous êtes désordonné. 
 +  * Si sdb2 n'​existe pas, dd commencera au début du disque et le créera 
 +  * L'​argument noerrror serait **risqué** puisqu'​il ignore les erreurs de lecture 
 +  * La partition complète va être copiée : la partition de destination aura exactement la même taille et le même [[uuid_et_label|uuid]] qui est censé être unique. Cela peut être source de conflit. Vous pouvez toujours [[uuid_et_label#​modifier_manuellement_l_uuid_d_un_systeme_de_fichiers|modifier cet uuid manuellement]],​ mais prenez garde que vous perdrez alors l'​exactitude de copie. 
 +</​note>​ 
 + 
 +<note tip> 
 +  * Veillez à ce que tous soit attaché après "​conv="​ 
 +  * A priori l'​argument conv=notrunc ne sert à rien : on copie une partition pas un fichier 
 +</​note>​
  
-<note tip>Le fait de copier ainsi une partition implique de copier également son [[uuid_et_label|uuid]] qui est censé être unique. Cela peut être source de conflit. Vous pouvez toujours [[uuid_et_label#​modifier_manuellement_l_uuid_d_un_systeme_de_fichiers|modifier cet uuid manuellement]],​ mais prenez garde que vous perdrez alors l'​exactitude de copie.</​note>​ 
  
-<note tip>Et comment suivre ce qui se passe pendant ​l'exécution de DD... En effet, après avoir lancé la commande, c'est le blackout et vous pouvez attendre longtemps et même penser que rien ne se passe! +Une solution alternative pour voir l'avancement : ouvrer ​un second terminal et tapez:<​code>​pgrep -l '​^dd$'</​code> ​ qui vous produira une réponse du type "9999 dd". Ce code est le chiffre d'​identification du processus de copie qui vous permet de produire une seconde commande dans le terminal (en root):<​code>​kill -USR1 9999</​code>​ Cette seconde commande peut-être lancée de temps en temps pour patienter.
-Alors, ouvrez ​un second terminal et tapez:<​code>​pgrep -l '​^dd$'</​code> ​ qui vous produira une réponse du type "9999 dd". Ce code est le chiffre d'​identification du processus de copie qui vous permet de produire une seconde commande dans le terminal (en root):<​code>​kill -USR1 9999</​code>​ Cette seconde commande peut-être lancée de temps en temps pour patienter.+
 Alternative en mode root, pour voir la progression toutes les 30 secondes: <​code>​watch -n 30 kill -USR1 9999</​code></​note>​ Alternative en mode root, pour voir la progression toutes les 30 secondes: <​code>​watch -n 30 kill -USR1 9999</​code></​note>​
-Pour suivre l'avancement de la commande dd, vous pouvez ajouter l'​option **status=progress**,​ ou effectuer la commande suivante : <​code>​dd if=/​dev/​source | pv -t -e -r -b | dd of=/​dev/​cible</​code>​ Cela requiert le binaire pv :<​code>​apt-get install pv</​code>​+Une autre solution est d'​effectuer la commande suivante : <​code>​dd if=/​dev/​source | pv -t -e -r -b | dd of=/​dev/​cible</​code>​ Cela requiert le binaire pv :<​code>​apt-get install pv</​code>​
  
 ====Cloner un disque dur en entier==== ====Cloner un disque dur en entier====
Ligne 276: Ligne 284:
  
 [[https://​wiki.archlinux.org/​index.php/​USB_Installation_Media#​Using_dd|Source de cette section]] [[https://​wiki.archlinux.org/​index.php/​USB_Installation_Media#​Using_dd|Source de cette section]]
 +==== Créer un DVD bootable ====
 +exemple
 +<​code>​dd if=/​home/​$USER/​Téléchargements/​lubuntu-18.04.1-desktop-i386.iso of=/​dev/​sr0 ​ status=progress &&​sync
 +1089364480 bytes (1,1 GB, 1,0 GiB) copied, 2420 s, 450 kB/s 
 +2127840+0 enregistrements lus
 +2127840+0 enregistrements écrits
 +1089454080 bytes (1,1 GB, 1,0 GiB) copied, 2419,85 s, 450 kB/s
 +</​code>​
 +
 +
 +
 ====Copier seulement le MBR d'un disque dur==== ====Copier seulement le MBR d'un disque dur====
  
  • dd.1526222576.txt.gz
  • Dernière modification: Le 13/05/2018, 16:42
  • par 82.246.139.158