75 votes

Comment accélérer un dd complet ?

Je fais un dd sur deux lecteurs identiques avec cette commande :

 dd if=/dev/sda of=/dev/sdb bs=4096

Les deux disques durs portent exactement le même numéro de modèle et ont tous deux un espace de stockage de 1 To. /dev/sda utilise une taille de bloc de 4096. /dev/sda est un lecteur local et /dev/sdb est un caddy à distance. Je pourrais être en mesure d'utiliser les protocoles suivants :

  • USB2.0 HighSpeed (actuellement le plan)
  • Clone Gigabit Over-The-Network (je ne veux vraiment pas essayer)
  • USB3.0 (si je retrouve mon autre support de disque)
  • eSATA (Si je trouve/achète un câble)
  • SATA (si je trouve/achète un câble, je dois aimer les lecteurs de CD des ordinateurs portables)

Y a-t-il un moyen d'exécuter cette copie de disque qui prenne moins de 96 heures ? Je suis ouvert à l'utilisation d'outils autres que dd .

Je dois cloner les partitions suivantes (y compris les UUID)

  • Partition EFI Fat32 (*)
  • Partition NTFS Windows (*)
  • Partition HFS+ OSX
  • Partition EXT4 Ubuntu (*)
  • Partition Swap (*)

* Supporté par Clonezilla


J'ai essayé Clonezilla (et c'était BEAUCOUP plus rapide), mais il ne prend pas en charge la copie intelligente HFS+, dont j'ai besoin. Peut-être que la dernière version le prend en charge ?

Quand j'ai fait mon premier clone, j'ai fait toutes les partitions sauf HFS+ et ça s'est passé très vite. (Pas plus de 3 heures au total)

89voto

Bob Points 940

D'après mon expérience, je ne pense pas qu'il y ait quelque chose de plus rapide en ligne de commande comme dd . Réglage de la bs Le paramètre peut augmenter la vitesse, par exemple, j'ai 2 disques durs dont je sais qu'ils ont une vitesse de lecture/écriture supérieure à 100 MB/s donc je fais cela :

dd if=/dev/sda of=/dev/sdb bs=100M

Il y a également pv (doit être installé au préalable) qui vérifie la vitesse la plus rapide sur les deux disques et procède ensuite au clonage. Cela doit être fait bien sûr à partir de root :

pv < /dev/sda > /dev/sdb

Avec PV, j'ai obtenu 156 Mo/s

Ce qui est bien avec pv En plus de la vitesse, il indique la progression, la vitesse actuelle, le temps écoulé depuis le début et l'heure d'arrivée prévue. En ce qui concerne HFS+, je ne sais pas, j'essaie juste de vous aider sur la partie "vitesse". Avec pv ou un système très optimisé bs paramètre, vous pouvez faire un disque de 4 To en moins de 7 heures (6 heures 50 minutes à une vitesse actuelle de 150 Mo/s).

enter image description here

J'ai fait quelques tests avec les types de connexion que vous utilisiez et d'autres que j'avais à ma disposition. J'ai utilisé l'Asus Z87 Pro et l'Intel DZ68DP. Voici mes résultats, mais il faut d'abord savoir que les vitesses théoriques pour de nombreux taux de transfert (Raw speeds) ne sont que cela, théorie . Des tests réels ont révélé qu'ils se situent entre 40% et 80% de cette vitesse brute. Ces tests peuvent changer en fonction du périphérique utilisé, du type de connexion, de la carte mère, du type de câble de connexion, du type de système de fichiers et plus encore. En gardant cela à l'esprit, voici ce que j'ai obtenu (je n'ai testé que la vitesse d'écriture sur le périphérique, la lecture est généralement plus élevée) :

Connected Device  -  Connection Type  -  Speed (Write Speed)
  USB 2.0                 USB 2.0              25 MB/s
  USB 3.0                 USB 2.0              35 MB/s
  USB 3.0                 USB 3.0              73 MB/s
  eSata                   eSata                80 MB/s
  Sata 2G HDD             Sata 2G              120 MB/s
  Sata 3G HDD             Sata 2G              140 MB/s
  Sata 3G HDD             Sata 3G              190 MB/s
  Sata 2G SDD             Sata 2G              170 MB/s
  Sata 3G SDD             Sata 2G              210 MB/s
  Sata 3G SDD             Sata 3G              550 MB/s

15voto

Schof Points 952

Pour copier une partition en gros, utiliser cat au lieu de dd . J'ai couru repères il y a quelque temps, en copiant un gros fichier plutôt qu'une partition, entre deux disques (sur le même disque, les timings relatifs sont différents) :

dd bs=64M    51.3
dd bs=1M     41.8
dd bs=4k     48.5
dd bs=512    48.9
cat          41.7
cp           45.3

