10.11 El Capitan Carte microSDXC impossible à modifier ou formater

Hypnonaut

Membre confirmé
1 Octobre 2015
12
0
34
Salut à tous

J'ai un problème bizarre avec une carte microSDXC Sandisk de 64 GB que j'utilisais sans problèmes depuis longtemps jusqu'ici et sur laquelle je mets de la musique pour mon lecteur MP3 : je n'arrive plus à ajouter de fichiers/dossiers dessus.

Ce qui est bizarre, c'est que quand je copie des fichiers dessus, tout se passe normalement et ils s'affichent dans le Finder sur la carte, mais je ne peux pas les ouvrir (mon lecteur audio refuse de lire les morceaux). Quand j'enlève la carte et que je la remets ensuite, ces fichiers qui n'ont de toute façon pas vraiment été copiés n'apparaissent plus (normal).

Autre problème : je ne peux pas supprimer de fichiers/dossiers sur la carte ! Là encore, si je les supprime depuis le Finder, tout semble se passer normalement, je vois la capacité dispo sur la carte augmenter quand je vide la corbeille, mais quand j'enlève et remets la carte, le dossier que j'avais effacé est revenu. D'ailleurs, il y a deux dossiers que j'avais supprimés de la carte il y a quelques semaines qui réapparaissent dans la corbeille à chaque fois que je remets la carte. C'est super bizarre ! J'ai même essayé de tout supprimer manuellement sur la carte mais là encore, tout réapparaît quand je remets la carte.

Le pire, c'est que je peux même pas formater la carte ! En passant par l'utilitaire de disque, un coup ça marche pas (il me dit que le formatage échoue), un coup ça marche sans marcher (il me dit que le formatage a été effectué mais en fait non, rien n'a été effacé).

En gros, ma carte microSDXC et son contenu ont été figés dans le temps, on dirait. Je vois pas du tout quoi faire. Vous avez une idée ?

Merci d'avance, a+
 
Salut Hypnonaut

Ta carte attachée à ton Mac > va à : Applications > Utilitaires > lance le «Terminal» > saisis la commande (simplement informative) :
Bloc de code:
diskutil list
et ↩︎ (presse la touche "Entrée" du clavier pour activer la commande) --> tu vas voir s'afficher le tableau des disques attachés à ton Mac (en interne / externe) avec leurs tables de partition et leurs partitions décrites en format > nom > taille > device (appareil logique).

=> peux-tu poster ici ce tableau par copier-coller (reste en mode texte sans faire de photo d'écran) ? - c'est pour avoir une idée des paramètres logiques de ta carte.
 
Salut. Voici le tableau :
Bloc de code:
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 230917E8-5731-461F-94F3-57C2FAA5633B
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS My Passport             2.0 TB     disk2s2
/dev/disk3 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *63.9 GB    disk3
   1:             Windows_FAT_32 NO NAME                 63.8 GB    disk3s1

C'est le disk3, donc...
Et je peux pas la partitionner, le bouton est grisé dans l'utilitaire de disque.
 
Salut Hypnonaut

Je te propose à titre d'essai les commandes suivantes :

- a) d'abord :
Bloc de code:
diskutil umount disk3s1
et ↩︎ qui démonte le volume NO NAME sans désattacher le disque du Système en retournant le message :
Bloc de code:
Volume NO NAME on disk3s1 unmounted
Vérifie que l'icône du volume a bien disparu du Bureau.

- b) ensuite :
Bloc de code:
sudo fdisk -i /dev/disk3
et ↩︎ --> une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe - et derechef ↩︎. La commande devrait te retourner un affichage terminé par :
Bloc de code:
Do you wish to write new MBR and partition table? [n]
--> tu tapes :
Bloc de code:
y
(comme yes) et ↩︎. Cette commande intialise le bloc 0 qui porte la table de partition MBR.

- c) enfin :
Bloc de code:
diskutil partitionDisk /dev/disk3 gpt jhfs+ CARTE 100%
et ↩︎ qui écrit une GPT sur l'en-tête du disque en exportant un volume JHFS+ intitulé CARTE.​

=> Ça, c'est la théorie. Si ça bloque à un moment donné > à quelle étape et avec quel message d'erreur ?
 
Dernière édition par un modérateur:
Salut

Par hasard, la carte ne serait-elle pas protégée physiquement contre l'effacement (petit switch)?
 
:coucou: Jean

J'ai l'impression qu'on finit toujours par avoir des ennuis avec les Cartes SD. Genre : impossibilité d'écrire au volume monté.

Ta conjecture : verrouillage par déplacement accidentel de la sécurité coulissante > demande à être vérifiée, en effet. De mon côté, j'étais parti sur l'hypothèse : secteur d'amorçage corrompu. D'où le test proposé avec fdisk > pour voir s'il est possible d'effacer la MRB en place en en remettant une vide.
 
