-
Vous utilisez les 512 octets par défaut
ddtaille de bloc. Vous amélioreriez considérablement les performances en utilisant une taille de bloc plus grande, disons128kou même1m. -
Il y a deux sorties car vous exécutez deux
ddcommandes, la première est le lecteur de périphérique et affiche une erreur d'E/S. -
Vous utilisez probablement LVM compte tenu du nom de périphérique que vous utilisez :
/dev/Storage/Storage. Êtes-vous sûr qu'il s'agit du disque entier et non d'un sous-ensemble ? Utilisezlvdisplaypour découvrir ce qui se cache derrière ce nom d'appareil.
Regardez dans vos messages de journal du noyau (dmesg , ou /var/log/kern.log ) pour des messages plus détaillés des pilotes SATA, s'il s'agissait d'une erreur matérielle. Aussi utile :smartctl -x /dev/sda . S'il s'agissait simplement d'une tentative de lecture au-delà de la fin d'une partition ou quelque chose du genre, cela pourrait également apparaître dans le journal du noyau.
Pour que dd continue après une erreur d'e/s, pour lire les parties lisibles qui suivent l'erreur, utilisez
dd if=... of=... conv=noerror bs=128k # it doesn't get any faster beyond about 128k, because of L2 cache size
(Comme mentionné dans les commentaires sur l'OP, ddrescue a cela et plus encore. conv=noerror a été ajouté à GNU dd après ddrescue existait, IIRC.)
Si vous souhaitez reprendre là où vous vous étiez arrêté, vous pouvez utiliser le seek et skip options, avec conv=notrunc .
Si vous voulez vraiment voir à quelle distance se trouve dd, regardez la position du fichier de son stdin :
cat /proc/$(pidof dd)/fdinfo/0 # dd opens its infile as fd #0
(ou ls -lh la taille du fichier de sortie). Copier un disque dur entier de données 2 fois de plus en les faisant passer par quelque chose me semble idiot, car cela rendra simplement votre ordinateur un peu plus lent que nécessaire pour les heures que prendra la copie.
Ou au moins faire :
dd if=... conv=noerror bs=128k | pv > Storage.img