La conclusion de ce benchmark est que le choix de la taille des blocs pour les dd importe (mais pas tant que ça), et cat trouve automatiquement la meilleure façon de faire une copie rapide : dd ne peut que vous ralentir. Avec une petite taille de bloc, dd perd du temps à faire des pertes de lectures et d'écritures minuscules. Avec une grande taille de bloc, un disque reste inactif pendant que l'autre lit ou écrit. Le taux optimal est atteint lorsqu'un disque lit pendant que l'autre écrit.

Pour copier une partition, il peut être plus rapide de copier les fichiers avec la fonction cp -a . Cela dépend du nombre de fichiers qu'il y a et de la part d'espace libre dans le système de fichiers. La copie de fichiers a une surcharge qui est à peu près proportionnelle au nombre de fichiers, mais d'un autre côté, la copie de l'espace libre fait perdre du temps.

Le débit maximal de l'USB2 est d'un peu moins de 50 Mo/s, ce qui représente 6 à 7 heures pour transférer 1 To. Cela suppose un disque dur suffisamment rapide pour saturer le bus USB ; je pense que les disques 7200 tr/min les plus rapides peuvent le faire, mais les 5900 tr/min ne sont peut-être pas si rapides (peut-être le sont-ils pour les écritures linéaires ?).

Si l'un ou l'autre des disques est utilisé en parallèle, cela peut ralentir considérablement la copie car les têtes de disques devront se déplacer.

12voto

Fellow Points 221

Le problème vient de votre type de connexion, et de la taille du bloc. Pour obtenir les meilleurs résultats, la taille de votre bloc doit correspondre à la moitié de la vitesse d'écriture la plus faible que vous recevez habituellement. Cela vous donnera une marge de sécurité, tout en permettant un grand nombre d'écritures ; bien sûr, vous devez aussi avoir assez de mémoire vive pour contenir les données.

Usb 2.0 est de 12 mégabits par seconde (Mbps), Usb 2.0 High Speed est de 480 Mbps. Il s'agit bien sûr de la vitesse brute ; avec 8 bits dans un octet et les frais de cadrage, la vitesse utilisable en MB/s est généralement supérieure d'une décimale. Ainsi, par exemple, une vitesse brute de 480 devient 48 Mo/s utilisables. Gardez à l'esprit qu'il s'agit du meilleur résultat mathématique, dans le monde réel, il sera un peu plus bas. Pour les connexions USB 2.0 à haut débit, vous devez vous attendre à une vitesse d'écriture maximale de 30-35 Mo, à condition que le périphérique de stockage puisse égaler ou dépasser les vitesses de connexion.

8voto

dan_linder Points 970

Je suis d'accord que la vitesse brute d'une machine bien réglée dd ('pv') ou 'cat' est difficile à battre, mais s'il y a un problème avec la copie (secteur défectueux, panne de courant, erreur de l'utilisateur, etc), vous devez recommencer.

Je voudrais suggérer ddrescue - un outil FOSS qui a toute la vitesse de dd mais qui contourne les erreurs de disque, et reprend à un point ultérieur s'il y a une défaillance.

3voto

Krista K Points 323

Je suis en train de déplacer Windows 7 d'un disque dur vers un disque dur SSD et j'ai trouvé ceci et d'autres réponses... Quelque chose que j'ai appris qui pourrait aider les autres. Dans mon cas, le disque source est plus grand, sinon j'aurais travaillé au niveau du périphérique /dev/sda -> /dev/sdb.

Win7 et ses 3 partitions... J'ai utilisé le live cd Xbuntu 14.04 sur un usb. J'ai sorti le DVD de l'ordinateur Win et mis le SSD à sa place. J'ai installé Partclone et essayé ceci :

partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3

Partclone a vomi sur le ntfs nécessitant l'exécution de chkdisk dans Windows, donc une réparation rapide a rendu Partclone heureux :

ntfsfix -b /dev/sda3
ntfsfix -d /dev/sda3

Toutes les commandes sont exécutées en tant que root. L'interface utilisateur ncurses de Partclone (l'option -N) indiquait que le transfert était de 7GB/min et a fini à 5GB/min, ce qui équivaut à 83MB/sec. Le plus intéressant est que Partclone ne copie pas l'espace inutilisé, ce qui rend le clone remarquablement rapide.

Autres gotchyas potentielles :

  • si le disque que vous transférez a déjà été utilisé, il peut avoir des restes de GPT. Les installations d'usine de Windows 7 sont généralement des tables de partition msdos/mbr. Vous devrez supprimer les fragments GPT du disque de destination. Voici AQ Unix & Linux m'a aidé à le faire. Vous devez utiliser gdisk sur le périphérique, utilisez x puis z et oui pour supprimer les données GPT et assurez-vous de GARDER le MBR.

  • Et n'oubliez pas que si vous n'effectuez pas un dd au niveau du périphérique, vous devrez copier le MBR en utilisant
    dd if=/dev/sdb of=/dev/sda bs=446 count=1
    où sdb est la source ou l'ancien disque et sda est la destination ou le nouveau disque. ( source )

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