Copier en ignorant les erreurs, c'est possible ?

  • Créateur du sujet Créateur du sujet vibevokal
  • Date de début Date de début
A

Anonyme

Invité
Bonjour,
J'ai quelques soucis avec mon disque externe qui contient des données assez précieuses.
Je l'ai réparé grâce à DiskWarrior mais quelques erreurs subsistent car lorsque j'essaie de copier ce que mon disque externe contient, vers un autre disque (qui a suffisement de place). Le Finder m'annonce qu'il ne peut terminer l'opération car certaines données de x fichier n'ont pas pu être lues ou écrites. (Code d'erreur -36)

Est-ce que quelqu'un connaît un logiciel ou un truc qui permet de continuer à copier malgré les erreurs (afin que je puisse récupérer un maximum de données) ?
 
Je ne sais pas s'il existe un tel outil. Mais, en général, dans des cas comparables j'ai réussi à sauver les meubles en allant copier dossier par dossier. En effet, en général, quand tu as ce genre de message, ce n'est pas un refus général de copier, mais un arrêt de la copie. Autrement dit, une partie des fichiers est déjà copiée et le tout s'est arrêté au premier fichier "inaccessible".

En reprenant la copie dossier par dossier, on arrive à délimiter les fichiers concernés et recopier tout le reste. C'est déjà pas si mal. Pour les fichiers en question, par contre, c'est parfois plus compliqué. Encore que, dans les premiers temps d'OS X, j'aie rencontré des soucis de ce style tout bêtement parce que les noms de fichiers - qui avaient été créés sous Mac OS 9 - comportaient des signes entre-temps interdits, en particulier un certain nombre de documents pour lesquels j'avais mis la date de création avec des "slashes". Et ça suffisait à bloquer le processus de copie :(
 
J'y avais pensé à copier les dossiers un par un mais il y en a plus de 1000 sans compter les sous-dossiers..

Et en ce qui concerne les erreurs lors de la copie c'est parce que les fichiers sont réellement abîmés à mon avis (le disque étant pas tout neuf)
 
Le mieux, je pense, c'est de faire au coup par coup... ou peut etre un automator, au coup par coup, qui annule et qui liste les erreurs? (si tu es sur 10.4.x)
 
Tu peux utiliser la commande cp dans un terminal :

Bloc de code:
$ cp -R /ton/disque/* destination/de/la/copie
Mais je crois que ça n'affiche pas d'état d'avancement, tu peux donc rajouter l'option v pour voir les fichiers en train de se copier (cp -Rv).
S'il trouve des erreurs, je pense qu'il n'arrêtera pas la copie. Sinon, va voir dans le manuel de cp (man cp), il y a peut-être une option pour ne pas tenir compte des erreur.
 
Je ne m'y connais trop en lignes de code, j'viens d'essayer ceci mais j'n'y arrive pas.

Last login: Sat Mar 31 22:24:38 on ttyp1
Welcome to Darwin!
power-mac-g4-de-vokal:~ vokal$ cp -R /HD Externe/* HD 2/

Puis il me mets ça :

usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src target
cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src1 ... srcN directory
power-mac-g4-de-vokal:~ vokal$

Je dois changer quelque chose?
 
Il te dit que tu n'utilises pas la bonne commande, c'es tout. Je ne connais pas du tout la commande cp, désolé ;) (mais y'en a certains ici.. :siffle: ;))
 
Je ne m'y connais trop en lignes de code, j'viens d'essayer ceci mais j'n'y arrive pas.

Last login: Sat Mar 31 22:24:38 on ttyp1
Welcome to Darwin!
power-mac-g4-de-vokal:~ vokal$ cp -R /HD Externe/* HD 2/

Puis il me mets ça :

usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src target
cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src1 ... srcN directory
power-mac-g4-de-vokal:~ vokal$

Je dois changer quelque chose?

Bah il faut que tu donne le bon chemin vers ton disque. Si tes deux disques sont montés dans Mac OS X, ils apparaitront alors dans le dossiers /Volumes.
Fais d'abord un "ls /Volumes" pour trouver le nom de tes disques.

Tu devras au final faire quelque chose du genre "cp -R /Volumes/DISQUE1/* /Volumes/DISQUE2/"

Au cas où tu as des espaces dans le nom de tes disques, fais les précéder d'un anti-slash \ dans la commande : "cp -R /Volumes/Mon\ Disque/* ... "
 
Ca a marché !
Il me dit même quels sont les fichiers endommagés à la fin.
UN GRAND MERCI A VOUS TOUS !
 
pour les fichiers qui ont ratés, tu peux essayer de les recuperer...
des fois, j'ai eu ca, l'erreur de lecteur tombe pas sur le meme fichier... et donc, tu pourrais peut etre tout recuperer ;)
content que tu es reussi, c'est toujours genant de perdre des données :rose:
 
Méthode personnelle pour les disques de grosse capacité (1 Seagate 3To qui après 4 mois sans incidents cumule les erreurs : modèle à éviter).
Nom du disque d'origine : SEAG3TO
Nom du disque et dossier de destination : MAC-APP/Save1

1/ Ouvrir un terminal.
Je sauve la taille des dossiers qui sont sur la racine du disque incriminé dans le fichier log-SEAG3TO-taille.txt
du -sh /Volumes/SEAG3TO/*/ >log-SEAG3TO-taille.txt
(on peux faire plus détaillé avec /*/*/ qui prendra les dossiers des dossiers racine : taille disque/dossier/dossier)

2/ J'ouvre le fichier généré avec Textedit ou tout autre utilitaire de texte.
Ca me permet d'avoir un aperçu de ce qu'il faut sauver.

3/ Je commence à sauver le dossier nommé ressources
cp -Rp /Volumes/SEAG3TO/ressources /Volumes/MAC-APP/Save1/
Instruction qui va créer le dossier MAC-APP/Save1/ressources et copier tous les fichiers lisibles.
Les erreurs sont listées au fur et à mesure dans le terminal.
Quand le terminal rend la main, je fait un copier/coller dans un autre fichier texte pour garder une trace.

4/
L'instruction
du -sh /Volumes/MAC-APP/Save1/ressources
me permet de visualiser rapidement si la taille de sauvegarde correspond à peu prêt à celle d'origine.
S'il y-a trop de différences, je renomme le fichier destination (en ressources-001 par exemple) et refait la procédure à partir de 3/
jusqu'à obtenir un résultat à peu prêt satisfaisant quand c'est possible. Je garderais le dossier ressources-00x qui a le plus de données (selon les moments, le disque à problèmes parvient à délivrer plus de données).

5/ Je passe à un autre dossier, voir plusieurs pour des dossiers de petites taille, en les mettant entre {} séparés par une virgule {dossier1,dossier2,...} tel que présenté ici pour les dossiers Works01 à Works03 :
cp -Rp /Volumes/SEAG3TO/{Works01,Works02,Works03} /Volumes/MAC-APP/Save1/
du -sh /Volumes/MAC-APP/Save1/{Works01,Works02,Works03}


Pour les dossiers avec un nom composé de caractères comme des espaces, je mets entre guillemets :
cp -Rp /Volumes/SEAG3TO/{"Docs septembre 2016","Docs administratifs","copy du système !"} /Volumes/MAC-APP/Save1/

L'intérêt de faire une copie selective (au lieu de tout le disque d'un seul coup) est qu'on peut prioriser la sauvegarde des dossiers importants. On permet ainsi une sauvegarde par branche, ou sous-branche quand un sous-dossier très important ne veut pas passer.
Si par exemple la copie "Docs administratifs" a permis de sauver "Docs administratifs/impots", "Docs administratifs/edf" mais pas "Docs administratifs/assurances" je peux concentrer les efforts sur le dossier incriminé :

