10.15 Catalina Petit soucis de fusion de partition :)

Lelandbet

Membre confirmé
11 Octobre 2019
35
1
41
Bonjour à tous,

Je suis en galère depuis quelques heures (ce qui explique l'heure tardive à laquelle je publie ce message)

Je vais essayer d'être clair... J'AI BESOIN D'AIDE :)

Je résume la situation... Je ne sais pas comment je me suis débrouillé (surement à force de faire des partitions boot camp) mais me voila avec mon HD principal de mon IMAC coupé en deux... 2x500go (c'est chirurgical !)

Alors je veux fusionner tout ça mais impossible, je teste des trucs à droite et à gauche. La je viens de réussir à faire un truc sur le terminal : sudo diskutil eraseVolume "Free Space" %noformat% /dev/disk0s3

Et par magie, la partition vierge a disparue (invisible également depuis l'utilitaire de disque) mais derrière je devais envoyer cette formule magique :
diskutil apfs resizeContainer disk0s4 0 (en ciblant mon disque encore visible et fonctionnel) mais au lieu d'un cri de victoire et que je puisse aller me coucher heureux, me voilà avec ce message :
The new size must be different than the existing size

Je suis perdu, j'ai fait une capture de ma situation. J'ai besoin de vous... Si je ne peux pas sauver mon disque actuel et qu'il faut tout refaire... Je m'adapterai :/ mais si je peux récupérer 1Ter sur mon partition fonctionnelle, ce serait top !

Je suis tout ouïe ! (et surtout sans aucune solution)

Merci aux âmes charitables...
 

Fichiers joints

  • Capture d’écran 2019-10-11 à 01.22.09.png
    Capture d’écran 2019-10-11 à 01.22.09.png
    1,3 Mo · Affichages: 195
Bonjour Lelandbet

On peut présumer que la partition que tu as supprimée et transformée en espace libre => existait au-dessus de l'actuelle partition apfs > et pas en-dessous. Or une récupération d'espace libre n'est possible que si l'espace libre est situé en-dessous de la partition bénéficiaire > jamais en-dessus.

- "en-dessus" & "en-dessous" => désignent des alignements arithmétiques de blocs logiques (de 512 octets par défaut) > localisés sur une carte des blocs commençant au bloc0 (ou 1er bloc du disque) > et finissant au blocn (ou dernier bloc du disque). Carte des blocs gérée descriptivement par la table GPT de l'en-tête du disque.​

Pour savoir où est actuellement située la bande des blocs libres > il faut passer une commande qui requiert que le SIP (protocole de sécurisation) ne soit pas activé (car le SIP dénie l'accès - même en simple lecture - aux blocs du disque du démarrage.

Donc passe la commande :
Bloc de code:
csrutil status

  • qui affiche le statut du SIP

Poste le retour ici en copier-coller (pas de capture) > en veillant à faire ton coller dans une fenêtre de code par le procédé suivant -->
  • dans cette page de MacGé > presse le bouton
    1555929346-524315-original.png
    ici :
    1555929346-521520-original.png

    menu  : </> Code > par ⌘V colle dans la fenêtre Code > presse le bouton Insérer (ce procédé permet un affichage fenêtré qui économise l'espace de page en respectant la mise en forme des tableaux du «Terminal» --> d'où une plus grande lisibilité)
 
Bonjour,

Merci de votre temps :)

Voici le résultat à votre demande !

Bloc de code:
Last login: Fri Oct 11 12:53:51 on console

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
Imac:~ Leland$ csrutil status
System Integrity Protection status: disabled.
Imac:~ Leland$
 
Le SIP est désactivé : tant mieux.

- passe la commande (copier-coller) :
Bloc de code:
sudo gpt show disk0

  • à validation > une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe de session admin en aveugle - aucun caractère ne se montrant à la frappe - et revalide
  • la commande affiche le tableau de la distribution des blocs du disque interne

Poste le tableau.
 
Voilà :)

Bloc de code:
       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   977828280        
   978237920   975287208      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
  1953525128           7        
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header
Imac:~ Leland$
 
Regarde cette distribution de blocs -->
Bloc de code:
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640   977828280       
   978237920   975287208      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC

  • la 1ère ligne indiquée 1 GPT part => décrit la partition de type EFI. Elle commence au bloc n°40 > et a une extension de 409600 blocs (de 512 octets) = 209,7 Mo.
  • la 3è ligne indiquée 2 GPT part => décrit la partition de type Apple_APFS. Elle commence au bloc n°978237920 > et a une extension de 975287208 blocs (de 512 octets) = 499.34 Go.
  • la ligne intermédiaire => décrit une bande de blocs libres correspondant à la partition supprimée. Elle commence au bloc n°409640 et a une extension de 977828280 blocs (de 512 octets) = 500.64 Go.

L'espace libre est bien situé au-dessus de la partition de type Apple_APFS et tu ne peux donc pas le récupérer à cette partition -->

- ce qui est possible est : recréer une partition avec un volume avec cette bande de blocs libres > cloner les volumes Catalina / Catalina - Données => dans le volume neuf > démarrer sur le clone > supprimer le Conteneur apfs du bas > récupérer son espace à celui du haut.​

Comme je fais une pause > je te propose de revenir dans ton fil pour diriger la manœuvre (si tu le souhaites). Recréer une partition et un volume à partir de blocs libres est toujours un exercice que je trouve plaisant.
 
Encore merci pour tout, tu es très didactique et pédagogue :) Je comprends tout lol

Du coup, je vais faire ce que tu as dit :) J'attends ta procédure et je me lance.

Edit : Je pensais à une chose... Je fais peut être fausse route mais si je sauvegarde ma time machine, il n'est pas plus simple que partir de l'install de Catalina et de faire une réinstallation via ma time machine... Je dis ça, je dis rien lol
 
Dernière édition:
Il est peut-être possible d'effectuer une récupération TM directe à destination du nouveau volume qu'on aura créé. Mais je ne sais pas comment fonctionne Time Machine avec un OS Catalina qui implique une bifurcation de l'ancien volume unique Macintosh HD => en un volume-Système Macintosh HD & un volume-Utilisateur Macintosh HD - Données. Ce qui doit marcher est réinstaller d'abord > puis récupérer la TM à la fin.

Si tu veux créer la nouvelle partition > redémarre les 3 touches ⌘⌥R (cmd alt R) pressées = démarrage par internet qui fait télécharger en RAM un OS de secours Catalina et démarre le Mac sur cet OS en RAM. Tu obtiens un écran avec une fenêtre de 4 Utilitaires macOS.

Je te passe le tuto qui te montre comment poster alors ici des informations du terminal -->

- va à la barre de menus supérieure de l'écran > menu : Utilitaires > sous-menu : Terminal.​

Dans la fenêtre ouverte > passe la commande  :
Bloc de code:
diskutil list

  • tu vas voir s'afficher le tableau des disques attachés au Mac (en interne / externe) > avec leurs paramètres de tables de partition > partitions > Conteneur CoreStorage si présent > Conteneur apfs si présent
  • une série de micro-disques correspond à des images-disques créées en RAM à l'occasion du démarrage en mode Recovery > dont les volumes sont montés en lecture & écriture à l'espace de dossiers de l'OS de secours qui leur servent de points de montage. Ce qui permet pendant le fonctionnement de cet OS monté en lecture seule > à des écritures de s'effectuer à l'espace des dossiers où se trouvent montés les volumes des images-disques de la RAM. Ces images-disques s'effacent à l'extinction ou au re-démarrage.

Voici comment tu vas pouvoir poster ici ce tableau sans avoir besoin de prendre de photo -->

  • tu sélectionnes le tableau > ⌘C pour le copier dans le presse-papier > ⌘Q pour quitter le «Terminal» > option  : "Obtenir de l'aide en ligne" (dans la fenêtre des 4 Utilitaires) > ce qui lance un navigateur «Safari» 
  • page Apple par défaut > un clic sur l'adresse de haut de page pour l'éditer > saisis  : macgénération (tout court  : c'est une barre de recherche Google) et valide > tu atteins le site MacGé > Forums > te connectes > ce fil 
  • dans cette page de MacGé > presse le bouton
    1555929346-524315-original.png
    ici :
    1555929346-521520-original.png

    menu  : </> Code > par ⌘V colle dans la fenêtre Code > presse le bouton Insérer (ce procédé permet un affichage fenêtré qui économise l'espace de page en respectant la mise en forme des tableaux du «Terminal» --> d'où une plus grande lisibilité)

=> ces informations montreront la configuration logique de ton disque avec les index du Conteneur apfs et de ses volumes mis à jour à partir de ce démarrage.

Note 1 : si tu ne peux pas poster via le Safari de la session de secours (ça arrive) --> poste une photo du tableau (à partir du commencement = le disque /dev/disk0 ou disque physique interne) - tu as un bouton : "Transférer un fichier" en bas de cette page.

Note 2 : dans la session de secours > les applications se lancent en mode "alternatif" et pas parallèle. Il faut quitter le Terminal pour lancer Safari. Vice-versa > quitter Safari pour récupérer l'écran général de la session de secours et pouvoir relancer le Terminal. Aucun redémarrage n'est requis.
 
Voilà Monsieur :)