:coucou: Jean

J'ai l'impression qu'on finit toujours par avoir des ennuis avec les Cartes SD. Genre : impossibilité d'écrire au volume monté.

Ta conjecture : verrouillage par déplacement accidentel de la sécurité coulissante > demande à être vérifiée, en effet. De mon côté, j'étais parti sur l'hypothèse : secteur d'amorçage corrompu. D'où le test proposé avec fdisk > pour voir s'il est possible d'effacer la MRB en place en en remettant une vide.
Attendons le verdict.;)
 
Salut Hypnonaut

Je te propose à titre d'essai les commandes suivantes :

- a) d'abord :
Bloc de code:
diskutil umount disk3s1
et ↩︎ qui démonte le volume NO NAME sans désattacher le disque du Système en retournant le message :
Bloc de code:
Volume NO NAME on disk3s1 unmounted
Vérifie que l'icône du volume a bien disparu du Bureau.
(...)​
Salut. Merci de ta réponse.

Je bloque dès la première étape : l'icône disparaît pas du bureau et j'ai ce message
Bloc de code:
Volume NO NAME on disk3s1 failed to unmount: dissented by PID=0 (kernel)

Pour info, quand j'éjecte la carte, je reçois pafois (pas toujours) un message d'erreur qui me dit que la carte est utilisée par une appli (c'est faux) et tout de suite après, par dessus ce message, je reçois un autre message qui me dit que la carte a bien été éjectée. Encore un truc bizarre.
Je peux aussi lire les fichiers qui étaient déjà présents sur la carte auparavant sans problème, et je peux les transférer et les lire sans problème sur mon Mac.

Ah, au fait, c'est pas le slider sur le côté qui est en position verouillage, hein, ça serait trop facile. :D
 
Alors il faut employer « les grands moyens »
454836_original.gif
361608_original.png


Télécharge ici l'utilitaire de tierce partie ☞GPT fdisk☜ de Roderick Smith > tu récupères un paquet d'installation : gdisk-1.0.1.pkg > tu le double-cliques pour installer le binaire gdisk at: /usr/local/bin/gdisk. Tu peux désormais appeler directement cet exécutable dans le «Terminal».

Je te le fais installer, car gdisk dispose d'une option de "zapping" (effacement des tables de partition) du secteur d'amorçage d'un disque > capable d'outrepasser (override) le non-démontage des volumes de ce disque.

Donc tu lances à présent le «Terminal» et tu effectues la procédure suivante :

- a) il est absolument vital, en préambule, que tu repasses la commande :
Bloc de code:
diskutil list
et ↩︎ > pour récupérer le n° exact du disque de ta carte. Je vais continuer de supposer qu'il s'agit de disk3, mais il faudrait absolument que tu changes ce n° de disque, au cas où il aurait été attaché au Système à un rang différent et porterait donc un n° de device différent.

--------------------​

- b) tu appelles gdisk sur la cible du disque de ta carte par la commande :
Bloc de code:
sudo gdisk /dev/disk3
et ↩︎ --> une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe - et derechef ↩︎. La commande devrait te retourner un affichage ressemblant à ceci :
Bloc de code:
GPT fdisk (gdisk) version 1.0.1

Warning: Devices opened with shared lock will not have their partition table automatically reloaded!
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions to GPT format!
***************************************************************

Warning! Main partition table overlaps the first partition by 32 blocks
You will need to delete this partition or resize it in another utility.

Warning! Secondary partition table overlaps the last partition by 33 blocks!
You will need to delete this partition or resize it in another utility.

Command (? for help):
> le Command (? for help): final est une invite de commande interactive propre au logiciel.

--------------------​

- c) tu tapes :
Bloc de code:
x
(comme expert mode) et ↩︎ --> tu obtiens en retour l'affichage :
Bloc de code:
Expert command (? for help):
qui est l'invite de commande interactive du mode expert.

--------------------​

- d) tu tapes :
Bloc de code:
z
(comme zap : effacer le secteur d'amorçage) et ↩︎ --> tu obtiens en retour l'affichage :
Bloc de code:
About to wipe out GPT on /dev/disk2. Proceed? (Y/N):

--------------------​

- d) tu tapes :
Bloc de code:
y
(comme yes) et ↩︎ --> tu obtiens en retour l'affichage :
Bloc de code:
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N):
qui, en gros, te prévient que le kernel ne va y voir que du feu et te demande si tu veut effacer aussi la table de partition MBR du bloc n°0 => bien sûr que tu le veux ! Tu n'as appelé gdisk que pour pouvoir effacer ce foutu bloc (la GPT effacée auparavant étant un artefact créé par gdisk afin d'avoir un "objet d'attaque"...).

