Impossible de supprimer partition Bootcamp

Ah oui : pardon --> j'avais oublié que l'installateur facétieux d'«El Capitan» t'a collé (à l'insu de ton plein gré) un CoreStorage non-chiffré sur la partition disk0s4.

Tu n'as qu'à passer d'abord la commande :
Bloc de code:
diskutil coreStorage revert 9900089F-F2CC-4A7A-A3EE-272AA6F609A8

qui va opérer la réversion logique du CoreStorage et redescendre le système de fichiers du volume SOS sur l'en-tête de la partition disk0s4 --> lui rendant ainsi un statut classique

=> à partir de là > la commande d'effacement va passer.
 
Pas de problème jusqu'à la dernière commande.

Bloc de code:
MBP-de-Alex-2:~ alexkaminski$ diskutil coreStorage resizeStack 237B0F57-98AA-49A2-B42A-E0E87CBC2382 0b
The Core Storage Logical Volume UUID is 237B0F57-98AA-49A2-B42A-E0E87CBC2382
Started CoreStorage operation
Error: -69722: You can't perform this resize unless it has a booter (target partition is probably too small)
 
Est-ce que tu peux poster le retour d'une commande :
Bloc de code:
diskutil list

  • que je voie quelle est la distribution logique sur le disque actuellement ?
 
Bien évidemment :)

Bloc de code:
MBP-de-Alex-2:~ alexkaminski$ diskutil list
/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            200.5 GB   disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3
/dev/disk2 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +200.2 GB   disk2
                                 Logical Volume on disk0s2
                                 237B0F57-98AA-49A2-B42A-E0E87CBC2382
                                 Unlocked Encrypted
 