EDIT 1 : Dans le même tps, j'ai vu que j'avais un disk de 24 go que j'avais malheureusement vidé car j'essayais désésperement de créer un dual boot avec un windows 7 sans passer par Boot Camp car impossible (je ne t'apprend rien si je te dis qu'il n'accepte que les copies de w10)

EDIT 2 : Du coup, c'est le moment de te demander de créer un partition pour un dual boot w7 (si tu sais comment on fait bien sur) ça pourrait faire une pierre deux coups... Après je ne veux pas abuser...

Bloc de code:
-bash-3.2# diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk3         499.3 GB   disk0s2

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *24.0 GB    disk1
   1:        Apple_partition_map                         258.0 KB   disk1s1

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +2.1 GB     disk2
   1:                  Apple_HFS macOS Base System       2.0 GB     disk2s1

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +499.3 GB   disk3
                                 Physical Store disk0s2
   1:                APFS Volume Catalina - Données      144.0 GB   disk3s1
   2:                APFS Volume Preboot                 82.7 MB    disk3s2
   3:                APFS Volume Recovery                528.9 MB   disk3s3
   4:                APFS Volume Catalina                10.9 GB    disk3s4
   5:                APFS Volume VM                      12.9 GB    disk3s5

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +10.5 MB    disk4

/dev/disk5 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +10.5 MB    disk5

/dev/disk6 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk6

/dev/disk7 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk7

/dev/disk8 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk8

/dev/disk9 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk9

/dev/disk10 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk10

/dev/disk11 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk11

/dev/disk12 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +12.6 MB    disk12

/dev/disk13 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +4.2 MB     disk13

/dev/disk14 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk14

/dev/disk15 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk15

/dev/disk16 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk16

/dev/disk17 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk17

/dev/disk18 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk18

/dev/disk19 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk19

/dev/disk20 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk20

/dev/disk21 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk21

/dev/disk22 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk22

/dev/disk23 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk23

/dev/disk24 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk24

-bash-3.2#
 
EDIT 2 : Du coup, c'est le moment de te demander de créer un partition pour un dual boot w7 (si tu sais comment on fait bien sur) ça pourrait faire une pierre deux coups... Après je ne veux pas abuser..
macOS Catalina et Windows 7 = impossible, uniquement que Windows 10. Et par défaut, pour toute installation d'une version de Windows, il faut impérativement utiliser Assistant Boot Camp.
 
Si tu es toujours dans la session de secours > passe la commande :
Bloc de code:
diskutil umountDisk force disk3

  • la commande démonte tous les volumes du Conteneur apfs (néccessaire pour que la commande gpt puisse écrire à la table GPT du disque)

Poste le retour.
 
Si tu es toujours dans la session de secours > passe la commande :
Bloc de code:
diskutil umountDisk force disk3

  • la commande démonte tous les volumes du Conteneur apfs (néccessaire pour que la commande gpt puisse écrire à la table GPT du disque)

Poste le retour.
Bloc de code:
-bash-3.2# diskutil umountDisk force disk3
Forced unmount of all volumes on disk3 was successful
-bash-3.2#
 
Parfait.

Voici la commande à passer à présent :
Bloc de code:
gpt add -b 409640 -s 977828280 -t 48465300-0000-11AA-AA11-00306543ECAC disk0 ; diskutil list disk0

  • tu la passes en copier-coller à rebours : tu la copies ici d'abord avec Safari > tu la colles dans le terminal > tu l'exécutes
  • la commande crée dans la table GPT un descripteur de partition telle que : bloc de départ = n°409640 > extension = 977828280 blocs (de 512 octets = 500,64 Go) > type = "Apple_HFS" (via son UUID de type) > puis réaffiche la configuration du disque interne

Poste le retour de commande (NB : la nouvelle partition devrait avoir un faux rang = n°3 ne correspondant pas à son emplacement sur les blocs en localisation - il faudra corriger).
 
Je dois dire que je ne comprends pas tout mais j'execute :)

Bloc de code:
-bash-3.2# gpt add -b 409640 -s 977828280 -t 48465300-0000-11AA-AA11-00306543ECAC disk0 ; diskutil list disk0
disk0s3 added
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk3         499.3 GB   disk0s2
   3:                  Apple_HFS                         500.6 GB   disk0s3
-bash-3.2#
 
Voici la nouvelle partition -->
Bloc de code:
   3:                  Apple_HFS                         500.6 GB   disk0s3

  • il y a 2 choses à remarquer : a) elle a le faux rang3 dans la table GPT > car son descripteur a été créé en dernier lieu (les rangs n°1 & n°2 étaient déjà pris par les 2 partitions en place) > b) c'est un conteneur de blocs bruts = sans système de fichiers (formateur d'un volume sur la partition).

