OS X : Partition récupération (infos/problèmes)

Alors lance gdisk par la commande :
Bloc de code:
sudo gdisk /dev/disk1

  • puis passe une à une les commandes (avec validation chaque fois) que je te présente en tableau et qui correspondent à chaque fois aux attentes du programme :
Bloc de code:
r
h
4
y
07
y
n
w
y

  • r # recovery mode
  • h # créer une Hybrid MBR
  • 4 # choisir BOOTCAMP comme partition reconnue
  • y # placer EFI en tête des partitions reconnues
  • 07 # code par défaut (attention ! si ce n'est pas 07 qui est proposé par défaut --> tape le code proposé)
  • y # bootable flag
  • n # ne pas utiliser d'autres partitions en protection
  • w # écrire à la table
  • y # confirmer

=> tu n'as qu'à dire si l'enchaînement s'est fait sans bavures.
 
Nickel!:
Bloc de code:
GPT fdisk (gdisk) version 1.0.3

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 4
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): y

Creating entry for GPT partition #4 (MBR partition #2)
Enter an MBR hex code (default 07): 07
Set the bootable flag? (Y/N): y

Unused partition space(s) found. Use one to protect more partitions? (Y/N): n

Recovery/transformation command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/disk1.
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
 
Repasse un :
Bloc de code:
sudo gdisk /dev/disk1

  • histoire d'afficher le tableau initial des tables de partition

=> reposte ici ce tableau. Je ne suis pas sûr que le kernel ait déjà chargé la nouvelle table > mais c'est une occasion de le vérifier.
 
Bloc de code:
GPT fdisk (gdisk) version 1.0.3

Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.
 
Cette mention en tête -->
Bloc de code:
 MBR: hybrid

  • montre qu'il y a bien eu conversion de la table secondaire Protective_MBR (fake) > en une table secondaire Hybrid_MBR (opératoire).

Cette table comporte 2 entrées de partitions empruntées à la GPT principale -->

  • la partition disk1s1 EFI indexée comme MBR Part 1
  • la partition disk1s4 BOOTCAMP indexée comme MBR Part 2 - cette partition portant un flag l'annonçant démarrable par un BIOS

=> tu n'as qu'à re-démarrer en utilisant les 2 options à ta disposition -->

  • sans rien faire = écran «rEFInd» --> est-ce que le choix de Windows (Legacy) fonctionne > à présent que l'EFI peut émuler un BIOS capable de lire la HMBR > et de suivre en mode boot le chemin d'accès au volume BOOTCAMP ?
  • en pressant la touche "alt" = écran du boot_manager de l'EFI --> est-ce que tu as un choix démarrable de Windows ?

# je pense qu'il y a incompatibilité du Système W-10 avec un boot Legacy (BIOS_émulé > HMBR > boot_loader legacy : bootmgr)
 
J'ai redémarré en pressant la touche "alt" et là eurêka, la partition BOOTCAMP/Windows est apparue, donc sans perdre un instant j'ai cliqué dessus et enfin Windows s'est lancé :)
Faut-il également vérifier l'autre option "sans rien faire"?
La réinstallation de High Sierra sur Macintosh HD a-t-elle permis de conserver l'écran "rEFInd" au démarrage?
 
J'ai redémarré en pressant la touche "alt" et là eurêka, la partition BOOTCAMP/Windows est apparue, donc sans perdre un instant j'ai cliqué dessus et enfin Windows s'est lancé :)

Je ne le crois pas et pourtant ça l'a fait.

