Utilitaire de copie de fichiers comme rsync avec gestion des erreurs comme ddrescue, pour la récupération de données à partir d'un disque dur avec des secteurs défectueux ou une panne matérielle [fermé]


12

J'ai un disque dur avec des blocs défectueux ou des secteurs qui ne parviennent pas à lire en raison de problèmes mécaniques potentiels, tels qu'une tête de disque défectueuse, un moteur défectueux ou tout autre problème qui fait que le disque dur lit les données de manière atrocement lente et avec beaucoup des erreurs de lecture. Je vois une moyenne de 50 Ko / s, avec certaines lectures descendant en dessous de 10 Ko / sec, et souvent il reste bloqué sur un fichier ou un secteur, généralement pendant assez longtemps - de 2 à 10 minutes ou plus (lorsque en utilisant rsync, avant son expiration).

La vitesse semble varier énormément, et elle se coince beaucoup sur les fichiers, et quand elle est finalement "décollée", elle ne semble durer qu'une courte rafale avant de se bloquer à nouveau. Le lecteur est également très silencieux avec seulement un bruit occasionnel de copie de fichiers (généralement lorsqu'il est bloqué / décollé pendant une courte période, avant de se retrouver bloqué). Ainsi, aucun de ces sons mauvais n'est normalement associé à la mort du disque dur. Quelqu'un a suggéré que les problèmes semblaient provenir d'une tête de disque mal alignée, ce qui nécessite beaucoup de relectures avant de pouvoir lire les données avec succès. Cela semble plausible, mais je m'égare ...

Quoi qu'il en soit, le problème avec rsync est qu'il ne semble pas avoir de support de gestion des erreurs décent. De toute évidence, il n'était pas destiné à être utilisé pour récupérer des données à partir de disques durs défaillants, mais tous les utilitaires dits de "récupération de données" qui sont destinés à une telle utilisation se concentrent généralement sur la récupération de fichiers supprimés ou de partitions gâchées, plutôt que copier des fichiers sur des disques durs mourants. La récupération de fichiers supprimés n'est pas ce dont j'ai besoin, évidemment, alors vous pouvez peut-être comprendre ma déception de ne pas pouvoir trouver ce que je cherche encore.

Naturellement, c'est là que vous diriez probablement "Vous devriez utiliser ddrescue!" Eh bien, tout va bien et dandy, mais j'ai déjà la plupart des données sauvegardées, donc je veux juste récupérer certains fichiers. Je ne suis pas intéressé à essayer de récupérer une partition complète bloc par bloc comme le fait ddrescue. Je souhaite uniquement récupérer des fichiers et des répertoires spécifiques.

Idéalement, ce que j'aimerais, c'est une sorte de croisement entre rsync et ddrescue: quelque chose qui me permet de spécifier la source et la destination comme répertoires de fichiers normaux comme rsync (plutôt que deux partitions complètes comme ddrescue l'exige), avec un moyen d'ignorer les fichiers avec des erreurs lors d'une exécution initiale, puis me permet de tenter de récupérer ces fichiers avec des erreurs lors d'une exécution ultérieure (avec une commande légèrement modifiée, bien sûr), offrant peut-être même une option pour spécifier le nombre de tentatives de réessai ... tout comme comment ddrescue fonctionne avec des blocs, seulement je veux un utilitaire qui fonctionne avec des fichiers / répertoires spécifiques comme rsync.

Suis-je en train de rêver ici, ou existe-t-il quelque chose qui puisse le faire? Ou peut-être même un moyen de faire fonctionner rsync ou ddrescue de cette manière? Je suis vraiment ouvert à toutes les solutions qui pourraient fonctionner, tant qu'elles me permettent de choisir les fichiers que je veux "sauver", et peuvent ignorer les fichiers contenant des erreurs lors de l'exécution initiale, et réessayer / réessayer ces erreurs plus tard.

Jusqu'à présent, j'ai essayé rsync avec les options suivantes, mais il reste souvent bloqué sur un fichier plus longtemps que le délai d'expiration, et idéalement je voudrais juste qu'il passe au fichier suivant et revienne plus tard aux fichiers qu'il obtient collé sur. Je ne pense pas que ce soit possible cependant. Quoi qu'il en soit, voici ce que j'utilisais jusqu'à présent:

rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/

Réponses:


3

J'ai un Hitachi de 3 To qui se lit douloureusement lentement, ddrescue fonctionnera au niveau du fichier. Mais pas sur les répertoires. Cependant, je n'ai pas pu faire fonctionner les options --timeout ou --min-read-rate de ddrescue.

Vous voudriez le faire dans un script pour récupérer un fichier à la fois.

cat listoffiles | while read file
pipe while> do
pipe while> ls -l "$file"
pipe while> ddrescue -n -e1  "$file" /cc/RecoveredFiles/"$file" /cc/RecoveredFiles/"$file".llog
pipe while> date
done | tee -a  /cc/RecoveredFiles/ddrescue.log

3

Peut-être que rsync a changé au fil des ans depuis que cette question a été posée.

D'après mon expérience, il fait rsyncactuellement un excellent travail en copiant des choses sur un disque dur en train de mourir, avec

rsync -a <src> <dest>

Il se déplacerait rapidement s'il rencontrait des erreurs, et lorsque la réexécution reviendrait pour réessayer ces fichiers.

rsync --version rapports rsync version 2.6.9 protocol version 29

Concernant les autres réponses:

Les réponses de 2011 semblent promouvoir des outils qui ne sont que des équivalents commerciaux de ddrescue - aucune indication qu'ils sont conscients des fichiers. De poisson. La réponse de 2013 est intéressante.


2

Grande question, j'adore le niveau de détail. Pour un utilitaire qui fonctionnerait bien dans ce scénario, je recommanderais d'essayer Filescavenger de Quetek . Il permettra des relectures excessives dans le nombre de 100+, mais plus important encore, il dispose d'une fonction d'imagerie de disque qui vous permettra de vider l'intégralité du contenu sur une image sans perdre de temps à essayer d'évaluer les fichiers, puis de charger l'image et de la parcourir. pour les fichiers. L'utilitaire coûte 50 $ pour les utilisateurs à domicile, mais vous pouvez le télécharger et le tester au point de voir ce qui peut être récupéré de l'image avant de dépenser de l'argent.

Si c'est une utilisation professionnelle, cela vous coûtera un sou, mais gagne des fonctionnalités importantes, notamment la prise en charge des baies de raid logiques et matérielles.

Si cela échoue également, vous avez peut-être dépassé le stade des outils de récupération de logiciels. Si vous êtes et vous pouvez justifier le coût de la récupération en laboratoire, faites-moi savoir dans quel pays, état et ville vous vous trouvez. Je peux recommander l'un de nos laboratoires ou des concurrents près de chez vous.

Chris


1

Vous voulez un copieur progressif . Il vise à faire des disques entiers, mais comme il prend un chemin de fichier comme paramètre, il devrait également fonctionner pour les fichiers individuels. Je ne pense pas que cela fonctionnera pour les répertoires - vous devrez spécifier chaque fichier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.