On s'occupe d'abord de restaurer le rang correspondant à sa localisation sur les blocs (rang2 = avant la partition de type apfs). Passe la commande :
Bloc de code:
diskutil repairDisk disk0 ; diskutil list disk0

  • à validation > une demande de confirmation s'affiche => tape y (comme yes) et revalide
  • la commande lance une réparation totale du disque (ce qui comprend la réparation de la table GPT) > puis réaffiche la configuration du disque interne

Poste l'affichage d'ensemble retourné.
 
Voilà, apparement il y a une erreur :/

Bloc de code:
-bash-3.2# diskutil repairDisk disk0 ; diskutil list disk0
Repairing the partition map might erase disk0s1, proceed? (y/N) y
Started partition map repair on disk0
Checking prerequisites
Checking the partition list
Adjusting partition map to fit whole disk as required
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Checking all HFS data partition loader spaces
Preparing to create trailing loader space by shrinking the volume "" on disk0s3
Creating loader space, part 1 of 3: Verifying the file system
Problems were encountered during repair of the partition map
Error: -69763: Partition map repair failed file system check while creating loader space for a data partition. You should repair that specific partition and then try repairing the partition map again
Underlying error: -69845
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS                         500.6 GB   disk0s3
   3:                 Apple_APFS Container disk3         499.3 GB   disk0s2
-bash-3.2#
 
Comme tu peux le voir -->
Bloc de code:
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS                         500.6 GB   disk0s3
   3:                 Apple_APFS Container disk3         499.3 GB   disk0s2

  • objectif atteint : la nouvelle partition de type Apple_HFS a récupéré le rang2 dans la table GPT comme voulu > la partition de type Apple_APFS rétrogradant au rang n°3 comme requis. L'erreur attestée concernait simplement la vérification du système de fichiers de la nouvelle partition : elle a échoué pour la raison qu'aucun système de fichiers n'existe encore dans la partition.

On passe au formatage de la partition. Passe la commande :
Bloc de code:
newfs_hfs -J -v "Macintosh HD" /dev/disk0s3 ; diskutil mount disk0s3 ; diskutil list disk0

  • passe-la encore en copier-coller à rebours
  • la commande injecte sur les blocs de tête de la partition > un système de fichiers jhfs+ (Mac OS étendu journalisé) > formateur d'un volume Macintosh HD sur la partition > force la prise en charge de ce système de fichiers par le kernel en commandant le remontage du volume > réaffiche la configuration du disque

Poste l'affichage d'ensemble retourné.
 
On avance :)

Bloc de code:
-bash-3.2# newfs_hfs -J -v "Macintosh HD" /dev/disk0s3 ; diskutil mount disk0s3 ; diskutil list disk0
Initialized /dev/rdisk0s3 as a 466 GB case-insensitive HFS Plus volume with a 40960k journal
Volume Macintosh HD on disk0s3 mounted
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            500.6 GB   disk0s3
   3:                 Apple_APFS Container disk3         499.3 GB   disk0s2
-bash-3.2#
 
Opération réussie -->
Bloc de code:
   2:                  Apple_HFS Macintosh HD            500.6 GB   disk0s3

----------

Veux-tu lancer une installation de Catalina à destination de Macintosh HD ? -->

- puis en fin d'installation > après un redémarrage et divers paramétrages > à la page proposant de récupérer des données => cocher la case : "À partir d'un Mac, d'une sauvegarde Time Machine ou d'un Disque de démarrage" > et indiquer le volume Catalina - Données comme source ?​

----------

Note : tant que tu auras 2 partitions principales sur le disque (la partition EFI n'étant jamais comptée) => l'Assistant BootCamp refusera de créer une nouvelle partition et d'installer Windows à sa destination -->

- Il faut donc que tu règles d'abord la question de l'installation de Macintosh HD > puis suppression de l'apfs du bas (Catalina) et récupération de son espace à l'apfs du haut (Macintosh HD).​