Je soupçonne Windows` chkdsk ou un autre outil Microsoft de réparer par erreur la table de partition de votre périphérique contenant le volume EXFAT.
Le résultat de sudo gpt -r -vv show /dev/disk2
de mon périphérique de 4 To créé dans une VM et formaté avec l'Utilitaire de disque en comparaison ressemble à ceci :
gpt -r -vv show /dev/disk2
gpt show: /dev/disk2: mediasize=4000655081472; sectorsize=512; blocks=7813779456
gpt show: /dev/disk2: PMBR at sector 0
gpt show: /dev/disk2: Pri GPT at sector 1
gpt show: /dev/disk2: Sec GPT at sector 7813779455
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409640 2008
411648 7813365760 2 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
7813777408 2015
7813779423 32 Sec GPT table
7813779455 1 Sec GPT header
(Veuillez considérer que la taille du média, les blocs et certaines autres valeurs sont différentes des vôtres, car j'utilise un disque d'exemple légèrement plus petit ici).
Les différences par rapport à votre constat sont évidentes : la première partition de votre disque n'est pas alignée correctement sur la taille de secteur de 4096 octets et est plus petite. La deuxième partition commence trop tôt et est probablement trop grande.
Vous devez probablement réparer les deux partitions. Cela ne fonctionnera que si vous avez partitionné le disque avec l'Utilitaire de disque sous Mac OS X.
Préparation :
Sauvegardez votre Mac, puis détachez tous les disques externes.
Télécharger et installer wxHexEditor . Activez l'utilisateur Root et connectez-vous en tant que Root.
Conseil : En travaillant avec wxHexEditor, n'utilisez pas le copier-coller. Saisissez tout manuellement ! Vous pourriez accidentellement écrire directement sur votre disque.
Où commence et finit la partition EXFAT ?
Vous devez d'abord déterminer le bloc de départ de votre volume EXFAT :
-
Ouvrez le Terminal et entrez diskutil list
. Obtenez l'identifiant du disque à réparer.
-
Ouvrez la calculatrice. Ouvrez wxHexEditor. Vérifiez que vous travaillez en mode lecture seule ("Options" -> "Mode fichier" -> "Lecture seule"). Dans la barre de menu, allez dans "Devices" -> "Open disk device" -> choisissez le diskNumber approprié.
-
Appuyez sur le bouton de recherche (marqué par le cercle rouge dans l'image ci-dessous) et entrez EXFAT (exactement comme dans l'image). Essayez de disposer la fenêtre wxHexEditor comme dans les exemples ci-dessous avec des lignes rouges droites.
-
Mon entrée EXFAT (voir image ci-dessous) est à l'offset 210763776. Vous pouvez maintenant calculer le bloc de départ du volume avec : OffsetBytes/512 = NewStartBlockEXFAT. Dans mon exemple, le bloc de départ est 411648.
Si vous obtenez un bloc de départ nettement plus petit (=<409639), arrêtez-vous ici, car vous n'avez probablement pas partitionné votre disque avec l'Utilitaire de disque auparavant.
-
Le bloc de fin du volume EXFAT ne peut pas être déterminé facilement ; nous devons le deviner (en quelque sorte). Le problème est l'écart variable entre la partition 2 et la deuxième table GPT. Dans votre cas, il a 1679 blocs, dans mon exemple, il a 2015 blocs.
-
Méthode 1 (taille maximale dans l'"espace non alloué" entre le bloc contenant la chaîne EXFAT et la deuxième table GPT) :
La taille maximale du volume est StartBlock2ndGPT-NewStartBlockEXFAT. La taille doit être divisible par 8. Réduisez la taille jusqu'à ce que vous obteniez une taille divisible par 8. Exemple : Dans mon cas, la taille maximale serait 7813779423 (StartBlock2ndGPT) - 411648 (StartBlockEXFAT) = 7813367775 (qui n'est pas divisible par 8). La plus grande taille divisible par 8 est 7813367768.
-
Méthode 2 (taille minimale contenant tous les blocs occupés entre le bloc contenant la chaîne EXFAT et la deuxième table GPT) :
Vous pouvez sauter au secteur 7814037135 (le premier bloc de votre table GPT secondaire) avec le bouton flèche (le deuxième bouton à gauche du bouton de recherche) et rechercher à l'envers y cas de correspondance désactivé avec "Find some bytes" pour obtenir le dernier secteur occupé. Cela peut prendre un certain temps. Notez votre découverte (si vous en avez une dans un délai raisonnable). Divisez le décalage par 512 pour obtenir le numéro de secteur. Le numéro de secteur doit être inférieur à 7814037135. Calculez maintenant la taille minimale provisoire de votre volume : StartBlockEXFAT+1-LastOccupiedSector. Le résultat doit être divisible par 8. Pour obtenir taille ajouter des blocs jusqu'à ce que la taille soit divisible par 8.
Vous pouvez arrêter le processus après 5 minutes sans résultat car alors le dernier numéro de bloc occupé est probablement plus petit que 7807917625 en supposant que le processus recherche 10 MByte/s (les derniers ~3 GB de votre disque). Utilisez alors la méthode 1.
Les deux résultats conduisent probablement à une taille incorrecte du volume EXFAT, mais cela devrait être réparable. Il est plus important d'obtenir le bon bloc de départ. De plus, la méthode 2 peut donner des résultats incorrects si le disque a été complètement rempli de données auparavant en utilisant une disposition de partition différente et n'a pas été rempli à zéro par la suite.
Restauration de l'"ancienne" GPT
Ici, je suppose que l'identifiant du disque contenant le volume EXFAT est disk0.
-
Vous devez d'abord démonter le disque
diskutil umountDisk disk0
-
Vérifiez la disposition des partitions, puis supprimez les deux partitions :
gpt -r -vv show /dev/disk0
gpt remove -i 2 disk0
gpt remove -i 1 disk0
-
Puisque l'EFI (Apple) a généralement une taille fixe, nous pouvons facilement l'ajouter avec :
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
-
Avec le bloc de départ de la partition EXFAT et Size (la taille du volume trouvée avec la méthode 1 ou 2 ci-dessus), nous pouvons également l'ajouter :
gpt add -b NewStartBlockEXFAT -i 2 -s Size -t EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 disk0
-
Remonter le disque0 avec :
diskutil mountDisk disk0
-
Quittez Terminal, Calculator et wxHexEdit et ouvrez l'Utilitaire de disque.
-
Vérifiez que votre volume EXFAT ne contient pas d'erreurs.
Si vous rencontrez des problèmes (par exemple, vous ne trouvez pas la taille de volume EXFAT appropriée), si vous avez des doutes ou des questions, arrêtez-vous immédiatement et contactez-moi avec un commentaire @klanomath !