Pour cloner un disque, tout ce que vous devez vraiment faire est de spécifier l'entrée et la sortie à dd
:
dd if=/dev/hdb of=hdb.img
Assurez-vous bien sûr d'avoir les autorisations appropriées pour lire directement depuis /dev/hdb
(je recommande d'exécuter en tant que root), et que /dev/hdb
n'est pas monté (vous ne voulez pas copier pendant que le disque est en cours de modification). Une fois terminé, hdb.img
sera un clone octet par octet de tout le disque.
Il y a quelques inconvénients à utiliser dd
pour cloner des disques. Tout d'abord, dd
copiera tout votre disque, même les espaces vides, et si cela est fait sur un grand disque, cela peut se traduire par un fichier image extrêmement volumineux. Deuxièmement, dd
ne fournit absolument aucune indication de progression, ce qui peut être frustrant car la copie prend beaucoup de temps. Troisièmement, si vous copiez cette image sur d'autres disques (encore une fois, en utilisant dd), ils doivent être aussi grands ou plus grands que le disque original, mais vous ne pourrez pas utiliser d'espace supplémentaire que vous pourriez avoir sur le disque cible avant de redimensionner vos partitions.
Vous pouvez également effectuer une copie directe de disque à disque :
dd if=/dev/hdb of=/dev/hdc
mais vous êtes toujours sujet aux limitations ci-dessus concernant l'espace libre.
Le premier inconvénient peut être résolu en compressant les données pendant la copie. Par exemple :
dd if=/dev/hdb | gzip -9 > hdb.img.gz
Le deuxième inconvénient peut être résolu en utilisant l'outil pipeview (pv
). Par exemple :
dd if=/dev/hdb | (pv -s `fdisk -l /dev/hdb | grep -o '[0-9]*\{1\} MB' | awk '{print $1}'`m) | cat > hdb.img
Je ne connais aucun moyen de surmonter le troisième inconvénient.
De plus, vous pouvez accélérer le temps de copie en indiquant à dd
de travailler avec de plus gros morceaux de données. Par exemple :
dd if=/dev/hdb of=hdb.img bs=1024
0 votes
Je suis conscient de la façon dont dd fonctionne, ma question était plutôt dirigée vers d'éventuels problèmes connus liés à dd lors du clonage de disques (comme décrit par le lien), peut-être que cela n'était pas très clair. Ce que sa réponse contient et la vôtre ne contient pas, c'est "Je n'ai jamais eu de problème avec ça". J'ai également voté pour votre réponse, car vous avez définitivement présenté des points intéressants (j'aime celui sur l'absence d'indication de progression).
1 votes
Il semblerait que vous ayez obtenu le Spolsky Bump : joelonsoftware.com/items/2009/05/29.html
0 votes
N'avais pas vu cela ici lorsque j'ai posé (et répondu) une question similaire sur superutilisateur - superutilisateur.com/questions/11453/…
8 votes
Il est ironique que Joel ait lié la question comme un bon exemple de panne de serveur, bien que aucune des réponses n'était bonne. Il n'y avait pas une seule réponse parmi les 25 (hors commentaires) avec les bonnes options
dd
pour sauter les blocs défectueux - ce qui est essentiel lors de la clonage de disques pour la récupération. J'ai ajouté une meilleure réponse, qui peut cloner des disques ayant des blocs défectueux:dd if=/dev/sda of=/dev/sdb bs=4096 conv=sync,noerror
0 votes
Je pense que la restauration dd pourrait "échouer" si on parle de systèmes de fichiers dépendants de la géométrie du disque et que la restauration est effectuée sur des disques durs non identiques? J'ai rencontré quelques échecs lors de la restauration dd, et je pense que c'était le problème dans mon cas.
1 votes
Cette méthode permettra également de sauvegarder la partie non allouée d'un disque, le cas échéant. Si vous n'en avez pas besoin, vous pouvez lui indiquer où s'arrêter (
count
paramètre pourdd
, ou faire passer les données à travershead -c ...
pour tout autre chose; mais je ne suis pas sûr de comment trouver le nombre exact d'octets pour le moment, ou du moins une bonne borne supérieure)1 votes
Aussi notez que la plupart du temps, le programme
dd
est inutile. Vous pouvez utiliserhead
oucat
pour lire à partir d'un périphérique de bloc, et écrire dans un fichier régulier en utilisant une redirection. Et vous pouvez écrire dans un périphérique de bloc avectee
. Alors vous n'aurez pas à deviner une bonne taille de bloc, et cela va probablement être plus rapide aussi. Et si le disque source est en mauvais état, alorsdd
n'est pas vraiment une bonne option non plus, utilisezddrescue
pour sauver les données des disques endommagés à la place.0 votes
Veuillez également consulter cette question : superuser.com/q/1050894/910769 Deux autres ressources à prendre en compte : tecmint.com/clone-linux-partitions et cyberciti.biz/faq/unix-linux-dd-create-make-disk-image-commands