QUESTION ORIGINALE:
Si j'ai 2 disques durs identiques avec les caractéristiques suivantes:
- SATA 6.0 Gb / s
- 5400 tours par minute
- 3 To
Combien de temps faut-il pour terminer une copie complète?
Jusqu'ici, ça fait 5 heures que ça dure et ça continue ...
J'utilise Linux Ubuntu 12.04 64bit et la commande que j'utilise est la suivante:
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 430GB. Le disque dur est de 3 To ...
N'y a-t-il pas de moyen plus rapide de faire cela?
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
ETA coûte environ 9 heures pour 3 To, alors qu’avant, il atteignait 430 Go après 6 heures, je suppose donc que la commande précédente aurait pris environ 36 heures.
SIGUSR1
, et BSD dd utiliseSIGINFO
bs=
argument àdd
). Pensez également à connecter chaque disque dur à son propre port SATA.Réponses:
dd
était utile jadis, lorsque les utilisateurs utilisaient des bandes (lorsque la taille des blocs comptait) et lorsque des outils simples tels que ceuxcat
qui ne fonctionnaient pas pourraient ne pas être protégés du binaire.De nos jours, l’ écriture est une méthode lente et
dd if=/dev/sdb of=/dev/sdc
compliquée, sujette aux erreurs . Bien que toujours utile pour certaines tâches relativement rares , il est beaucoup moins utile que le nombre de tutoriels le mentionnant vous laisserait croire. Il n'y a pas de magie , c'est la magie .cat /dev/sdb >/dev/sdc
dd
dd
/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 lente et compliquée. Les données sont lues 128 Ko à la fois (ce qui est meilleur que ladd
valeur par défaut de 512 Go, mais pas aussi bonne que des valeurs encore plus grandes). Il passe ensuite par deux canaux avant d’être écrit.Utilisez la
cat
commande plus simple et plus rapide . (Dans certains tests que j'ai réalisés il y a quelques années sous Linux, celacat
était plus rapide quecp
pour une copie entre différents disques etcp
plus rapidedd
qu'avec n'importe quelle taille de bloc;dd
avec une taille de bloc importante, il était légèrement plus rapide de copier sur le même disque.)Si vous voulez exécuter cette commande
sudo
, vous devez effectuer la redirection en tant que root:Si vous voulez un rapport de progression, puisque vous utilisez Linux, vous pouvez facilement en obtenir un en notant le PID du
cat
processus (par exemple, 1234) et en regardant la position de son descripteur de fichier en entrée (ou en sortie).Si vous voulez un rapport d'avancement et que votre variante Unix ne fournit pas un moyen facile d'obtenir un descripteur de fichier, vous pouvez installer et utiliser à la
pv
place decat
.la source
cat
plus rapide quedd
? Serait-ce quicat
utilise le cache?sudo sh -c 'pv /dev/sdb >/dev/sdc'
au lieu desudo sh -c 'cat /dev/sdb >/dev/sdc'
?pv
où vous voulezcat
.cat /dev/sdc1 >/dev/sdb1 && cat /dev/sdd1 >/dev/sde1
. Concaténer les deux parties n'a pas de sens. Si vous souhaitez modifier la structure du volume btrfs, pour passer de deux sous-volumes à un seul, vous devez utiliser les outils btrfs pour modifier la structure ou créer un nouveau système de fichiers avec la structure souhaitée, puis copier les fichiers. .dd
utilise une très petite taille de bloc par défaut (512 octets). Cela entraîne beaucoup de temps système (unread()
et unwrite()
appel système pour chaque 512 octets).Cela va beaucoup plus vite lorsque vous utilisez une taille de bloc plus grande. Les vitesses optimales commencent à peu près
bs=64k
. La plupart des gens utilisent un format encore plus grandbs=1M
pour qu'il devienne lisible par l'homme (quand ondd
dit qu'il est copié1234 blocks
, vous savez que c'est1234 MiB
sans faire de calcul). L'utilisation de tailles de blocs encore plus grandes ne devrait pas entraîner une amélioration de la vitesse, mais simplement une consommation de mémoire supérieure.Donc, la commande devrait être:
Si vous avez déjà une
dd
exécution lente , vous pouvez l’interrompre et la reprendre avec unedd
instance plus rapide . Pour cela, il est important de savoir dans quelle mesure la copie a déjà progressé.dd
imprime généralement la progression lorsque vous l’annulez, ou vous pouvez lui envoyer leUSR1
signal en cours d’exécution pour lui permettre d’imprimer sa progression.Par exemple, s'il a copié plus de
1234MiB
, vous pouvez reprendre la position en1234MiB
utilisant:S'il en a copié moins de
1234MiB
, votre copie sera incomplète. S'il en a copié plus de1234MiB
, cela recopiera certaines parties déjà copiées, ce qui ne fait normalement pas de mal. Donc, en cas de doute, vous devriez choisir une valeur légèrement inférieure à celle qui a déjà été copiée.la source
Obtenir des statistiques sur le processus de jj en cours
Vous pouvez utiliser la
kill
commande avec le signal approprié pour transformerdd
les statistiques en sortie en erreur standard.Depuis la page de manuel GNU dd:
Assurez-vous d’abord vérifier le bon signal sur votre page de manuel, car il peut différer selon les implémentations de dd: (dd BSD utilise SIGINFO).
Accélérer le processus
bs=
argument. Jetez un coup d'œil à ce fil sur le superutilisateur et essayez quelques valeurs pour vous-même.dd
invocations distinctes pour lire et écrire et utilisez un tuyau pour les connecter (dd if=/dev/sda bs=1M | dd of=/dev/sdb bs=1M
).Si vous faites cela et spécifiez une taille de bloc, assurez-vous d'utiliser la même taille de bloc à chaque appel.
direct
argument.la source
Avez-vous essayé 'gparted'? Vous pouvez littéralement copier-coller une partition d'un lecteur à un autre et la redimensionner en conséquence, si nécessaire. Vous obtenez le taux de transfert et le temps restant. Il utilise "e2image" en dessous pour les partitions Linux.
la source
Il existe un logiciel commercial appelé HDClone . Il est sous licence libre et commercial. Les deux versions peuvent créer une clé USB ou un DVD de démarrage, ainsi que la copie de disques. Connectez les disques durs source et de destination et suivez les instructions basées sur une interface graphique.
La version gratuite transférera environ 80 Mo / s, tandis que les versions payantes peuvent aller beaucoup plus vite. Pour les systèmes de fichiers NTFS et FAT, les versions payantes peuvent être configurées pour cloner uniquement les bits occupés du disque dur, ce qui augmente considérablement la vitesse de chaque clone.
la source