--------------------​

- e) tu tapes :
Bloc de code:
y
(comme yes) ↩︎ --> tu obtiens en retour l'affichage :
Bloc de code:
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
(qui te redit que le kernel va continuer de faire comme si le volume était monté) > et tu récupères l'invite de commande réglementaire du «Terminal» - signe que le processus gdisk a quitté.

--------------------​

- f) ton volume NO NAME devrait en apparence être toujours monté > mais en fait c'est une résilience du kernel > qui se figure que ce volume a toujours ses conditions de montage sur le disque 3 alors qu'il n'y a plus aucune table de partition sur ce disque. C'est donc un volume fantôme > tu le démontes formellement (sélection et ⌘E) et tu détaches physiquement ta carte de son alvérole du Mac.

--------------------​

- g) tu ré-insères physiquement ta carte dans sa loge du Mac > si tu vois s'afficher ce panneau :

492598_original.png


=> la partie est gagnée. Tu presses le bouton : Ignorer > tu relances le «Terminal» > tu repasses un :
Bloc de code:
diskutil list
pour confirmer le n° de disque de la carte (je continue de supposer que c'est toujours disk3) > tu enchaînes par la commande :
Bloc de code:
diskutil partitionDisk /dev/disk3 mbr fat32 CARTE 100%
qui écrit une MBR valide sur le bloc 0 du disque en exportant un volume principal intitulé CARTE au format FAT-32.

--------------------​
 
- a) il est absolument vital, en préambule, que tu repasses la commande :
Bloc de code:
diskutil list
et ↩︎ > pour récupérer le n° exact du disque de ta carte. Je vais continuer de supposer qu'il s'agit de disk3, mais il faudrait absolument que tu changes ce n° de disque, au cas où il aurait été attaché au Système à un rang différent et porterait donc un n° de device différent.
Quelque chose m'échappe à cette étape : comment je trouve le vrai numéro de disque de ma carte et comment je le change ? Pour info, si je lance la commande "diskutil list" alors que mon disque dur externe (le disk2) n'est pas branché, la carte externe s'appelle toujours disk3.

Ah, et je suppose que là :
Bloc de code:
About to wipe out GPT on /dev/disk2. Proceed? (Y/N):
Tu t'es gouré et tu voulais dire "/dev/disk3", non ?
 
Dernière édition:
Salut Hypnonaut

Eh bien ! ta carte inséré dans sa loge du Mac > passe la commande :
Bloc de code:
diskutil list
qui va te retourner le tableau des disques attachés à ton Mac avec leurs partitions > poste ce tableau ici par copier-coller et je te dirai tout de suite quelle commande passer pour appeler gdisk sur le bon disque.

[Suppose, parce que tu aurais aussi une clé USB et un DDE attachés à ton Mac, que ta carte, insérée après ces périphériques, soit identifiée comme disk4 > il faudrait donc mentionner disk4 dans la commande qui appelle gdisk pour ne pas initialiser le DDE ou la clé USB - c'est ça que j'avais voulu dire.]
 
Merci de ta réactivité, t'as dû répondre alors que j'étais encore en train d'éditer mon message et de rajouter des infos ! :merci:

Bref, voici ce que me donne diskutil list si je branche d'abord mon disque dur externe (disk2, un WD MyPassport de 2 TB), puis ma carte microSDXC (disk3, une SanDisk, pour info) :
Bloc de code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                Logical Volume on disk0s2
                                230917E8-5731-461F-94F3-57C2FAA5633B
                                Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS My Passport             2.0 TB     disk2s2
/dev/disk3 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *63.9 GB    disk3
   1:             Windows_FAT_32 NO NAME                 63.8 GB    disk3s1
 
Alors elle est toujours identifiée comme disk3 - pas de changement. Donc tu commences par appeler gdisk sur le disque de ta carte par la commande :
Bloc de code:
sudo gdisk /dev/disk3
et ↩︎ --> tu tapes en aveugle ton mot-de-passe admin à la demande de password --> et tu valides à nouveau par ↩︎

À partir de là > tu repars au § c) de mon message #10.

NB. Effectivement, j'avais fait une erreur de descriptif que tu as relevée > tu liras :
Bloc de code:
About to wipe out GPT on /dev/disk3. Proceed? (Y/N):
 
Tu vas rire mais j'ai tout fait comme tu as dit et à l'étape g, j'ai pas le message d'alerte. La carte et son contenu s'affichent normalement. Le diskutil a pas changé.
 
Tu n'as pas eu de message d'erreur de gdisk disant qu'il était impossible d'ouvrir le disque pour y écrire ou quelque chose comme ça ?