Le Logical Volume exporté à partir de la partition disk0s2 est identifié comme disk2 (et pas disk1 - qui était l'identifiant du Logical Volume exporté de la partition disk0s4). Le kernel ne s'est donc pas mis à jour de cette suppression en ce qui concerne les n° de disques.

Je ne suis pas certain que ce facteur suffise à expliquer le blocage de la commande > mais pour éliminer cette conjecture > re-démarre un coup > reviens dans ta session > repasse la commande :
Bloc de code:
diskutil coreStorage resizeStack 237B0F57-98AA-49A2-B42A-E0E87CBC2382 0b

=> et signale si elle passe ou si tu as encore le même exact message d'erreur. Auquel cas > je basculerai sur la conjecture n°2.
 
Le message d'erreur que tu obtiens :
Bloc de code:
You can't perform this resize unless it has a booter

  • met en cause le « booter ». Le « booter » en question est contenu > à l'intérieur du volume Recovery HD de la partition disk0s3 > dans le dossier com.apple.Boot.R qui flanque le dossier classique com.apple.recovery.boot du système de secours RecoveryOS.

  • ce « booter » assure la fonction de pré-démarrage du dispositif CoreStorage de la partition disk0s2 > notamment l'acte d'exportation du Logical Volume à partir du magasin de stockage Physical Volume inscrit sur la partition disk0s2.

  • Le volume qui contient ce « booter » (= Recovery HD) et sa partition de résidence (disk0s3) > doivent être clonés en queue de disque > et l'original supprimé > pour que l'espace libre à récupérer > désormais intercalé et touchant la limite basse de la partition disk0s2 > puisse être absorbé par cette partition.

Alors même que le « booter » : com.apple.Boot.R existe bien (dans Recovery HD > sur disk0s3) --> le message atteste qu'il n'est pas reconnu logiquement.

Je conjecture une corruption du « booter ».

Je te propose d'aller à : Menu  > Préférences Système > Sécurité et confidentialité > FileVault --> déverrouille le cadenas > presse le bouton : Désactiver FileVault. Ton Mac va re-démarrer une fois > puis un processus de déchiffrement s'effectuer en toile de fond de la session ouverte (tu pourras en suivre l'avancement dans le panneau FileVault).

Je pense que l'activation de «FileVault» est la racine de tous tes problèmes depuis le tout début > et qu'il faut désactiver cette fonction de chiffrement. Ce qui va de pair régulièment avec un déconstruction du CoreStorage.

=> tu n'as qu'à dire si cette désactivation de «FileVault» a été acceptée et si une jauge d'avancement du déchiffrement est active. Une fois ton volume Macintosh HD supporté par un système de fichiers JHFS+ standard > il devrait être aisé de récupérer l'espace libre.
 
La désactivation a bien été acceptée et la jauge est en progression.

Si j'ai bien saisi, il faudra donc effectuer cette fois la commande :

Bloc de code:
sudo diskutil resizeVolume /dev/disk0s2 0b
 
Bloc de code:
MacBook-Pro-de-Alex-2:~ alexkaminski$ sudo diskutil resizeVolume /dev/disk0s2 0b
Password:
Resizing to full size (fit to fill)
Started partitioning on disk0s2
Verifying the disk
Verifying file system
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Volume bitmap needs minor repair for orphaned blocks
Checking volume information
The volume Macintosh HD was found corrupt and needs to be repaired
File system check exit code is 8
Error: -69803: Couldn't modify partition map because file system verification failed; please verify and repair each volume individually and then try again
 
Le système de fichiers JHFS+ comporte des erreurs. Ce qui fait avorter toute tentative de re-dimensionnement.

Démarre en mode Recovery (⌘R) > lance l'«Utilitaire de Disque» > fais un S.O.S. sur le volume Macintosh HD. Si tu obtiens à la fin un : "Le volume Macintosh HD paraît en bon état" > c'est que le système de fichiers est réparé.

[Note : on ne peut réparrer un système de fichiers qu'en démontant tous les volumes qu'il gère. D'où la nécessité de démarrer sur un autre Système que celui de l'OS, ici.]

De retour dans ta session > repasse la dernière commande.
 
"Le volume Macintosh HD paraît en bon état" ✓
La commande fonctionne cependant pas de ré-allocation de l'espace :
Bloc de code:
Checking volume bitmap
File system check exit code is 0
Resizing
Finished partitioning on disk0s2 Macintosh HD
/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_HFS Macintosh HD            200.4 GB   disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3
 
Bloc de code:
MBP-de-Alex-2:~ alexkaminski$ sudo gpt show /dev/disk0
Password:
      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  391382384      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  391792024     262144        
  392054168    1269536      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  393323704   96911015        
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header
MBP-de-Alex-2:~ alexkaminski$
 
La distribution des blocs montre que :

  • tu as 391382384 blocs alloués à la partition disk0s2 = 200 Go
  • il y a un espace libre de 262144 blocs = 134 Mo entre la partition disk0s2 et la partition disk0s3 (c'est la taille d'un ancien booter : Boot OS X qui aurait dû être absorbé par le système de fichiers JHFS+ de la partition disk0s2)
  • tu as 1269536 blocs de la partition disk0s3 = 650 Mo
  • tu as 96911015 blocs = 49,6 Go de libre
=> bref : la commande n'arrive pas à marcher > à cause de la bande de blocs intercalaires de 134 Mo entre la partition disk0s2 (Macintosh HD) et la partition disk0s3 (Recovery HD).

Re-démarre en mode Recovery > «Utilitaire de Disque» > fais un double S.O.S. --> sur le disque physique global et sur le volume Macintosh HD.

Revenu dans ta session > reposte le tableau d'une commande gpt comme ci-dessus.
 
Après plusieurs tentative, le résultat reste le même.
Dans le processus du S.O.S. sur le volume Macintosh HD, je vois apparaitre la localisation de blocs libres et leur suppression mais ce n'est pas le cas sur le disque physique global.
 
Alors je te propose une manœuvre radicale (tu n'en es plus à une près).

Par la commande :
Bloc de code:
mkdir ~/Desktop/RECUP

  • tu crées un dossier vide intitulé RECUP sur ton Bureau

Par la commande :
Bloc de code:
diskutil mount disk0s3

  • tu montes le volume Recovery HD sur la partition disk0s3

Par la commande :
Bloc de code:
sudo cp -av /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.chunklist ~/Desktop/RECUP

  • tu copies les 2 éléments : BaseSystem.dmg & BaseSystem.chunklist recelés dans le volume --> dans le dossier RECUP

Par la commande :
Bloc de code:
sudo chflags -R nohidden ~/Desktop/RECUP

  • tu les rends visibles en supprimant le flag "hidden" qui les masquait

Tu télécharges à présent l'archive ☞dmtest.zip☜ (clique le lien rouge) depuis le dossier public de ma DropBox et tu déplaces l'exécutable dmtest dans le dossier RECUP de ton Bureau

  • c'est un programme 100% Apple, créé à l'époque de «Lion 10.7» et valide à travers la succession des OS > qui permet la recréation d'une «Recovery HD» à la place ciblée > à partir des 2 seules ressources : BaseSystem.dmg & BaseSystem.chunklist

Toutes ces opérations accomplies > tu passes une commande :
Bloc de code:
ls ~/Desktop/RECUP

  • qui liste les objets contenus dans le dossier RECUP

et tu postes ce tableau ici.

=> si tout est en ordre --> banzaï ! pour la suite.
 
  • J’aime
Réactions: kasual
Tu détiens dans le dossier RECUP de quoi recréer la partition «Recovery HD».

On peut donc supprimer la partition originale actuelle, qui est séparée de la partition disk0s2 à laquelle elle devrait être collée par 134 Mo d'espace libre irrécupérable.

Donc par la commande :
Bloc de code:
diskutil eraseVolume free null disk0s3

  • tu vires la partition disk0s3 au statut d'espace libre

Il existe donc désormais une bande continue d'espace libre qui va du pied de la partition disk0s2 à la queue du disque (là où est situé le backup de la GPT sur les 32 derniers blocs).

Par la commande :
Bloc de code:
diskutil resizeVolume disk0s2 0b

  • tu récupères toute la bande d'espace libre à la partition disk0s2

Tu passes les 2 commandes :
Bloc de code:
diskutil list
sudo gpt show /dev/disk0

  • et tu postes les 2 tableaux pour vérification de l'état des lieux.
 
Il me semble que tout se soit déroulé correctement :
Bloc de code:
MBP-de-Alex-2:~ alexkaminski$ diskutil list
/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_HFS Macintosh HD            250.7 GB   disk0s2
MBP-de-Alex-2:~ alexkaminski$ sudo gpt show /dev/disk0
Password:
      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  489562928      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  489972568     262151        
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header
 
En effet. Le volume Macintosh HD est revenu à 250 Go.

Alors passe la commande :
Bloc de code:
sudo ~/Desktop/RECUP/dmtest ensureRecoveryPartition / ~/Desktop/RECUP/BaseSystem.dmg 0 0 ~/Desktop/RECUP/BaseSystem.chunklist

  • qui appelle dmtest pour recréer une partition Recovery HD de 650 Mo en disk0s3 > à partir des 2 ressources : BaseSystem.dmg & BaseSystem.chunklist

Si tu vois défiler des lignes pendant plus d'une minute > c'est que la commande s'exécute. L'opération complétée > poste ici le tableau retourné par un diskutil list.
 
Que c'est beau :)

Bloc de code:
MBP-de-Alex-2:~ alexkaminski$ diskutil list
/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_HFS Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3