QUESTION ORIGINALE :
Si j'ai 2 disques durs identiques avec les caractéristiques suivantes :
- SATA 6.0 Go/s
- 5 400 tr/min
- 3 To
Combien de temps une copie dd complète devrait-elle prendre ?
Jusqu'à présent, il a fonctionné pendant 5 heures et continue de fonctionner…
J'utilise Linux Ubuntu 12.04 64bit et la commande que j'utilise est :
dd if=/dev/sdb of=/dev/sdc
MISE À JOUR :1
Je peux maintenant voir les progrès, et cela fait plus de 6 heures pour la copie de 430 Go. Le disque dur est de 3 To…
N'y a-t-il pas de moyen plus rapide de le faire ?
MISE À JOUR :2
Cela semble beaucoup mieux qu'avant (Merci à Groxxda pour les suggestions) :
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
L'ETA est d'environ 9 heures pour 3 To, alors qu'avant il atteignait 430 Go après 6 heures, donc je suppose que cela aurait pris environ 36 heures en utilisant la commande précédente.
Réponse acceptée :
dd
était utile autrefois lorsque les gens utilisaient des bandes (lorsque la taille des blocs importait) et lorsque des outils plus simples tels que cat
peut ne pas être binaire sécurisé.
De nos jours, dd if=/dev/sdb of=/dev/sdc
est une manière compliquée, sujette aux erreurs et lente d'écrire cat /dev/sdb >/dev/sdc
. Tandis que dd
toujours utile pour certaines tâches relativement rares, il est beaucoup moins utile que le nombre de tutoriels le mentionnant ne le laisseraient croire. Il n'y a pas de magie dans dd
, la magie est dans /dev/sdb
.
Votre nouvelle commande sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
est à nouveau inutilement lent et compliqué. Les données sont lues 128 Ko à la fois (ce qui est mieux que le dd
défaut de 512B, mais pas aussi bon que des valeurs encore plus grandes). Il passe ensuite par deux tubes avant d'être écrit.
Utilisez le cat
plus simple et plus rapide commande. (Dans certains benchmarks que j'ai faits il y a quelques années sous Linux, cat
était plus rapide que cp
pour une copie entre différents disques, et cp
était plus rapide que dd
avec n'importe quelle taille de bloc ; dd
avec une grande taille de bloc était légèrement plus rapide lors de la copie sur le même disque.)
cat /dev/sdb >/dev/sdc
Si vous souhaitez exécuter cette commande dans sudo
, vous devez effectuer la redirection en tant que root :
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Si vous voulez un rapport d'avancement, puisque vous utilisez Linux, vous pouvez facilement en obtenir un en notant le PID du cat
processus (disons 1234) et en regardant la position de son descripteur de fichier d'entrée (ou de sortie).
# cat /proc/1234/fdinfo/0
pos: 64155648
flags: 0100000
Si vous voulez un rapport de progression et que votre variante Unix ne fournit pas un moyen facile d'accéder aux positions d'un descripteur de fichier, vous pouvez installer et utiliser pv
au lieu de cat
.