MacBook Air Réparer et récupérer des fichiers sur un DDE

VivaLasVegas

Membre actif
18 Novembre 2014
150
19
Bonjour,

J’ai un souci, ça fait presque un mois que je me bats avec un DDE sur lequel j’ai près de 4To de données que je n’arrive pas à récupérer.
Quand je copie les fichiers vers un autre DDE j’ai régulièrement une erreur pour certains fichier « error -36 » qui empêche de coller ces fichiers.
Le souci étant que je n’ai aucune précision sur le fichier ou document exacte qui pose problème à l’intérieur du fichier que j’essaye de copier-coller.
Par exemple là j’ai une photothèque qui bloque… Donc impossible de savoir quelle photo ou vidéo a l’intérieur cause cette erreur qui empêche le processus dans sa totalité.
J’ai essayé plein de trucs… notamment la manip avec le terminal « dot_clean », j’ai essayé de réparer mon DDE avec la fonction SOS à de multiples reprises (mais à chaque fois la procédure se termine en indiquant que le DDE est en bon état….). J’ai aussi essayé de le réparer avec la commande de réparation du terminal, mais ça ne marche pas, ça fini toujours par éjecter le disque sans l’avoir réparé…


Je voudrais donc faire appel aux experts qui pourraient me dire s’il existe un moyen de trouver une aiguille dans une meule de foin sans y passer encore un mois lol. L’aiguille étant de détecter les fichiers qui doivent être « corrompus » et empêche les copier-coller vers le nouveau DDE ?
Une fois ces fichiers identifiés est il possible de les réparer ?

Si tout ça n’est pas possible, y’a t il un moyen pour « forcer » un copier coller quand on a cette fameuse erreur 36 ?

Merci d’avance pour votre aide

Pour info, le DDE est un WD my passeport for Mac.
 
Tu es sûr qu’il est suffisamment alimenté ?
S’il est auto-alimenté par le port usb du Mac, tu peux utiliser un câble avec double prises pour le brancher sur 2 ports usb du mac.
 

soit un raccourci ou un fichier caché ou problème d'autorisation
 
Pour info, le DDE est un WD my passeport for Mac.
C'est bien, mais est-ce que, selon tes anciennes réponses, tu connectes ce disque dur sur un MBA 13" Retina de 2020 ? Si oui, il n'y a que 2 ports USB-C sur le coté gauche et le 1er sert avant tout pour l'alimentation.

Ce que tu ne dis pas "est-ce que tu as toujours utilisé ce disque dur sur ce MBA, sur un autre Mac ou PC ?".
 
C'est bien, mais est-ce que, selon tes anciennes réponses, tu connectes ce disque dur sur un MBA 13" Retina de 2020 ? Si oui, il n'y a que 2 ports USB-C sur le coté gauche et le 1er sert avant tout pour l'alimentation.

Ce que tu ne dis pas "est-ce que tu as toujours utilisé ce disque dur sur ce MBA, sur un autre Mac ou PC ?".
Alors, je voulais pas rentrer dans tous les détails, car ça me semblait pas utile, donc voici plus d'infos, si ça peut permettre à quelqu'un de m'aider à trouver la solution pour récupérer mes données :

- voici déjà un lien vers un sujet que j'avais créé concernant un gros problème avec le MBA 2020 et mes DDE :

- j'ai un MBA 2020 + mon vieux MBA 2014 et mon IMAC.
Sur le MBA 2020 je ne peux brancher AUCUN DDE, ils sont systématiquement éjectés intempestivement et ça fait planter le MBA (il redémarre avec un gros "souffle").
Sur l'IMAC j'arrive à brancher tous mes DDE et au début je pouvais brancher ce fameux DDE sur lequel j'ai presque 4To de données et qui me pose problème aujourd'hui, mais depuis plus d'une semaine je ne peux plus l'y brancher -> impossible de faire un simple copier coller du DDE vers un autre, car soit le transfert reste bloqué en "préparation" pendant des heures, soit je ne peux carrément plus rien faire sur l'IMAC dès que je branche le DDE, car j'ai la souris qui se met en mode rond coloré qui tourne sans cesse, jusqu'à ce que l'IMAC finisse par redémarrer tout seul ou que je force le redémarrage...

Reste donc aujourd'hui que mon vieux MBA de 2014 sur lequel j'arrive à peu près à brancher ce satané DDE.
Malheureusement, ce n'est pas "parfait", sinon je ne serais pas ici à vous appeler à l'aide lol.

Donc sur le vieux MBA 2014, j'ai réussi à récupérer quelques données de mon DDE vers le nouveau DDE, mais au bout d'un moment ça fini par planter -> soit ça fait comme sur l'IMAC ("préparation du déplacement" qui bug pendant des heures, soit le rond coloré qui tourne jusqu'à redémarrage forcé) soit je ne peux pas accéder aux fichiers du DDE (quand j'entre dans un fichier, les fichiers et documents contenu à l'intérieur n'apparaissent pas).

Quand j'arrive à procéder à des déplacements de données, soit ça se passe très bien, soit j'ai certains fichiers qui occasionnent la fameuse erreur -36

Je vous donne un exemple :
dans un Fichier qu'on va appeler "A", dans lequel j'ai 10 sous-fichiers "A-B-C-D-E-F-G-H-I-J", lesquels contiennent eux aussi des sous-fichiers et des documents divers (word, Excel, ppt, Jpeg, vidéos etc.), quand j'essaye de transférer le fichier "A" vers le nouveau DDE, le déplacement commence et au bout d'un certain temps un message d'erreur -36 fini par s'afficher, sans me préciser quel sous fichier ou document est à l'origine du problème.
Je suis alors obligée d'entrer à l'intérieur du fichier "A" et d'essayer de copier coller chaque sous-fichier un par un.
Parfois ça marche (donc l'erreur a disparu comme par enchantement en faisant fichier par fichier.... ce qui est SUPER BIZARRE!) et parfois, j'ai à nouveau l'erreur -36, mais cette fois je peux identifier quel sous-fichier a posé problème et je recommence alors la manip avec ce sous-fichier, on va dire que c'est par exemple le sous-fichier "D" --> j'entre dedans et je copie colle un par un les sous-fichiers qui sont à l'intérieur du sous-fichier "D".
Le problème c'est que c'est hyper chronophage pour un DDE qui contient 4 To de données et que souvent j'ai à nouveau cette foutu erreur -36 qui apparait...

Dernière précision, ce DDE n'est utilisé que sur mes MAC mais un certains nombre de données viennent de PC (c'est pour ça que j'avais déjà essayé une "réparation" avec "dot_clean" quand j'ai commencé à avoir les erreur -36).
A savoir que, comme je l'ai indiqué en amont, j'ai même une photothèque qui m'affiche cette erreur -36 quand j'essaye de la copier coller vers le nouveau DDE....

J'aimerais donc avoir une solution pour identifier facilement et réparer les fichiers/documents qui posent problème. Ou alors avoir une solution pour forcer la copie des éléments vers le nouveau DDE, car je perds des heures et des heures avec ce problème depuis un mois et ça commence sérieusement à me gonfler...

J'espère que je vous ai fourni assez de détails ;-)
Merci d'avance :-)
 
Bonjour,

Perso,

Je ferais déjà un test de lecture avec un petit script pour voir si l’erreur provient à la lecture ou a l’écriture.

- Si problème a la lecture , un script qui travaille dossier par dossier, afin d’identifier le dossier responsable, puis fichier par fichier avec la création d’un log de la liste des fichiers, présent dans le dossier incriminé.

- Si problème à l’écriture, un script qui crée un log des chemins des fichiers qui posent problème .

Ceci permettrait de voir de si le problème est dû au fichier lui même, ou au nom du fichier (caractères pas compatibles etc…) ou ???

Un peu de temps à passer, mais c'est mieux que de chercher à la main.
 
Bonjour,

Perso,

Je ferais déjà un test de lecture avec un petit script pour voir si l’erreur provient à la lecture ou a l’écriture.

- Si problème a la lecture , un script qui travaille dossier par dossier, afin d’identifier le dossier responsable, puis fichier par fichier avec la création d’un log de la liste des fichiers, présent dans le dossier incriminé.

- Si problème à l’écriture, un script qui crée un log des chemins des fichiers qui posent problème .

Ceci permettrait de voir de si le problème est dû au fichier lui même, ou au nom du fichier (caractères pas compatibles etc…) ou ???

Un peu de temps à passer, mais c'est mieux que de chercher à la main.
Merci, mais comment on procède pour faire un test de lecture ? Peux-tu m'expliquer stp :-) ?
Est-ce que ce test se fera sur l'ensemble du contenu du DDE ?
Merci d'avance ;-)
 
je te met un petit applescript ci dessous qui lit tous les chemins de tous les fichiers se trouvant sur le DDE, s'il n'arrive pas à trouver le chemin il crée sur le bureau un fichier log "les erreurs.txt" avec le chemin qui lui a posé problème.

pour utiliser ce script:
Ouvrir l’application “Editeur de script” qui est dans Application—>Utilitaires
Choisir le bouton en bas à gauche “Nouveau document”, dans la fenêtre qui s’ouvre faire un copier-coller du script.
Cliquer sur le bouton "triangle play" en haut à droite “Exécuter”

Il te demande de sélectionner le disque ou le dossier à analyser, puis il fait le test et quand il a terminé il te met un message "terminé"
S'il à trouver des erreurs alors il y aura sur le bureau un fichier "les erreurs.txt"

Bloc de code:
tell application "Finder"
    set lechemin to choose folder with prompt "Sélectionnez le DDE ou le dossier principal à traiter ?"
   
    set tous to every file of entire contents of lechemin
   
    set nb to count tous
    --display dialog nb
   
    repeat with i from 1 to nb
        try
            set lefichier to item i of tous
           
            --obtenir le chemin du fichier
            set b to lefichier as string
           
           
        on error
            set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
            write b & return to lelog starting at eof
            close access lelog
           
        end try
    end repeat
   
    display dialog "terminé"
end tell
 
Comme je suis curieux, j'attends avec impatience le résultat du test que fera notre ami. ;)
 
@Locke
Si test sans erreur on fera alors un script qui fait la copie et qui crée un log si erreur trouvée j'espère que l'on pourra ainsi trouver l'aiguille dans la meule de foin LOL !
Par contre pour faire le script de copie en respectant la hiérarchie des dossiers ce sera un peu plus compliqué mais bon a voir!
 
Bonsoir,

Tant que j'y suis, je te remet un deuxième script.
Il te demande de choisir le DDE ou le dossier à copier, puis il te demande de choisir le DDE ou le dossier de destination.

Il lance la copie, en travaillant fichier par fichier et dossier par dossier et il crée un fichier texte "les erreurs.txt" sur le bureau contenant une erreur par ligne. A la fin il te met un message pour te dire qu'il a terminé.
Bien sur, ce sera plus long qu'une simple copie, mais j'espère que tu auras la liste des fichiers qui pause problème.
L'erreur -36 signifie qu'il ne trouve pas le fichier, mais les raisons peuvent être multiple ....

Bloc de code:
tell application "Finder"
    set chemin to choose folder with prompt "Sélectionnez le DDE ou le dossier contenant les dossiers et fichiers à dupliquer"
    set origine to chemin as string
    set destination to choose folder with prompt "Sélectionnez le Disque ou le dossier de destination"
    
    -- Copie fichier de l'origine (niveau 1)
    set chemindest to destination as string
    set lesfichiers to every file of chemin
    repeat with chaque_fichier in lesfichiers
        set aa to chaque_fichier as string
        try
            duplicate chaque_fichier to chemindest
        on error
            set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
            write aa & " COPIE DANS " & chemindest & return to lelog starting at eof
            close access lelog
        end try
    end repeat
    
    -- Appel pour traiter lesdossiers et sous dossiers
    my inspecter(chemin, destination, origine)
end tell

on inspecter(un_dossier, destination, origine)
    set dest to destination as string
    
    tell application "Finder"
        
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            
            -- traitement d'un dossier (récupère le chemin origine et crée le chemin destination)
            set ledossier to chaque_dossier as string --chemin en texte
            set nom to name of chaque_dossier -- récupère le nom du dossier en cours
            
            set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
            set AppleScript's text item delimiters to {origine}
            set fin to text item -1 of ledossier as string --récupère l arborecence dans le dossier original
            set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur   
            
            
            set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
            set AppleScript's text item delimiters to {nom}
            set fin2 to text items 1 thru -2 of fin as string -- arborescence moins le nom
            set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
            set dest2 to dest & fin2 -- le chemin complet sans le nom
            
            --Crée le dossier en cours sur la destination
            tell application "Finder"
                make new folder at dest2 with properties {name:nom} -- crée le dossier
            end tell
            
            set chemindest to dest2 & nom
            -- Copie tous les fichiers du dossier en cours dans le nouveau dossier destination)
            set lesfichiers to every file of chaque_dossier
            repeat with chaque_fichier in lesfichiers
                set aa to chaque_fichier as string
                
                try
                    duplicate chaque_fichier to chemindest
                on error
                    set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                    write aa & " COPIE DANS " & chemindest & return to lelog starting at eof
                    close access lelog
                end try
            end repeat
            
            
            
        end repeat
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier, destination, origine)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell