macOS Big Sur Casse-tête partitions, récupération OS suite dual-boot raté.

  • Créateur du sujet Créateur du sujet Proto
  • Date de début Date de début

Proto

Membre confirmé
8 Août 2021
20
0
33
Bonjour,

J'ai un "petit" souci avec mon MacBook pro fin 2013. Je m'explique : j'avais fait la maj Big Sur, tout fonctionnait parfaitement. Mais voilà, hier je me dit "tiens je vais mettre une distrib Linux en Dual-boot sur mon Mac" (marre de lancer en machine virtuelle). Le truc c'est que j'ai fait ça complètement à l'arrache et à la vite. Je ne maîtrise pas les partitions. EN GROS, j'ai alloué 30 Go de partition pour installer linux. Je lance ma clé bootable et lors de l'installation il est précisé que je doit avoir une partiton pour l'efi et une "swap".

J'étais fatigué et contrairement à mon habitude je me suis pas renseigné et j'ai bricolé. J'ai vu 2 petites partitions d'environ 100 Mo (je sais plus) et j'en ai pris une au pif pour l'efi. J'ai pas fait de swap. J'ai installé le fichier racine sur la partition de 30 Go.

J'ai fait en sorte que l'installateur ne touche pas à la partition principale qui pour moi était réservée à l'os mac. Je lance l'installation, linux démarre. Je rallume l'ordi et il se lance sur linux (distrib kali). Pas grave, je redémarre en maintenant "alt" et là, j'avais qu'un choix "efi". je clique et je tombe sur "GNU-grub". Je tente différentes manip basiques et rien ne fonctionne.

Je redémarre avec "cmd-r", il me fait le chargement depuis internet (avec la petite planête qui tourne). Je lance"diskutil" et la j'ai 12 partitions. Je comprends rien. J'ai lance l'utilitaire de disque et là je comprends rien. Faudrait que je puisse envoyer des screen. Mais en gros je peux rien faire, c'est tout cassé...

Ensuite, ça m'embête mais foutu pour foutu, je tente de reinstaller OSX (Mavericks). Le seul disque qu'on me propose fait 130 Mo et quand je clique dessus on me précise qu'il n'est pas au format Mac Os étendu.

Je sais pas quoi faire. Je pourrais me pencher sur les actions possibles avec "diskutil" et apprendre les fonctionnement des partitions et OS pour essayer de remédier au problème mais j'ai fait assez de bétises pour le moment.

Ah, et aujourd'hui quand je démarre sans rien faire j'ai un joli point d'interrogation qui s'affiche et c'est tout. Et évidemment pas de time machine ou sauvegarde quelconque.
Bon, je check si je peux vous envoyer des screens en commentaire pour que ce soit plus clair.
Cordialement.

Voilà pour les screen.
 

Fichiers joints

  • IMG20210808165523.jpg
    IMG20210808165523.jpg
    84 KB · Affichages: 138
  • IMG20210808164707.jpg
    IMG20210808164707.jpg
    119,6 KB · Affichages: 137
  • IMG20210808164626.jpg
    IMG20210808164626.jpg
    59,9 KB · Affichages: 136
Dernière édition par un modérateur:
Bonjour Proto

Tu as démarré par internet > ce qui a téléchargé en RAM l'OS de secours d'usine de ton Mac = Mavericks. Dans le terminal de cette session de secours > tu as passé une commande : diskutil list qui a retourné un triple affichage :

- a) de ton disque interne dont l'index d'appareil est disk0 (disque 1er attaché temporellement parlant au Système du Mac).​
- b) de l'image-disque de secours supportée en RAM dont le volume monté recelant l'OS de secours s'intitule OS X Base System et qui a l'index d'appareil disk1.​
- c) une série de micro-disques (indexés de disk2 à disk12) 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 relevant d'un volume 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.​

Voilà pour l'explication globale.

----------

