Formatage SDcard = "Couldn't open device"

Stegue

Membre actif
6 Février 2009
131
1
Bonjour,

Je voudrais formater une carte SD 4Go dont on ne voit qu'une seule partition de 58 Mo. (Peut-être parce que cette carte a été rendu bootable)
Bloc de code:
/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *4.0 GB     disk1
   1:                 DOS_FAT_16 SAUVEGARDE              58.7 MB    disk1s1

Et j'ai cette erreur dans le terminal:
Bloc de code:
Error: -69877: Couldn't open device

Comment je peux faire ?

(Je précise au cas ou, je tourne sur la beta de El Capitan)

Merci.
 
Salut Stegue.

Ta carte SD de 4 GB supporte une Table de Partition MBR (= "FDisk_partition_scheme") adaptée à Windows et exporte un volume ridiculement petit (58,7 MB) au format MS-DOS (= "FAT") adapté encore à Windows. Il y a de surcroît manifestement un Free_Space (espace libre hors partitionnement) de presque 3,5 Go. Pour remettre les choses au carré, ta clé attachée à ton Mac, repasse peut-être d'abord un petit :

Bloc de code:
diskutil list
et ↩︎ histoire de vérifier que l'identifiant de ta clé est bien toujours /dev/disk1 --> à partir de là, tu peux copier-coller la commande :

Bloc de code:
diskutil partitionDisk /dev/disk1 GPT jhfs+ brol 100%
et ↩︎

[NB. Au cas où tu n'aurais pas un droit de propriété suffisant sur la carte, alors préfixe la commande avec sudo qui requiert des droits root ainsi :

Bloc de code:
sudo diskutil partitionDisk /dev/disk1 GPT jhfs+ brol 100%
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 ↩︎]


--> tu vas normalement obtenir en sortie une clé avec Table de Partition GUID (adaptée Mac Intel) et format Mac OS étendu (journalisé) pour un volume unique plénier de 3,7 GB en /dev/disk1s2 (sans perte de Free_Space - rien que le petit en-tête /dev/disk0s1 de 209 Mo de l'EFI System Partition requise par la Table de Partition GUID) que j'ai intitulé brol par facétie (tu pourras toujours rebricoler le nom et remanipuler le format à ta guise). Si la commande ne passait pas, ça voudrait dire que la carte est verrouillée.

[Commentaire : le nouvel «Utilitaire de Disque» d'«El Capitan» est une daube de premier ordre --> ça promet...
361608_original.png
]
 
Dernière édition par un modérateur:
Merci pour ton aide mais malheureusement, j'ai la même erreur. :(
Bloc de code:
Started partitioning on disk1
Unmounting disk
Error: -69877: Couldn't open device
 
Je sentais bien que c'était trop facile, mon procédé. Je te propose à présent une nouvelle opération - d'une efficacité disons "moyenne".

Dans le «Terminal», vérifie bien toujours par diskutil list que ta carte est toujours identifiée en /dev/disk1 (au cas où tu aurais attaché d'autres disques) et alors commence par un :

Bloc de code:
sudo diskutil umountDisk force /dev/disk1
histoire de forcer le démontage du petit volume SAUVEGARDE (au cas où il serait monté et refuserait de se laisser démonter automatiquement ensuite lors de la commande suivante). Tu enchaînes par :

Bloc de code:
sudo diskutil eraseDisk jhfs+ brol /dev/disk1
--> si tout se passait bien, tu toucherais un :

Bloc de code:
Started erase on disk1
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Formatting disk1s2 as Mac OS Extended (Journaled) with name brol
Initialized /dev/rdisk1s2 as a 4 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished erase on disk1

Si ça ne marche pas non plus, ce serait à se demander s'il n'y a pas sur le secteur 0 de ta carte un bout de code de départ qui bloque le programme diskutil. Alors, à condition que le volume SAUVEGARDE soit bien toujours démonté (sinon tu vas être bloqué par un argument : "resource busy" à la commande qui vient) tu pourrais peut-être essayer de ré-intialiser ce secteur qui recèle la carte de partition ainsi :

Bloc de code:
sudo fdisk -i /dev/disk1
--> tu obtiens l'affichage suivant :

Bloc de code:
    -----------------------------------------------------

    ------ ATTENTION - UPDATING MASTER BOOT RECORD ------

    -----------------------------------------------------
Do you wish to write new MBR and partition table? [n]
à quoi tu réponds :

Bloc de code:
y
et ↩︎ et en sortie tu aurais peut-être (diskutil list) 2 partitions : une /dev/disk1s1 = carte d'amorçage Apple et un /dev/disk1s2 = espace Mac OS étendu (sans système de fichiers montable en volume). Si oui, soit tu récidives la commande eraseDisk du début, soit tu opères dans l'«Utilitaire de Disque» pour repartitionner et exporter un volume.

☞ si ça plante sur toute la ligne, j'ai encore dans ma musette un procédé disons "musclé"...
 
Ca plante. :(

La 1ere commande fonctionne:
Bloc de code:
Forced unmount of all volumes on disk1 was successful

Mais à la 2e commande:
Bloc de code:
Started erase on disk1
Unmounting disk
Error: -69877: Couldn't open device

Je tente la 3e et...
Bloc de code:
    -----------------------------------------------------
    ------ ATTENTION - UPDATING MASTER BOOT RECORD ------
    -----------------------------------------------------

Do you wish to write new MBR and partition table? [n] y
fdisk: /dev/disk1: Permission denied

Compliquée cette carte.:meh:
 
Hum ! Ça sent l'échec et mat (en ce qui me concerne)... Car en ce qui concerne le programme diskutil, à part démonter le petit volume SAUVEGARDE, il est incapable d'écrire sur le disque de la carte une nouvelle Table de Partition. Et c'est manifestement ce qui arrive aussi avec le programme fdisk qui est pourtant un "DOS partition maintenance program", càd. un gestionnaire de Table de Partition MBR --> comme je présume que tu as bien inscrit "sudo" en tête de ta commande, le "Permission denied" ne doit pas signifier que tu ne peux pas faire exécuter l'opération par défaut de droits root, mais parce qu'une "ré-écriture" de la Table de Partition en place sur la carte est formellement rejetée. Pour une raison qui m'échappe - autant l'avouer.

--------------------
Si tu ne rechignes pas à quelques manipulations dominicales supplémentaires, je te propose de recourir à un 3è utilitaire UNIX, malheureusement pas présent nativement dans les binaires d'OS X : le programme gdisk de Roderick Smith - le développeur du gestionnaire de boot «rEFInd» par ailleurs. gdisk est un programme puissant, spécialisé dans la manipulation de la Table de Partition GPT (GUID Partition Table), mais capable aussi bien de conversion de tablature d'une Table MBR pré-existante à une Table GPT en sortie. Pour cela, il s'attaque spécifiquement au secteur 0 d'un disque où réside le code de "boot" et où est stockée la carte de partition gérant les blocs du disque.

Mais «El Capitan» est un vrai boulet dès qu'il s'agit d'impacter les fichiers-Système de l'OS, car la protection SIP (System Integrity Protection) se met en place dès le chargemet du kernel en début de démarrage, ce qui a pour effet, une fois le déploiement de l'OS achevé, de verrouiller les dossiers-Système (comme /usr/sbin où il s'agit d'installer gdisk) même si l'on passe en droits root dans le «Terminal». Il faut donc désactiver le SIP en préalable à l'installation de gdisk dans /usr/sbin (tu vois le truc ? - c'est dingue !
361608_original.png
).

Pour tout simplifier, il semble y avoir un flottement du côté des décideurs Apple pour savoir si l'outil manipulant le SIP doit résider sur la «Recovery HD» (choix initial) ou dans l'OS (dernière option en date). Je ne sais donc pas où tu en es avec ta bêta d'«El Capitan». Pour le savoir, va à : /Système/Bibliothèque/CoreServices --> est-ce que tu avises une application intitulée : « Security Configuration.app » ? Si oui, tu double-cliques son icône et dans le panneau qui s'affiche, tu décoches la case cochée par défaut : "Enforce System Integrity Protection" ce qui implique un re-démarrage de ton Mac pour que le kernel charge la nouvelle instruction. Si tu n'avais pas cette application (utilisant une "bêta" plus ancienne), alors démarre directement par ⌘R sur ta partition de récupération «Recovery HD», va à la barre de menus supérieure, au menu : Utilitaires et lance l'application : « Configuration de Sécurité » qui va te proposer le même panneau où tu décocherais la case "Enforce System Integrity Protection" avant de re-démarrer sur ton OS.

Ce préalable vaillamment accompli, tu n'as plus dans ta session qu'à cliquer sur ce lien ☞Download gdisk-1.0.0.pkg (302.8 kB)qui va te faire télécharger depuis le dépositoire de SourceForge le package d'installation gdisk-1.0.0.pkg de Roderick Smith --> un double-clic dessus va lancer l'installation d'une part du binaire gdisk dans /usr/sbin et d'autre part de son manuel dans les ressources de man. Je t'invite à re-démarrer (je sais : c'est pénible) pour charger les nouvelles ressources.

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

Paré pour un essai de conversion de la Table MBR de ta carte en une Table GPT ? Il ne serait pas mauvais, au départ, ta carte insérée dans son port, de démonter encore le volume de ta carte au cas où il serait monté. Si l'«Utilitaire de Disque» le voit monté, tu le sélectionnes et presses le bouton "Démonter". Sinon, dans le «Terminal», tu peux te fendre d'un :

Bloc de code:
sudo diskutil umountDisk force /dev/disk1
comme précédemment (en ayant re-vérifié au préalable par diskutil list que ta carte est bien toujours identifiée comme disk1 - au cas où d'autres disques seraient actuellement attachés à ton Mac).

Le programme gdisk est interactif : ce qui veut dire qu'on ne peut pas passer d'entrée une commande holistique, mais il faut procéder par étapes chaque fois scandées par une demande de validation de type : y/n (yes / no) - ce de manière aggravée par rapport à fdisk. Tu commences donc par saisir dans le «Terminal» la commande d'engagement :

Bloc de code:
sudo gdisk /dev/disk1
et ↩︎ + password à l'aveugle et ↩︎ (le préfixe sudo est toujours de rigueur avec gdisk en entrée) --> en retour, tu devrais voir affiché un baratin du type :

Bloc de code:
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! 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):

--> en réponse, tu tapes :

Bloc de code:
o
(lettre "o") et ↩︎ --> tu devrais obtenir un :

Bloc de code:
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N):

--> en réponse, tu saisis :

Bloc de code:
y
et ↩︎ --> tu devrais alors obtenir un (apparemment redondant) :

Bloc de code:
Command (? for help):
(parce que la commande précédente et sa validation n'ont fait que définir une action virtuelle qui n'a pas été écrite actuellement au disque concerné) --> tu réponds par un :

Bloc de code:
w
et ↩︎ (= choix de l'option : "écrire la nouvelle table de partition au disque") --> en retour, tu obtiens un :

Bloc de code:
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
Do you want to proceed? (Y/N):
à quoi tu réponds avec espoir :

Bloc de code:
y
et ↩︎ --> si tu étais veinard (parce que gdisk aurait la puissance de "surécrire" -overwrite- le secteur 0 de ta carte), alors tu toucherais un :

Bloc de code:
OK; writing new GUID partition table (GPT) to /dev/disk1.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.


Si tu touchais au final cette déclaration, c'est qu'une table GPT aurait bien réussi à "overwrite" l'écriture de la table MBR antérieure sur le secteur 0 de la carte. Aucun volume ne serait exporté à ce stade (Table vide de système de fichiers montable en volume). Tu devrais détacher ta carte du port correspondant puis la réinsérer (ou... re-démarrer ton Mac
361608_original.png
). En lançant alors l'«Utilitaire de Disque», il te serait possible de repartitionner le disque de la carte pour lui faire exporter un volume au format jhfs+ ou FAT.

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

Si tu te heurtais encore à un rapport de blocage, comme ci-devant avec le programme fdisk, je ne vois plus alors que connecter la carte à un PC (via un lecteur de cartes par exemple) et tenter de la ré-intialiser de manière standard sous Windows. Parce que manifestement il y aurait sur son secteur de boot du code résilient (provenant qui sait d'où ?)... Après quoi, elle serait peut-être manipulable par l'«Utilitaire de Disque» sous OS X ?

[NB. En repassant par le dossier des CoreServices ou les Utilitaires de la «Recovery HD», tu peux au final relancer l'application : « Security Configuration.app » afin de recocher l'option : "Enforce System Integrity Protection" - si tu ne souhaites pas la laisser désactivée --> encore un re-démarrage en perspective dans ce cas...]
 
Dernière édition par un modérateur:
  • J’aime
Réactions: litobar71
Encore merci macomaniac pour ton aide.
Sache déjà 2 choses: J'ai pas tout compris ce que tu viens d'écrire :bored: et que j'ai conservé Yosemite sur une autre partition.
Du coup, je suis actuellement dessus et j'ai supposé que je n'avais donc pas à suivre ta procédure concernant la protection SIP.

Pour le reste, j'ai tout suivi jusqu'au OK; writing... mais malheureusement (une nouvelle fois), pas avec la même suite. :(
Bloc de code:
OK; writing new GUID partition table (GPT) to /dev/disk1.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Unable to open device '/dev/disk1' for writing! Errno is 13! Aborting write!

Et oui, tu présumes bien, ;) je démarre toutes les commande par sudo.
 
L'échec "logique" des 3 programmes UNIX : diskutil, fdisk & gdisk, avec des messages d'erreur variés dans leur énoncé mais analogues dans leur contenu = « couldn't open device », témoigne du fait suivant : ta carte SD est verrouillée en écriture en tant que disque.

Il arrive qu'un tel verrouillage "anti-écriture" sur ce type de carte dépende d'une petite glissière latérale sur un côté de la carte --> est-ce que c'est le cas ? S'il y a une telle glissière, fais-là coulisser sur la position "unlock" et tu devrais pouvoir (espérons) manipuler son partitionnement dans l'«Utilitaire de Disque» (je te conseille d'opérer avec celui de «Yosemite» bien plus "carré" en opérations que celui d'«El Capitan»). Ou retenter les commandes dans le «Terminal» invoquant fdisk ou gdisk (j'ai quand même des doutes sur la possibilité de modifier le schéma de partition d'une telle carte...).

S'il n'y avait pas de glissière physique de verrouillage sur le côté de la carte, je me figurerais alors que c'est au niveau de son firmware (son programme interne, si tu préfères) que réside la source du verrouillage du disque en écriture. Il s'agirait alors d'un format propriétaire liant ce type de carte à un appareil déterminé, comme un appareil photo d'une marque donnée : c'est en laissant la carte insérée dans cet appareil et en te rendant dans les menus d'icelui qu'il devrait alors t'être possible de réinitialiser la carte pour qu'elle exporte un volume utile moins ridicule en taille. Volume condamné au format FAT vraisemblablement, mais peut-être susceptible de permettre dans son espace des manipulations de fichiers (ajouter / supprimer) la carte connectée au Mac via un lecteur carte (si tu n'as pas sous la main le type d'appareil que cette carte requiert, tu es refait...).
 
Salut, bingo, ça marche. :)

Ce que je ne t'avais pas dis, c'est que cette carte est une microSD dans un adaptateur. Il y a bien un loquet sur cet adaptateur et j'avais bien fait attention à le déverrouiller.
Comme j'avais réussi à formater et renommer la partition de 58 Mo, je n'ai jamais remis en cause l'adaptateur. Ton dernier message m'a mis un doute et avec un autre adaptateur, tout a fonctionné du 1er coup. :meh:

Je suis vraiment désolé de t'avoir fait perdre ton se temps. :( Mais je te remercie beaucoup de l'avoir fait. ;) :merci:
 
Salut tous les deux, et merci Macomaniac pour toutes ces procédures clairissimes...
En revanche moi je reste bloqué sur la dernière étape, "Errno is 13!"...

Il s'agit d'une clef USB dont l'écriture d'une instal' MacOS Monterey amorçable a été interrompue... Depuis, impossible de lui faire faire quoique ce soit...

Une idée ? ou je la jète ? (Catalina 10.15.7)
 
Salut,
si tu n'arrives plus à la formater en HFS+ alors je crois qu'elle est bonne pour le recyclage (poubelle).
Sinon elle reste utilisable.