Est-ce que tu peux refaire une passe pour vérifier. Donc en résumé de la suite des commandes :
Bloc de code:
sudo gdisk /dev/disk3
x
z
y
y
--> extraire la carte --> la ré-attacher --> vérifier s'il y a toujours une table de partition sur le disque ou non.

Chaque fois que j'ai utilisé gdisk expérimentalement avec cette suite de commandes > je me suis toujours retrouvé avec un disque totalement vide de tables de partition (MBR aussi bien que GPT) et donc sans partitions ni formats de partition. Un disque blanc. Sur lequel il n'y a plus qu'à écrire une table de partition ad hoc.
 
J'ai refait un essai et rien ne change. Pas de message d'alerte particulier. La seule différence par rapport à ta procédure, c'est que j'ai pas la ligne suivante :
Bloc de code:
Warning! Main partition table overlaps the first partition by 32 blocks
You will need to delete this partition or resize it in another utility.
J'ai que le message suivant ("Secondary partition table...").
Quand j'ai voulu installer le binaire, il m'a demandé sur quel disque je voulais l'installer et j'ai sélectionné le HDD interne de mon mac, je sais pas où il l'a mis exactement.

Voici ce que m'affiche l'utilitaire de disque pour ma carte microSDXC :
2zrdblx.png

2eyaxaa.png
 
gdisk s'installe par défaut at: /usr/local/bin/gdisk. Tout se passe comme s'il ne parvenait pas à faire sauter la MBR du bloc 0 - la seule table de partition de ta carte apparemment.

Je te propose encore une autre procédure via gdisk :

- tu appelles à nouveau gdisk sur le disque de ta carte par :
Bloc de code:
sudo gdisk /dev/disk3
à l'invite de commande Command (? for help): tu tapes directement
Bloc de code:
o
et ↩︎ --> qui te renvoie un :
Bloc de code:
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N):
tu tapes :
Bloc de code:
y
et ↩︎ --> qui te réaffiche l'invite de commande :
Bloc de code:
Command (? for help):
--> attention ! la suppression des partitions et la création d'une nouvelle PMBR n'a pas été opérée au disque > seulement en mode cache. Donc tu tapes :
Bloc de code:
w
et ↩︎ (pour écrire au disque le cache) --> qui te retourne un :
Bloc de code:
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!

Do you want to proceed? (Y/N):
tu tapes :
Bloc de code:
y
et ↩︎ --> qui devrait t'afficher :
Bloc de code:
OK; writing new GUID partition table (GPT) to /dev/disk3.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
avec récupération de l'invite de commande du «Terminal».

=> démonte le volume > détache physiquement la carte du Mac > ré-attache-la --> qu'est-ce qui se passe ? Toujours le même volume qui monte ou aucun ? Panneau : le disque que vous avez inséré etc. ou pas ? Que renvoie un diskutil list ?
 
Alors gdisk n'est pas logé à meilleure enseigne que diskutil : tous les 2 plantent pour ce qui est d'écrire au disque. Ce qui corrobore ton expérience de départ.

Ce qui est le plus bizarre > c'est que gdisk ne livre pas de message d'erreur. Tout se passe comme si l'effacement de la table de partition actuelle et l'écriture d'une nouvelle opéraient > sans que rien ne s'opère en fait.

Bon : allez ! par acquit de conscience > convoquons le 3è larron (en foire) --> l'utilitaire fdisk.

D'abord tu démontes le volume NO NAME (mais pas dans le Finder > car ça désattacherait le disque) par la commande :
Bloc de code:
diskutil umount force /dev/disk3s1
et ↩︎ --> si tu as un message de succès :
Bloc de code:
Volume NO NAME on disk3s1 force-unmounted
tu continues en appelant fdisk sur le disk3 en mode interactif par la commande :
Bloc de code:
sudo fdisk -e /dev/disk3
et ↩︎ --> password à l'aveugle et ↩︎ --> il se peut que tu touches le retour suivant :
Bloc de code:
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1>
où peu importe le baratin initial --> fdisk: 1> est la commande interactive de fdisk. Tu saisis :
Bloc de code:
erase
et ↩︎ --> tu ré-obtiens l'invite de commande interactive :
Bloc de code:
fdisk:*1>
où l'« * » te signale qu'il y a une tâche en cache => tu saisis :
Bloc de code:
quit
et ↩︎ qui force l'écriture du cache avant de faire quitter l'utilitaire => tu devrais toucher :
Bloc de code:
Writing current MBR to disk.
avant récupération de l'invite de commande du «Terminal».

=> détache physiquement la carte du Mac > réattache-la => panneau : "le disque que vous avez inséré n'est pas lisible par cet ordinateur" ou bien comme précédemment rien de modifié au disque de la carte ?