Résolu Redimensionner la partition

Pfuitt ! Foutre & palsambleu...
361608_original.png


Ton cas était un véritable hapax (une occurrence unique) à ma connaissance : c'est la première fois qu'une erreur de taille interne à un CoreStorage ne s'avère pas noir sur blanc en retour d'une commande diskutil ce list - ce par un décalage criant entre la taille totale du Volume Physique et du Volume Logique, ce qui aurait donné chez toi un Volume Physique de 499,2 Go et un Volume Logique de 152 Go. Dans ce cas, on sait tout de suite qu'il y a de l'espace_libre sur les blocs virtuels du Volume Physique et que le Volume Logique ne correspond plus qu'à une section rétrécie de cet espace.

Eh bien ! chez toi > rien d'aussi lisible textuellement. Comme quoi, on peut s'imaginer connaître plus ou moins le CoreStorage > il y a toujours des arcanes qui échappent à la compréhension. La solution est alors drastique : en éliminant le porteur de l'erreur (le dispositif CoreStorage) par une réversion > on élimine ipso facto l'erreur qu'il portait. Ce n'est pas une solution intellectuellement impeccable > mais satisfaisante pour la volonté. Tu auras noté l'élasticité parfaite du format de système de fichiers jhfs+, qui a directement recollé à l'extension totale de l'espace des blocs de la partition à gérer.

J'ajoute que si tu veux re-partitionner ta partition-Système > l'absence d'un CoreStorage sur cette partition te facilitera énormément les choses...
 
Bonjour,

Un nouveau Yak sur le forum qui vous tend la corne.
En suivant les indications du billet, je ne parviens pas à redimensionner la partition disk0s2, pourriez-vous m'aider ?

1/ Suppression de 3 partitions Linux de 24Go(/) 20Go(/home) et 3Go(swap) en dual boot avec OSX EL CAPITAN afin d'augmenter la taille de ce dernier :
Bloc de code:
sudo diskutil eraseVolume free NULL /dev/disk0s4
sudo diskutil eraseVolume free NULL /dev/disk0s5
sudo diskutil eraseVolume free NULL /dev/disk0s6

J'ai obtenu l'effacement des partitions correspondant à la bande continue de free_space récupérable en-dessous de la partition 3 :
ecran-2019-09-19.png


2/ Après avoir redimensionné la partition :
Bloc de code:
diskutil resizeVolume disk0s2 0b

3/ Voici l'état de mon disque actuel :
Bloc de code:
$ sudo diskutil list
Password:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  GUID_partition_scheme            *240.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS EL CAPITAN              188.9 GB   disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3

Le disk0s2 ne se redimensionne pas en récupérant l'espace vide d'environ 50G0 en queue de disque, pourtant j'obtiens code = 0 sans erreur !

Peut-être que ces infos de blocs pourraient aider à trouver la solution ?
Bloc de code:
[code]$ sudo gpt -r -vv show /dev/disk0
Password:
gpt show: /dev/disk0: mediasize=240057409536; sectorsize=512; blocks=468862128
gpt show: /dev/disk0: PMBR at sector 0
gpt show: /dev/disk0: Pri GPT at sector 1
gpt show: /dev/disk0: Sec GPT at sector 468862127
      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  368878480      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  369288120     262144    
  369550264    1269536      3  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  370819800   98042295    
  468862095         32         Sec GPT table
  468862127          1         Sec GPT header

--> Il y a un espace vide en dessous de disk0s2 qui n'existait pas avant l'étape 2 resizeVolume.
--> Il y a un autre espace vide plus grand en queue de disque en dessous de disk0s3 qui devrait correspondre aux 3 partitions Linux supprimées à l'étape 1.

Comment allouer ces deux espaces vides à disk0s2 si resizeVolume ne veut pas le faire ?
Ne voulant pas casser mon système qui fonctionne, je m'en remets à Vous pour tenter de comprendre ce qu'il se passe.

Info complémentaire :
Bloc de code:
$ diskutil cs list
No CoreStorage logical volume groups found

Merci d'avance pour votre aide.
 
Bonjour Monobio (Olé !)

Tu avais fait tout ce qu'il fallait pour récupérer l'espace libre. Dont tu peux voir d'après le tableau des blocs qu'il est bien situé en pied de disque -->
Bloc de code:
  370819800   98042295

  • ligne qui s'interprète ainsi : à partir du bloc n°370819800 (= 1er bloc libre après la fin de la partition de secours3 = Recovery HD) > existe une bande continue de 98042295 blocs libres (de 512 octets = 50.197 Go). Espace libre en principe tout ce qu'il y a de récupérable.

D'où la question : pourquoi la récupération a-t-elle échoué alors que la vérification du système de fichiers de la partition n°2 (= volume EL CAPITAN) bénéficiaire => donne un code de sortie = 0 (comme zéro fautes) ? -->

