239 votes

Utilisation de DD pour le clonage de disque

Il y a eu plusieurs questions concernant les outils de clonage de disque et dd a été suggéré au moins une fois. J'ai déjà envisagé d'utiliser dd moi-même, principalement en raison de sa facilité d'utilisation et du fait qu'il est facilement disponible sur pratiquement toutes les distributions Linux amorçables.

Quelle est la meilleure façon d'utiliser dd pour cloner un disque? J'ai rapidement fait une recherche sur Google, et le premier résultat était une tentative échouée apparente. Y a-t-il quelque chose que je doive faire après avoir utilisé dd, c'est-à-dire y a-t-il quelque chose qui NE PEUT être lu en utilisant dd?

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/…

4voto

Kristof Provost Points 12359

Gardez à l'esprit que dd fait une copie exacte, y compris tout l'espace vide.

Cela signifie:

  1. Le 2ème disque doit être au moins aussi grand que le premier
  2. Si le 2ème disque est plus grand, un espace supplémentaire sera gaspillé (le système de fichiers peut être étendu notez bien)
  3. Si le disque source n'est pas plein, dd perdra beaucoup de temps à copier l'espace vide.
  4. Vous pouvez copier soit l'intégralité du disque, soit une seule partition de cette manière.
  5. Si c'est un disque bootable, je suis presque certain que vous devez réinstaller le chargeur de démarrage après avoir utilisé dd

J'espère que cela vous sera utile

12 votes

Si vous clonez tout le disque dur, vous clonez également le chargeur de démarrage.

0 votes

Eh bien, juste une pensée, mais ne pourriez-vous pas simplement utiliser GParted pour redimensionner la partition/disque qui est copié vers ce qui est utilisé, puis abandonner dd? En supposant qu'il s'agisse d'une image ponctuelle, cela devrait atténuer ce problème.

4voto

C'est une sorte d'astuce bon marché, mais c'est un moyen rapide et sale de surveiller votre processus DD.

Exécutez votre commande dd. Ouvrez un nouveau shell et faites un ps awx pour trouver le PID de votre processus dd. Maintenant, dans le nouveau shell, tapez watch -n 10 kill -USR1 {pid de votre processus DD}

Cela ne fera rien dans la fenêtre de sortie de la montre, mais dans le shell DD d'origine, DD commencera à émettre des rapports d'état toutes les 10 secondes. Vous pouvez bien sûr changer le -n 10 de la commande watch pour n'importe quel autre intervalle de temps.

Tachyon

0 votes

OS X n'a pas watch disponible et -USR1 tue dd. La commande suivante fonctionne cependant : while [ true ]; do killall -INFO dd; sleep 30; done

0 votes

Je ne pense pas que ce soit très pratique pour un novice, ils seraient peut-être mieux servis avec la commande pv.

0 votes

J'ai découvert que vous pouvez également envoyer un SIGINFO en utilisant CTRL-T dans dd. C'est plus facile que la boucle while et le cd OSX 10.6 que j'ai ne contient pas killall. J'ai appris cela sur en.wikipedia.org/wiki/Unix_signal#Sending_signals

3voto

Anders Hansson Points 179

Pour information future, il pourrait être intéressant de jeter un coup d'œil à ddrescue. Il m'a sauvé la mise plusieurs fois.

3voto

alamar Points 199

Une autre grande fonctionnalité est la copie des MBR, des tables de partitions et des enregistrements de démarrage.

Simplement

dd if=/dev/sda of=parttable bs=512 count=1

et vice versa lorsque vous l'écrivez. Peaufinez avec fdisk après.

Vous vous sentez beaucoup plus en sécurité lorsque vous avez sauvegardé votre table de partitions.

De plus, cela rend la migration vers un autre disque dur (tout en changeant la structure de la partition) très agréable.

3voto

Vous pourriez en fait essayer quelque chose comme ceci

dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=sync,noerror

pour ignorer toutes les erreurs et avoir un clone exact d'une partition ou d'un disque dur

0 votes

Il devrait être conv=sync,noerror L'option sync est nécessaire sinon les blocs avec des erreurs seront supprimés au lieu d'être copiés comme des zéros.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X