Ton disque interne se trouve ainsi décrit -->
Bloc de code:
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               469.3 MB   disk0s1
   2:       Microsoft Basic Data                         30.6 GB    disk0s2
   3:       Microsoft Basic Data NO NAME                 133.2 MB   disk0s3
  • je note qu'il manque en partition n°1 (disk0s1) une partition dédiée au programme interne du Mac (l'EFI) > qui devrait avoir 209,7 Mo de taille > avoir le type EFI > et porter un volume EFI. Cette partition a été sucrée manifestement par tes manipulations linuxiennes. Il y a peut-être toujours sur le disque une bande d'espace libre de 409600 blocs (de 512 Mo) correspondant à cette partition disparue et qui permettrait de la recréer.
  • la mention de FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF sur la partition macOS de 469 Go est un faux UUID de type de partition (qui devait être : "Apple_APFS" si tu avais installé Big Sur). Ce qui veut dire que le type de cette partition se trouve corrompu et illisible dans le descripteur de cette partition recelé dans la table de partition GPT (GUID_Partition_Table) d'en-tête du disque. Table qui décrit logiquement les partitions du disque selon 4 paramètres : le rang > le type > le bloc de tête > l'extension (en nombre de blocs). Cette corruption du type de partition dans le descripteur GPT est encore l'effet de tes manipulations linuxiennes. Il est tout à fait possible de recréer le type valide de la partition en restaurant le descripteur GPT de la partition > mais pas dans un terminal de session Mavericks > car cet OS ignorait l'apfs pas encore publié. Mais dans un terminal de session de secours Big Sur qui prend en charge l'apfs.
----------

Dans ta session Mavericks > on peut néanmoins vérifier s'il y a toujours en haut de disque un espace libre de blocs permettant de recréer une partition de type EFI.

- passe la commande :​
Bloc de code:
gpt show disk0
  • qui lit la table GPT d'en-tête du disque --> et affiche en retour la distribution des blocs gérés par cette table en : secteur de boot des tables de partitions > partitions > bandes d'espace libres > sauvegarde de la GPT en queue de disque

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
  • 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.

=> ces informations montreront la configuration logique de ton disque.

Note 1 : si tu ne peux pas poster via le Safari de la session de secours (ça arrive) --> poste une photo du tableau comme tu as déjà fait.

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.
 
Bloc de code:
-bash-3.2# gpt show disk0
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34     409606        
     409640  916672136      1  GPT part - FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
  917081776   59761104      2  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  976842880       1920        
  976844800     260096      3  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  977104896        131        
  977105027         32         Sec GPT table
  977105059          1         Sec GPT header

Eh bien quelle réponse ! Merci ! C'est assez fastidieux, le mac est lent, si je comprend bien c'est parce que la mémoire vive est déjà utilisée par la session de récupération. Mais c'est tout bon !
 
Une session de secours fonctionne toujours lentement.

----------

Voici la bande d'espace libre en haut de disque -->
Bloc de code:
         34     409606
  • elle commence au bloc n°34 > et a une extension de 409606 blocs de 512 octets. Elle correspond pile à l'espace de la partition EFI disparue et va permettre de la recréer.
----------