cp -Rp "/Volumes/SEAG3TO/Docs administratifs/assurances" "/Volumes/MAC-APP/Save1/Docs administratifs/assurances"


La méthode est évidement perfectible.
On peut par exemple scripter (liste d'instructions à lancer dans un fichier) et permettre en plus du comparatif de taille de dossiers un comparatif du nombre de fichiers dans les dossiers (Instruction ls -lA |wc -l si je ne m'abuse).
mais j'espère que l'aide fournie ici donne déjà une méthode simple et compréhensible ;)
 
En espérant que ceux qui ont répondu en 2007 fassent un passage maintenant. :D

C'est d'avantage destiné à ceux qui tomberaient sur le sujet maintenant. J'y ai bien atterris moi-même ;)

Quelques précisions :
Il y-a parfois des erreurs "Permission denied"
Pour passer outre, et si on a le mot de passe administrateur, il faut faire précéder les commandes par sudo :
sudo cp -Rp /Volumes/SEAG3TO/ressources /Volumes/MAC-APP/Save1/

Pour avoir testé plusieurs utilitaires :
EaseUs Data Recovery
StellarPhoenix Data Recovery
Disk Drill ...
Aucun ne s'est révélé aussi efficace que testdisk, outil gratuit, qui malheureusement n'existe qu'en lignes de commande (site cgsecurity).
Je me serais épargné des heures de galère si j'avais commencé par la méthode indiquée plus haut.
Alors, cela vient sans doute avec beaucoup de retard. Mais ces quelques lignes auront peut-être de l'utilité pour quelqu'un qui tomberait sur cette conversation aujourd'hui ;)

A noter :
Depuis mes déboires (perte de partitions et de données) je lance systématiquement 1 opération qui prend 5mn, quand je reçois et partitionne un nouveau disque dur.
Après partitionnement et formatage :
sudo diskutil list
qui liste les disques présents (/dev/disk0 , /dev/disk1 ...) avec leurs partitions et tailles respectives.
J'identifie le disque dont je veux le détail, puis je lance un fdisk sur celui-ci, par exemple :
sudo fdsisk /dev/disk1
Ce qui donne un tableau avec le nombre de cylindres/secteurs, secteur début et fin pour chaque partition.
Je fait alors un copier/coller dans un fichier que je garde précieusement (sur clé usb, dans mon dossier de travail système et dans un document sur internet).
Ainsi, le jour ou le disque en question perd ses partitions, j'ai les informations pour les reconstruire précisément, et pour retrouver les fichiers qui le peuvent encore.

La méthode la plus simple est bien entendu de faire une sauvegarde régulière de ses données les plus précieuses, mais ça devient fastidieux et coûteux quand on a plusieurs terras disséminés sur plusieurs disques externes.
L'achat d'un NAS est alors la solution idéale, pour qui a les moyens :)