J'avais pris ça comme une récréation logique sentant bon l'époque héroïque de W-7 et du boot Legacy (pour lequel les ingénieurs de la  ont mis en place un dispositif digne des grandes heures du concours Lépine et qui m'a toujours rouler par terre de rire). Et cette espèce de jeu poilant (mais néanmoins joué formellement) a permis le reboot de Windows.

Si j'avais eu à disposition un logiciel permettant d'inscrire un chemin de démarrage au boot_loader /Volumes/BOOTCAMP/Windows/Boot/EFI/bootmgr.efi --> je pense qu'un démarrage en mode UEFI aurait été honoré.

Il faut admettre que ton iMac de 2012 est juste à la limite du compatible avec le boot de W-10. Il faut croire que les ingénieurs de Microsoft ont implémenté un boot à l'ancienne (Legacy) pour ce type de bécanes déjà anciennes. D'où le boot_loader "type BIOS" = bootmgr présent dans l'espace-racine du volume BOOTCAMP. L'absence d'un boot_loader bootmgr.efi (type UEFI) dans le même espace-racine > me paraît le signe qu'à l'installation Windows-10 s'est installé chez toi en vue d'un boot Legacy. Donc que ton volume BOOTCAMP a toujours booté en mode Legacy.

Ce serait donc alors l'effacement de la table Hybrid_MBR que l'«Assistant BootCamp» (implémenté pour cela) avait créée sur le bloc 0 du HDD > et son remplacment par une Protective_MBR (fake ne décrivant pas de partition) qui aurait cassé le boot. Effacement consécutif à tes manipulations de partitions.

Tu dois prendre conscience que le boot actuel de ton Windows (boot Legacy par un BIOS_émulé de l'EFI > lisant la table HMBR) --> lit une table qui ne "mappe" (cartographie) qu'un maximum de 2,2 To de blocs sur le disque. Il faut donc garder à toute force la bipartition d'usine : partition 2,2 To et partition 800 Go > pour que BOOTCAMP soit toujours créé sur l'espace libéré par les 2,2 To > et fasse donc partie de la zone de blocs descriptibles par la HMBR.

----------

Régulièrement > une installation de macOS efface l'inscription en NVRAM > à la variable efi-boot-device > qui adressait le boot_loader de «rEFInd» dans le volume EFI. Il faut donc ré-installer «rEFInd» après chaque installation d'OS.

Tu n'as qu'à passer la commande :
Bloc de code:
nvram -p

  • qui retourne le tableau des variables de la NVRAM

et le poster ici --> l'affaire sera claire.
 
Dernière édition par un modérateur:
C'est plutôt fouillis tout ça!:
Bloc de code:
LocationServicesEnabled    %01
EFIBluetoothDelay    %b8%0b
efi-backup-boot-device    <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>0000484B-78A0-0000-2425-000048060000</string></dict></dict><key>IOEFIShortForm</key><true/><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\refind\refind_x64.efi</string></dict></array>%00
efi-boot-device    <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>73B5BB98-CFD3-41D5-8F94-5452E8619506</string></dict></dict><key>BLLastBSDName</key><string>disk0s3</string></dict></array>%00
SystemAudioVolume    Q
backlight-level    =%25
BootCampHD    %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%00%00%00%00%00%00%7f%ff%04%00
bluetoothInternalControllerInfo    %8b%82%ac%05%00%13%18%1d%8c-%aaC%f2(
prev-lang:kbd    fr-FR:1
SystemAudioVolumeDB    %ef
previous-system-uuid    5BAF87DD-6482-3146-A0C8-D46E10070F3B%00
fmm-computer-name    Rapha%c3%abl%e2%80%99s iMac
bluetoothActiveControllerInfo    %8b%82%ac%05%02%00%00%13%18%1d%8c-%aaC%f2(
csr-active-config    w%00%00%00
efi-boot-device-data    %02%01%0c%00%d0A%03%0a%00%00%00%00%01%01%06%00%02%1f%03%12%0a%00%01%00%00%00%00%00%04%01*%00%03%00%00%00%d8%ff%1b%0e%00%00%00%00%00%00%04%00%00%00%00%00%98%bb%b5s%d3%cf%d5A%8f%94TR%e8a%95%06%02%02%7f%ff%04%00
display-config    %00%00%25%01s%08%ff%ff%01%00
efi-backup-boot-device-data    %04%01*%00%01%00%00%00(%00%00%00%00%00%00%00%00@%06%00%00%00%00%00KH%00%00%a0x%00%00$%25%00%00H%06%00%00%02%02%04%04:%00\%00E%00F%00I%00\%00r%00e%00f%00i%00n%00d%00\%00r%00e%00f%00i%00n%00d%00_%00x%006%004%00.%00e%00f%00i%00%00%00%7f%ff%04%00
 
Certes la syntaxe est abstruse > mais cette ligne a priori incompréhensible -->
Bloc de code:
efi-backup-boot-device    <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>0000484B-78A0-0000-2425-000048060000</string></dict></dict><key>IOEFIShortForm</key><true/><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\refind\refind_x64.efi</string></dict></array>%00

se simplifie par d'énergiques mises entre parenthèses en ceci -->
Bloc de code:
efi-backup-boot-device   <string>disk0s1</string>     <string>\EFI\refind\refind_x64.efi</string>

  • dont tu conclus que le chemin de démarrable automatique de l'EFI inscrit à la variable efi-boot-device --> pointe à la partition disk0s1 (la partition EFI du SSD) > et dans son volume EFI > indique le chemin : \EFI\refind\refind_x64.efi = dossier EFI > sous-dossier refind > boot_loader : refind_x64.efi

Si tu re-démarres donc sans option au clavier > tu vas tomber logiquement sur l'écran de «rEFInd» (est-ce que tu as ré-exécuté son installateur ?). Est-ce que le choix de Windows à cet écran te permet aussi le boot ?
 
Après re-démarrage sans option au clavier, je ne tombe pas sur l'écran de "rEFInd" mais accède directement à Macintosh HD/High Sierra (Je n'ai pas ré-exécuté l'installateur de "rEFInd" depuis la ré-installation de High Sierra...).
 
Je me suis trompé de variable (je ne suis pas du soir). J'avais pris la efi-backup-boot-device.

Voici la efi-boot-device -->
Bloc de code:
efi-boot-device    <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>73B5BB98-CFD3-41D5-8F94-5452E8619506</string></dict></dict><key>BLLastBSDName</key><string>disk0s3</string></dict></array>%00

qui donne après simplication -->
Bloc de code:
<string>disk0s3</string>

  • qui est la partition du booter1 (le Boot OS X du SDD)

Il est donc clair que l'adresse au boot_loader de «rEFInd» a sauté > et n'est plus présente qu'en mode "backup" et non opérationnnelle. Il faut que tu ré-exécutes le refind-install en mode sudo et tout rentrera dans l'ordre.
 
L'écran gestionnaire de démarrage de "rEFInd" me donne le choix entre:
- Boot mac OS
- Boot mac OS from BOOT OS X
- Boot mac OS from BOOT OS X
- Boot Windows (Legacy) from BOOTCAMP
- Boot Windows OS from FAT volume

Le choix de "Boot Windows (Legacy) from BOOTCAMP" à cet écran me permet bien le boot. :)

Faut-il également tester le "Boot Windows OS from FAT volume"? A quoi correspond-il?
 
Les 3 Boot Mac OS désignent donc les 3 volumes à fonction « booter » de pré-démarrage du Volume Logique CoreStorage --> les 2 Boot mac OS from BOOT OS X probabablement les volumes Boot OS X montés sur les partitions disk0s3 & disk1s6 > et le Boot mac OS le volume Recovery HD monté sur la partition disk1s3 sous un autre label que celui du volume de secours. Les 3 doivent être choisissables pour pré-démarrer Macintosh HD (càd. pour exporter le Volume Logique qui lui tient lieu de disque virtuel).

Le Boot Windows (Legacy) from BOOTCAMP désigne bien le volume BOOTCAMP en tant qu'un boot_loader Legacy (exécutable par un programme de boot de type BIOS = le fichier bootmgr) est présent dans l'espace-racine du volume. C'est la même détection du volume que faisait «rEFInd» antérieurement --> sauf que cette fois-ci la restauration d'une Hybrid_MBR sur le bloc 0 du HDD (par l'utilitaire gdisk créé par le même Roderick Smith qui a créé «rEFInd» - voilà où se glisse la plaisanterie dans la logique) - Hybrid_MBR décrivant en MBR Part 2 la partition BOOTCAMP comme bootable --> permet au BIOS émulé par l'EFI d'accéder au volume et d'exécuter le programme de démarrage bootmgr.

Le Boot Windows OS from FAT volume est une désignation bizarre (pourquoi "FAT volume" étant donné que le format du système de fichiers de la partition BOOTCAMP est NTFS ?) --> cela correspond-il à la détection du volume BOOTCAMP que ferait «rEFInd» via la table GPT des blocs 1-32 du HDD > suite à ma tentative farfelue de "bénir" l'en-tête du volume BOOTCAMP par analogie au blessing d'un volume macOS ? - douteux > car le blessing en question pointait droit à un boot_loader UEFI = bootmgr.efi --> dans ces conditions > «rEFInd» devrait annoncer le volume comme un EFI Boot = un appareil bootable par l'EFI.

Car un gestionnaire de démarrage - que ce soit le boot_manager natif (= programme auxilaire de l'EFI) ou le boot_manager de tierce partie «rEFInd» - ne détecte un volume comme démarrable que s'il révèle au scan un boot_loader (un programme de démarrage-Système d'un OS). Un boot_loader n'est détectable dans un volume que : s'il existe dans l'espace-racine du volume (c'est le cas pour le bootmgr du volume BOOTCAMP) càd. au premier degré d'un répertoire de volume > ou si un chemin de démarrage est inscrit sur l'en-tête du volume > que le boot_manager peut suivre pour aviser un boot_loader enfoui au énième degré dans une arborescence de dossier (c'est le cas pour le boot.efi de macOS at: \System\Library\ CoreServices\boot.efi d'un volume Macintosh HD standard > ou dans un sous-dossier du « booter » d'un volume Boot OS X ou Recovery HD).

Tous les volumes sans exclusion se trouve montés sur toutes les partitions de disque dans le « temps du boot » (très différent du « temps de la session » d'utilisateur). Ils sont montés par l'EFI qui utilise donc les tables de partition de l'en-tête des disques pour l'adressage des systèmes de fichiers (générateurs des volumes) inscrits sur les partitions. Or pour ton HDD > 2 tables d'adressage lisibles par l'EFI existent : la GPT des blocs 1-32 & la HMBR du seul bloc 0. Le gestionnaire de démarrage de l'EFI peut donc scanner le volume BOOTCAMP via la HMBR et l'afficher démarrable.

# Je n'ai jamais tiré au clair les limites exactes du gestionnaire «rEFInd» : est-il un simple intermédiaire ("go-between") de l'EFI dont il se borne à aiguiller la puissance exécutive sur tel ou tel volume démarrable ? - ou bien est-il un intercepteur de l'EFI par son boot_loader = refind_x64.efi > de telle sorte qu'il s'approprierait la puissance exécutive de l'EFI (dont le programme quitterait après son exécution) pour booter par sa propre puissance exécutive le volume choisi en démarrage ? - si c'est la cas --> alors nécessairement le boot_loader de «rEFInd» doit être capable d'« émuler un BIOS » à la place de l'émulation par l'EFI > pour booter en mode Legacy le boot_loader bootmgr de BOOTCAMP.

# Je me souviens qu'à l'époque de «Yosemite 10.10» > où a été inauguré le premier protocole de sécurisation kext_signing dont l'EFI chargeait les instructions en NVRAM --> «rEFInd» était capable d'intercepter l'EFI et de booter OS X sans instruction de kext_signing. C'est cet exploit logique qui m'a laissé conjecturer qu'il n'est pas un simple médiateur (un aiguilleur) de l'EFI - programme qui resterait en stand-by le temps que «rEFInd» affiche son écran de choix > avant d'exécuter le boot_loader du volume choisi comme si «rEFInd» n'avait jamais existé. Parce qu'un vrai boot_loader (comme le boot.efi de macOS par exemple) est une application exécutive de l'EFI dont le processus > une fois lancé dans la RAM > ne dépend absolument plus de l'EFI dont le programme initiataire quitte. Or le refind_x64.efi me paraît un véritable boot_loader et pas simplement un « booter » ou pré-démarreur. Si tel est bien le cas > le refind_x64.efi s'approprie la puissance exécutive de l'EFI dont le programme quitte. Ce qui implique que le refind_x64.efi de «rEFInd» est capable de neutraliser les flags de l'EFI (comme le SIP) sans les transmettre automatiquement au kernel chargé dans le volume-cible. Cette capacité du refind_x64.efi est-elle un default (comme ça m'avait paru l'être à l'époque de «Yosemite») ou bien est-ce une option activable en ligne de commande (car il est possible d'implémenter le boot_loader de «rEFInd» d'instructions) ?

# - mon absence totale de formation informatique (suppléée grosso modo par des "émulations spéculatives") me coince aux entournures dans la résolution de pareils points de détails où j'imagine qu'un informaticien "calé" (disons) aurait vite fait de discriminer ce qu'il en est.​

=> tu n'as qu'à tester le boot par le biais du Boot Windows OS from FAT volume - mais je subodore que c'est une impasse (enfin : sait-on jamais ?).

[J'en profite pour te signaler que si tu sélectionnes un des 3 booters de macOS > puis presses la touche F2 du clavier --> le gestionnaire «rEFInd» te donne le choix de tous les modes possibles de boot du volume Macintosh HD terminal : verbose > single user > safe mode etc. Le "timer" de «rEFInd» - le décompteur de délai avant boot automatique sur le volume que la mémoire de «rEFInd» pré-sélectionne - est réglé par défaut sur un temps court --> il est possible de rallonger ce délai en éditant un fichier de config présent dans le dossier refind du volume EFI de résidence du refind_x64.efi.]
 
Dernière édition par un modérateur:
bonjour,

conversation bigrement délectable, merci à vous deux!

je présume que Sieur macomaniac.pngmacomaniacmacomaniac.png :coucou: étant enfant devait être un fin limier lorsqu'il partait à la chasse au trésor!

cette informatique grand public (à la sauce millefeuilles) va continuer encore & encore à nous étonner et nous séduire.
 
un fin limier lorsqu'il partait à la chasse au trésor!

Tout provient d'une lecture enfantine des «Cigares du Pharaon». En fin de volume, Tintin hébergé dans le palais du maharadjah suit de nuit le fakir au regard qui hypnotise. Ce dernier s'évanouit brusquement à peine passé l'angle du bâtiment, et il n'y a là qu'un arbre solitaire qui puisse lui servir de cachette. Ce qui plonge Tintin dans le dilemme crucial qu'il formule à voix haute : « Serait-il dans l'arbre, ou bien dans l'arbre ? ». Il m'a fallu du temps pour trouver un sens à cette interrogation délirante.
 
Tu as donc 3 façons de booter macOS et 2 façons de booter Windows via «rEFInd» + 3 façons de booter macOS et 1 façon de booter Windows via le boot_manager (touche "alt") --> 6 façons de booter macOS et 3 façons de booter Windows en tout : c'est Byzance !-
361608_original.png
 
Dernière édition par un modérateur:
Mille mercis à toi macomaniac pour cette pluie de boots!
361608_original.png


Et est-ce que mon "iMac de 2012" (fin 2012 tout de même) tout "juste à la limite du compatible avec le boot de W-10" sera-t-il en mesure de fonctionner avec le HDD du fusion drive formaté en une seule partition de 3 To plutôt que 2 partitions de 2.2 To et 800 Go comme aujourd'hui? Ceci afin de pouvoir y installer par la suite Windows 10 non plus en mode Legacy mais UEFI?
 
Je conjecture que oui - sans appui de l'expérience.

Quand tu as installé W-10 --> est-ce que tu as utilisé un ISO directement ? - ce n'était pas un mise à niveau d'un W-7 antérieur ?
 
Oui j'ai utilisé un ISO directement. Je ne sais plus à partir de quelle version de MacOS / Boot Camp par contre...
En tout cas, un grand merci à toi macomaniac pour le temps et l'énergie que tu as consacrés à mon problème. J'ai enfin retrouvé mon précieux et ça fait plaisir! ;-)