Comment dire à rsync d'ignorer des fichiers sur un bloc de disque dur endommagé, au lieu d'être bloqué en essayant de le lire

13

J'essaie de récupérer des fichiers à partir d'un disque contenant des erreurs matérielles.

Le disque a été réparé par l'utilitaire de disque, mais il m'a dit que le disque était endommagé, j'ai donc besoin de tout sauvegarder avant qu'une panne ne se produise.

J'ai donc essayé de copier les fichiers via le Finder, mais ça reste bloqué. J'ai essayé d'autres utilitaires et ils sont bloqués en essayant de copier les fichiers, lorsque la tête frappe le bloc endommagé.

J'ai donc essayé avec rsync, et cela semble fonctionner; mais ça prend une éternité quand je frappe un mauvais bloc.

Je me demandais donc s'il y avait un moyen de dire à Rsync de ne même pas s'embêter avec un fichier, s'il prend trop de temps? Soit je peux spécifier le nombre d'essais avec chaque fichier, soit combien de temps il doit essayer pour chaque fichier?

Je ne sais pas combien de temps ce lecteur durera honnêtement, donc je veux retirer toutes les données dès que possible, alors que je peux toujours le monter et voir les données dessus dans le Finder.

C'est ce que j'utilise comme commande; s'il vous plaît, conseillez s'il existe un moyen de réduire l'essai sur un fichier, donc je peux avoir rsync pour essayer de lire les blocs endommagés, mais évitez de rester coincé sur un secteur spécifique pendant trop longtemps.

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

Merci d'avance.

ran-tan-plan
la source
3
Si le lecteur a des secteurs endommagés, il vaut mieux essayer d'imaginer le lecteur avec quelque chose comme dd_rescue, il a des fonctionnalités avancées pour faire face aux secteurs défectueux.
jmreicha
Je pense que @jmreicha a la bonne idée, mais à l'avenir, si vous avez des questions techniques sur rsync, des gourous amicaux sont disponibles sur la liste rsync: lists.samba.org/mailman/listinfo/rsync
Joe

Réponses:

10

Réponse courte: rsyncce n'est pas le bon outil à utiliser dans ce cas: son utilisation peut même être nuisible.
Utilisez ddrescueplutôt (mieux que dd_rescue). Il est capable de faire ce que vous demandez.


Si le disque est physiquement endommagé, il est possible de le briquer lors de toute tentative de réparation.

Ce n'est pas seulement une question sur l'utilisation de votre temps , quand rsyncsemble se bloquer pour toujours à l'approche d'un secteur endommagé. Le problème est qu'avec des opérations répétées, une défaillance irréparable peut se produire, et vous ne pourrez plus récupérer vos données sans remplacement coûteux de pièces (toujours si cela sera toujours possible et que vous n'aurez pas maçonné votre disque dur ).

Dans ce cas, la procédure la plus sûre que j'ai trouvée est

  1. Pour créer une image brute sur un autre disque non cassé.
  2. Pour créer une copie de cette image.
  3. Pour travailler sur la copie pour fixer le système de fichiers et de sauver les fichiers .

Pourquoi la copie? Parce que s'il échoue quelque chose dans l' étape de réparation du système de fichiers , vous pouvez toujours recommencer sans avoir à toucher à nouveau le disque dur endommagé d'origine .

Je vous suggère d'utiliser ddrescue, pour faire l'image disque brute, les défauts inclus, car cela fonctionne très bien même en cas d'erreurs de lecture.


Comment faire avec ddrescue

Vous pouvez utiliser ddrescueexactement ce que vous souhaitez utiliser rsync, en sautant les secteurs endommagés sans réessayer ni les fractionner, en copiant autant de données que possible.
Cette commande est ci-dessous (au lieu de /dev/hda1vous mettre votre appareil):

ddrescue --no-split /dev/hda1 imagefile logfile

Après avoir fait ce premier passage (le plus rapide ), vous pouvez essayer de l'affiner en essayant d'accéder 3 fois en cas d'erreur.

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

Vous pouvez continuer d'affiner l'image en répétant les ddrescueappels de commandes avec d'autres options, en essayant à chaque fois d'extraire plus de données (voir les références). Lorsque vous aurez terminé, vous pouvez créer la copie (si vous avez tout l'espace nécessaire), puis réparer le système de fichiers .

Notez que l'image brute sera aussi grande que le disque dur d' origine .
Vous pouvez trouver sur Internet, sur ce site et sur d'autres sites de StackExchange de nombreuses questions et réponses sur la façon de récupérer des données avec ddrescueou d'autres outils.

Références:

Hastur
la source
en effet, dd_rescue est la voie à suivre. Je l'avais dans ma réponse originale, il y a 2 ans; mais pour certaines raisons, quelqu'un a décidé que je ne pouvais pas répondre à ma propre question :) Merci pour la réponse et les détails impressionnants
rataplan
@newbiez: Au lieu de cela, j'ai eu un grave problème de disque avec mon disque dur principal presque brique ... alors j'ai rencontré ddrescueet ses amis :-) À propos de votre réponse, un seul mot: bizarre ... postez-le à nouveau et si quelqu'un essaiera de refermer Je voterai oui pour rouvrir (je n'ai jamais utilisé ce nouveau pouvoir : D)
Hastur
1
L'option --no-split a été supprimée dans les nouvelles versions de ddrescue. Utilisez plutôt --no-scrape. Voir lists.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl