J'ai configuré dd
pour cloner un disque dur système plus petit (40,00 Go) (/ dev/sda) sur un nouveau disque dur plus grand de 111,00 Go connecté via un lecteur USB (dev/sdb). Le compteur d'activité du nouveau disque dur indique qu'il fait quelque chose. Mais le processeur n’est que d’environ 20%. Quand cette chose va-t-elle se terminer? Devrais-je recommencer le processus?
À l'avenir, vous devriez utiliser pv
pour obtenir une barre de progression en cours d'exécution.
Sudo apt-get install pv
Avec pv
, supposons que vous souhaitiez cloner un lecteur de 20 Go, /dev/foo
, sur un autre lecteur (20 Go ou plus!), /dev/baz
:
Sudo dd if=/dev/foo bs=4M | pv -s 20G | Sudo dd of=/dev/baz bs=4M
Points importants à noter: l'argument bs=4M
définit la taille de bloc pour les opérations dd sur 4 Mo, ce qui considérablement améliore la vitesse d'exécution de l'ensemble. Et l'argument -s 20G
indique à pv
la taille prévue de cette opération. Elle peut donc vous donner un ETA ainsi qu'une vitesse actuelle.
J'aime pv
si fort que cela devrait probablement être illégal.
Vous pouvez voir jusqu'où il est allé en lui envoyant un signal SIGUSR1 afin de voir combien de données il a copiées et le taux de transfert:
kill -SIGUSR1 $(pidof dd)
Pour la copie, vous êtes limité par la vitesse d'E/S du périphérique. Le processeur ne doit donc pas être complètement chargé. Ne vous inquiétez pas.
J'ai utilisé pv aussi bien que (ps et kill) comme suggéré dans les autres réponses, mais plus récemment, je viens d'utiliser plutôt dc3dd
qui produit les mêmes résultats tout en fournissant un rapport de progression tout au long du processus.
Vous pouvez vérifier s'il est déjà installé avec: which dc3dd
Sinon, vous pouvez l'installer avec Sudo apt-get install dc3dd
Les commandes sont similaires à dd (pour le clonage, bien que l’effacement soit un peu plus simple).
Dans votre cas, j'utiliserais la commande dc3dd if=/dev/sda of=/dev/sdb
Modifier:
Les versions récentes de dd
à partir de paquet coreutils la version 8.24+ incluse dans Ubuntu 16.04 et les versions ultérieures incluent un paramètre status. Vous pouvez obtenir le même résultat avec dd
en ajoutant le commutateur status=progress
à votre ligne de commande dd
.
Exemple: dd if=/dev/zero of=/dev/null count=1000 status=progress
Vous pouvez utiliser ddrescue à la place:
Sudo ddrescue -v /dev/sda /dev/sdb
v signifie verbose.
J'avais un problème similaire. La cause était différente dans mon cas.
Le lecteur cible est un disque dur externe.
Si le disque a été monté automatiquement via udisks
et udisks-glue
, le débit de transfert de cdrom vers le disque dur était d’environ 40 ko/s.
Lorsque j'ai démonté le disque dur et que je l'ai monté directement via mount
, j'ai obtenu un taux de transfert d'environ 2,4 Mo/s.