Pour écrire un nouveau descripteur à la GPT > il faut que cette dernière soit désactivée. Càd. non prise en charge par un kernel (moteur logique ici de l'OS de secours démarré) pour montage des volumes formés sur les partitions décrites. Ici il n'y a que le volume de Linux : NO NAME qui puisse se trouver monté. Donc passe la commande :
Bloc de code:
diskutil umount force disk0s3
  • qui démonte NO NAME

Si tu obtiens en retour un :
Bloc de code:
Volume NO NAME on disk0s3 force-unmounted
  • signe de démontage réussi => voici la commande que tu dois passer derrière :
Bloc de code:
gpt add -b 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0 ; diskutil list disk0
  • celle-là tu la passes en copier-coller à rebours : tu quittes le terminal et tu viens ici d'abord avec Safari la copier > tu quittes Safari pour la coller dans le terminal > tu l'exécutes
  • la commande crée un nouveau descripteur GPT de partition telle que : bloc de tête = n°40 > extension = 409600 (blocs de 512 octets = 209,7 Mo) > type = EFI (via l'UUID assignant universellement ce type : C12A7328-F81F-11D2-BA4B-00A0C93EC93B) - puis réaffiche la configuration du disque interne seule

Poste le retour.

Note : dans ma commande de recréation > je n'ai pas mentionné le de rang de la partition à recréer. C'est que le rang qui correspondrait à sa localisation sur les blocs (le n°1) est déjà pris par la partition macOS au type corrompu. Donc automatiquement la nouvelle partition EFI va écoper du prochain de rang vacant = le n°4. Elle sera donc mal rangée dans la table GPT => ce que le tableau de diskutil devrait avérer en la listant en queue de disque. On réparera la GPT dans une nouvelle commande pour assigner à la partition EFI le de rang (= n°1) qui sied à sa localisation sur les blocs.
 
  • J’aime
Réactions: peyret et litobar71
Et voici le résultat. J'ai fait 2 fois la manip car première fois ça a buggé et jai pas eu le temps de faire le copié-collé mais il n'y avait pas le message d'erreur présent sur celui-ci.


Bloc de code:
-bash-3.2# diskutil unmount force disk0s3
Volume NO NAME on disk0s3 force-unmounted
-bash-3.2# gpt add -b 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0 ; diskutil list disk0
gpt add: disk0: error: no space available on device
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               469.3 GB   disk0s1
   2:       Microsoft Basic Data                         30.6 GB    disk0s2
   3:       Microsoft Basic Data NO NAME                 133.2 MB   disk0s3
   4:                        EFI EFI                     209.7 MB   disk0s4
 
Voici la partition bien recréée -->
Bloc de code:
   4:                        EFI EFI                     209.7 MB   disk0s4
  • il y a 2 choses à remarquer à son sujet : d'abord elle a été recréée avec le type EFI attendu > mais aussi avec un volume EFI formé sur la partition. Comment cela ? --> c'est que le système de fichiers FAT-32 > formateur par défaut d'un volume sur cette espèce de partition > était resté inscrit sur les blocs du disque. La recréation d'une partition dans le bon type > avec le bloc n°40 comme bloc de tête --> a récupéré sur ce bloc le "super-bloc" du FAT-32 ou bloc d'initialisation de ce système de fichiers. Ce qui a permis au kernel (de l'OS de secours démarré) > à la lecture de la GPT éditée --> de prendre en charge le système de fichiers FAT-32 en tant que logiciel d'en-tête de partition (condition logique nécessaire) > et de remonter le volume EFI défini par ce système de fichiers. Il n'y avait pas eu donc reformatage de la partition lors de tes manipulations linuxiennes.
  • ensuite : elle se trouve mal rangée au rang n°4 des partitions décrites par la GPT > sans correspondance avec sa localisation sur les blocs qui requiert le rang n°1. On va donc arranger cela en finalisation de l'opération de restauration de la partition EFI.

Passe la commande :
Bloc de code:
diskutil repairDisk disk0 ; diskutil list disk0
  • (point-virgule ; en milieu de commande) à validation une demande de confirmation risque de s'afficher : tape y (yes) et revalide
  • la commande lance une réparation logique totale du disque interne > dont fait partie une réparation de la table de partition GPT d'en-tête du disque - puis ré-affiche la configuration du disque

Poste le retour complet de la commande.
 
Bonjour ! Voici le résutat de la manipulation (je l'ai faite 3 fois car à chaque fois bug au moment de faire le copier-coller):
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 all HFS data partition loader spaces
Checking booter partitions
Reviewing boot support loaders
Checking Core Storage Physical Volume partitions
Updating Windows boot.ini files as required
The partition map appears to be OK
Finished partition map repair on disk0
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               469.3 GB   disk0s2
   3:       Microsoft Basic Data                         30.6 GB    disk0s3
   4:       Microsoft Basic Data NO NAME                 133.2 MB   disk0s4

Maintenant lorsque je redémarre avec "alt" il me propose une récupération internet, mais je préfère attendre vos recommandations avant de lancer quoi que ce soit.
 
Voici à présent la partition de l'EFI -->
Bloc de code:
   1:                        EFI EFI                     209.7 MB   disk0s1
  • comme tu peux le voir : désormais bien rangée au rang n°1 dans la table de partition GPT d'en-tête du disque

Affaire réglée pour cette partition.

----------

On va s'attaquer à présent à la restauration de la partition macOS que voici -->
Bloc de code:
   2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF               469.3 GB   disk0s2
  • en restaurant son descripteur dans la table GPT.

Mais pour cela > il faut se situer dans une session de secours Big Sur prenant en charge le format apfs -->

- donc redémarre (Menu  > Redémarrer) > les 3 touches ⌘⌥R (command option R) tenues pressées ensemble = démarrage par internet alternatif > téléchargeant en RAM (globe terrestre) un OS de secours Big Sur (500 Mo compressés) > puis démarrant le Mac dessus à la fin. Obtiens-tu un écran aux 4 Utilitaires macOS cette fois --> dont une option : "Réinstaller macOS Big Sur" offre de réinstaller Big Sur ?​

Note : je dois m'absenter un moment. Je repréndrai vers les 10H.
 
Parfait.

- passe la commande :​
Bloc de code:
gpt show disk0
  • qui va afficher l'actuelle distritbution des blocs du disque interne

Poste le tableau.

Note : tu confirmes que Big Sur est installé sur la partition macOS ? --> c'est pour être sûr de type de cette partition à restaurer.
 
Safari ne veut pas afficher ce sujet...
Je poste donc un screen du résultat :
IMG20210809183435.jpg

Normalement Big Sur est Sur la partition "disk0s2" étant donné qu'à la base c'est la partition principale de 500 Go à laquelle j'ai amputé les 30 Go. Si mon raisonnement est bon, alors je confirme.
 
Dernière édition par un modérateur:
D'accord. Voici le sens de la manœuvre à venir : d'abord supprimer le descripteur corrompu de la partition macOS (suppression qui n'affecte que la table GPT des blocs 1 > 33 du disque et aucun bloc de la partition) > ensuite recréer un descripteur GPT valide de la même partition.

- supprimer un descripteur = écrire à la GPT --> qui doit donc se trouver désactivée au préalable. Donc passe la commande :​
Bloc de code:
diskutil umount force disk0s4
  • qui démonte le volume NO NAME seul susceptible de se trouver monté et d'activer la GPT

Si tu obtiens en retour un :
Bloc de code:
Volume NO NAME on disk0s4 force-unmounted
  • signe de démontage réussi => enchaîne avec la commande :
Bloc de code:
gpt remove -i 2 disk0
  • qui supprime le descripteur GPT corrompu de la partition macOS (celui qui a l'index de rang : 2 dans la GPT)

Poste le reetour.
 
Parfait : descripteur supprimé => partition logiquement supprimée.

- à présent on recrée un descripteur valide. Comme il va y avoir une longue commande de création de descripteur --> question : peux-tu venir ici en lecture seule avec Safari (pour copier la commande) ou pas ?​
 
Toujours pas, "Error composing Block page". Je peux entrer la commande depuis Maverick ? Ça fonctionnait de cette façon.
C'est étrange, ce thread est le seul qui m'affiche ce message d'erreur...Peut être si vous m'envoyez la commande en mp en plus de la poster ici je pourrais y accéder.
 
Dernière édition:
Je pense que ça va être le plus commode pour toi pour ce qui est de la saisie de la commande.

- donc redémarre (Menu  > Redémarrer) > et tiens aussitôt pressées les 2 touches ⌘⌥ (command R). Il s'agit normalement d'un démarrage de secours local (sur l'OS de secours du disque) > mais en l'absence d'un tel OS de secours du disque => la commande est redirigée sur un démarrage par internet téléchargeant en RAM l'OS de secours d'usine du Mac.​

Tu n'auras qu'à dire si tu as bien récupéré l'écran aux 4 Utilitaires OS X de la session de secours Mavericks.
 
Parfait ! alors ... action !

- passe d'abord la commande :​
Bloc de code:
diskutil list disk0
  • qui affiche la configuration du disque interne seul

Poste le retour => que je voie si un redémarrage sur la suppression de la partition n°2 n'aurait pas remis à jour les rangs des partitions dans la GPT.
 
Régulièrement Safari me demande un mot de passe, le trousseau "session"... Je ne le connais pas et, si je fais annuler, la roue de chargement m'empêche d'effectuer la moindre action et je doit reeebooter la session depuis internet et c'est une grosse perte de temps... Je relance donc la session et vous envoie le résultat.
 
Dernière édition par un modérateur:
Poste le retour de :
Bloc de code:
diskutil list disk0
  • via une photo en évitant de lancer Safari. Tu ne le lanceras que pour venir ici copier la longue commande.