- la réponse est dans la configuration actuelle de la partition de secours -->​
Bloc de code:
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3

  • est-ce que tu vois où est le facteur de blocage ? - non ? => ici : le type de la partition est actuellement : "Apple_HFS" => qui désigne une partition en tant qu'innamovible sur les blocs qu'elle occupe. Alors que le type requis pour une partition de secours est : "Apple_Boot" => qui la désigne comme déplaçable sur les blocs en cas d'opération de redimensionnement de sa partition de référence principale (= partition-Système n°2 du volume EL CAPITAN).

Quant à la petite bande de blocs libres -->
Bloc de code:
  369288120     262144

  • qui commence au bloc n°369288120 = 1er vacant après la fin de la partition-Système2 et consiste en une bande de 262144 blocs libres (de 512 octets = 134 Mo) => elle a la taille d'une partition booter (prédémarrage) d'un dispositif CoreStorage qui aurait été supprimé. Son intercalement entre la partition-Système & la partition de secours => n'est pas canonique > mais en principe non bloquant pour une récupération.

En résumé : il faut restaurer le type de la partition de secours de : "Apple_HFS" => à "Apple_Boot" --> puis repasser une commande régulière de récupération de l'espace libre de pied de disque. La commande qui effectue cette opération de restauration de type > affectant une partition auxiliaire de la partition-Système => est bloquée par le SIP (protocole de sécurisation existant depuis El Capitan compris) > si le SIP est activé -->

- comme l'activation du SIP bloque aussi l'accès aux blocs du disque de démarrage par la commande gpt & que tu as pu passer cette commande --> on va en déduire que tu as désactivé le SIP et que la commande de restauration du type de la partition de secours va donc passer.​

- mais il faut savoir aussi que pour restaurer le type de la partition de secours (ce qui équivaut à éditer le descripteur GPT de cette partition dans la table GPT d'en-tête du disque) => le volume Recovery HD ne doit pas être monté actuellement. Or le type actuel de la partition étant : "Apple_HFS" => un montage automatique du volume de la partition par le kernel se trouve instruit. Il faut donc démonter le volume Recovery HD en préambule.​

Donc > en conséquence passe la commande (copier-coller - copie-la bien jusqu'au disk0 final) -->
Bloc de code:
sudo diskutil umount force disk0s3 ; sudo asr adjust --t /dev/disk0s3 --settype "Apple_Boot" ; diskutil resizeVolume disk0s2 0b ; diskutil list disk0

  • cette commande concaténée : a) démonte le volume Recovery HD > b) restaure le type de sa partition à "Apple_Boot" (grâce à une option non publiquement documentée du binaire asr = apple_software_restore) > c) récupère l'espace libre de pied de disque => à la partition-Système n°2 du volume EL CAPITAN > d) réaffiche la configuration du disque interne

Poste l'ensemble complet de l'affichage retourné (et pas simplement le tableau du disque final) => que je voie s'il n'y a pas eu de blocage de l'enchaînement à un point donné (et si oui => pourquoi).

Note : tu auras compris avec ce message que j'ai développé exprès dans son détail argumentatif --> que l'informatique tout entière n'est qu'une affaire de raisonnement appliqué > et donc que rien ne différencie le raisonnement hypothético-déductif d'un Sherlock Holmes d'un raisonnement mathématique ou d'un raisonnement de sauvetage informatique - sinon le domaine applicatif.
 
Bonjour Ouroboros,

tout d'abord un grand Merci pour répondre avec autant de clairvoyance et de rapidité, cela m'a évité de tourner en rond et de ramper sous mon mac, et croyez-moi pour un Yak c'est difficile de ramper !
J'ai appris beaucoup grâce à Toi, Ouroboros : le serpent qui se mord la queue.
Je viens de passer la commande dans le Terminal :
Bloc de code:
sudo diskutil umount force disk0s3 ; sudo asr adjust --t /dev/disk0s3 --settype "Apple_Boot" ; diskutil resizeVolume disk0s2 0b ; diskutil list disk0

Et Olé ! Voici le résultat complet :
Bloc de code:
$ sudo diskutil umount force disk0s3 ; sudo asr adjust --t /dev/disk0s3 --settype "Apple_Boot" ; diskutil resizeVolume disk0s2 0b ; diskutil list disk0
Password:
Volume Recovery HD on disk0s3 force-unmounted
Fsck /dev/disk0s3 ....10....20....30....40....50....60....70....80....90....100
Adjust completed successfully
Resizing to full size (fit to fill)
Started partitioning on disk0s2 EL CAPITAN
Verifying the disk
Verifying file system
Using live mode
Performing live verification
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking extended attributes file
Checking volume bitmap
Checking volume information
Checking volume information
The volume EL CAPITAN appears to be OK
Checking volume information
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
The volume EL CAPITAN appears to be OK
File system check exit code is 0
Resizing
Waiting for the disks to reappear
Finished partitioning on disk0s2 EL CAPITAN
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *240.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS EL CAPITAN              239.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s4

Un vrai bonheur !
La partition de récupération "Apple_HFS" est bien passée à "Apple_Boot" et donc le redimensionnement s'est ensuite déroulé sans erreur.

Même l'utilitaire disque catastrophique d'EL CAPITAN affiche :
ecran-2019-09-20.png


Vue la vitesse de résolution d'Ouroboros pour redimensionner la partition, on devrait t'appeler Flèche Bleue plutôt que Le Serpent qui se mord la queue :)

Encore un Grand Merci pour ton partage de connaissances de haut vol.
 
Bonjour!

J'ai un petit souci aussi concernant une partition sur un disque externe qui est seule mais à qui j'aimerais réaffecter l'ensemble de la capacité du disque. Je n'y arrive pas avec la commande diskutil resize volume

Bloc de code:
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *500.1 GB   disk4
   1:                  Apple_HFS Trekstor1               209.7 GB   disk4s1

imac-de-aurelie:~ aurelieguthmann$ diskutil resizeVolume disk4s1 0b
Resizing to full size (fit to fill)
Error starting volume resize: Couldn't modify partition map (-69874)

Si quelqu'un pouvait m'aiguiller pour que je retombe sur mes pattes! Un grand merci!
 
Bonsoir Aurel

La table de partition du DDE est une MBR (désignée par FDisk_partition_scheme). Ce type de table de partition Windows ne supporte pas les remaniements de taille des partitions une fois créées. Même si le type de partition que tu as est un "Apple_HFS" normalement élastique.

- passe la commande (copier-coller) :​
Bloc de code:
df -H /Vol*/Trek*
  • qui mesure (en Go) l'occupation des blocs du volume Trekstor1

Poste le retour.
 
Merci pour la réactivité ! Par contre j'ai trouvé une solution entre temps via l'utilitaire disque où je croyais avoir tout exploré mais finalement non. Comme le disque était vide, j'ai pu simplement tout effacer et récupérer mon disque en un seul morceau. Je me suis un peu compliqué la vie.

Désolée pour ça, mais merci encore.
 
Dernière édition par un modérateur:
Bonjour,

Je profite de ton grand savoir à mon tour pour te soumettre un problème d'espace disque non récupérable.

Bloc de code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *323.2 GB   disk0
   1:                        EFI EFI                                     209.7 MB   disk0s1
   2:                  Apple_HFS Mac HD                       63.6 GB    disk0s2
   3:                 Apple_Boot Recovery HD            650.0 MB   disk0s3

administrateur$ sudo diskutil cs  list
Password:
No CoreStorage logical volume groups found

Dans l'utilitaire de disque, il m'affiche Mac HD 63,6 Go et espace libre 259 Go.

Voici ce que j'ai, quand je tente de récupérer l'espace manquant, j'ai comme erreur :
Exécution de l’opération 1 sur 3 :​
Exécution de l’opération 2 sur 3 :​
Exécution de l’opération 3 sur 3 : Supprimer « -- »…​
Une erreur interne s’est produite et le disque concerné par l’une des opérations indiquées est introuvable. Ce problème est peut-être temporaire ; réessayez.​
L’opération a échoué…​
 
Dernière édition par un modérateur:
Bonjour lreldanier

Passe la commande-test (copier-coller) :
Bloc de code:
diskutil resizeVolume disk0s2 0b
  • la commande récupère l'espace libre à Macintosh HD > ssi il est situé en queue de disque (= sous la partition de secours Recovery HD)

Poste le retour en copier-coller > en veillant à faire le coller dans un Bloc de code (c'est plus lisible !) par le procédé suivant -->

- en bas de cette page des forums MacGé => utilise le menu (le 16è depuis la gauche = vers le milieu de la barre) dans la barre de menus au-dessus du champ de saisie d'un message > sous-menu : </> (= Bloc de code) => tu fais ton coller dans la fenêtre de code et Continuer.​
 
Super ça a l'air d'avoir fonctionné, t'es un chef.

Merci beaucoup.

Bloc de code:
Resizing to full size (fit to fill)
Started partitioning on disk0s2 Mac HD
Verifying the disk
Verifying file system
Volume could not be unmounted
Using live mode
Performing fsck_hfs -fn -l -x /dev/rdisk0s2
Performing live verification
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
Checking volume information
The volume Mac HD appears to be OK
File system check exit code is 0
Restoring the original state found as mounted
Resizing
Modifying partition map
Copying booter
Growing file system
Finished partitioning on disk0s2 Mac HD
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *323.2 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Mac HD                  322.3 GB   disk0s2
   3:                 Apple_Boot                         650.0 MB   disk0s4

Désolé je suis pas au point pour les messages... :)
 
Dernière édition par un modérateur: