GNU/Linux >> Tutoriels Linux >  >> Linux

Interprétation dd Erreur d'entrée/sortie

  • Vous utilisez les 512 octets par défaut dd taille de bloc. Vous amélioreriez considérablement les performances en utilisant une taille de bloc plus grande, disons 128k ou même 1m .

  • Il y a deux sorties car vous exécutez deux dd commandes, 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 ? Utilisez lvdisplay pour 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

Linux
  1. Utilisation de l'entrée-sortie et de la redirection d'erreur sous Linux

  2. Erreur SFTP Message reçu trop long

  3. Erreur d'entrée/sortie gcsfuse

  4. erreur d'entrée/sortie ubuntu

  5. Interpréter la sortie de cat/proc/cpuinfo

Explication de la redirection d'entrée-sortie sur Linux

Comment trier la sortie par taille ?

Sortie de quelle commande utilisée pour l'entrée sur CD ?

Décomposer la production en nouvelles lignes ?

Explication :Redirection des entrées, des sorties et des erreurs sous Linux

Shell Scripting Part4 - Entrée, sortie et redirection