Arthur
Je te propose l'éclairage suivant -->
Lorsque > dans le panneau
Disque de démarrage des
Préférences Système > on sélectionne (supposons) le volume affiché
Macintosh HD > cette action graphique déclenche une opération logique en coulisses qui est la suivante : une entrée de la mémoire
NVRAM de la Carte-Mère se trouve éditée - entrée intitulée :
efi-boot-device = appareil de démarrage automatique de l'
EFI.
L'
EFI est le
Firmware du Mac : micro-logiciel recelé dans une puce de la Carte-Mère et activé par une pression sur le bouton
Power. Ce logiciel
EFI visite toujours la
NVRAM au démarrage > pour y lire les instructions qui y sont inscrites (par exemple les
flags du
SIP) > les charger > et opérer en conséquence. Lorsque l'entrée :
efi-boot-device se trouve définie > dans mon exemple par une adresse au volume
Macintosh HD => alors l'
EFI va automatiquement à ce volume du disque > pour exécuter le démarreur (
boot_loader) de l'OS en question. La particularité de l'entrée
efi-boot-device est qu'elle est
permanente > et donc subsiste à autant de re-démarrages qu'on voudra > aussi longtemps qu'une nouvelle sélection de volume de démarrage n'a pas été opérée dans le panneau
Disque de démarrage.
Supposons à présent qu'un utilisateur ait une partition
BOOTCAMP dans laquelle
Windows est installé en parallèle de la partition de l'OS
Macintosh HD. Le souhait de cet utilisateur est de pouvoir s'éviter de re-démarrer avec la touche "
alt" pour avoir le choix du volume
BOOTCAMP de
Windows > mais de pouvoir re-démarrer
directement sur
Windows à partir de sa session ouverte dans
macOS > sans pour autant que l'entrée
efi-boot-device de la
NVRAM n'ait été modifiée > mais continue d'instruire un démarrage automatique sur le volume
Macintosh HD. Ce souhait consiste donc à pouvoir opérer un "
bypass" purement ponctuel de l'instruction de la
NVRAM qui ne modifie pas la préférence régulière de boot sur
Macintosh HD. Ainsi > en re-démarrant normalement à partir de la session de
Windows > ce sera
macOS qui sera automatiquement démarré.
Pour satisfaire ce souhait > les ingénieurs de la ont défini ce que j'appellerais une "
préférence de boot volatile" > qui consiste en la possibilité d'inscrire en
NVRAM > en parallèle de l'entrée
efi-boot-device intouchée > une entrée intitulée :
efi-next-only (
démarrage de l'EFI exclusivement pour cette fois-ci). Cette entrée possède une double particularité -->
- elle possède une "prééminence" (over-riding) sur l'entrée efi-boot-device > de telle sorte que l'EFI > s'il existe une entrée efi-next-only en parallèle de l'entrée efi-boot-device > va uniquement suivre le chemin de l'efi-next-only en échappant le chemin de l'efi-boot-device ;
- elle possède une existence "volatile" > en ce sens qu'après avoir chargé l'instruction du chemin mentionné à l'efi-next-only > l'EFI va effacer cette entrée de la NVRAM > de telle sorte que seule demeurera l'instruction de boot automatique permanente = efi-boot-device qui pointe sur le volume Macintosh HD de macOS.
En résumé : pouvoir rebooter directement sur
Windows sans que cela n'affecte le principe de démarrage automatique sur
macOS > revient littéralement à pouvoir instruire en
NVRAM une entrée
efi-next-only pointant sur le volume
Windows > instruction qui sera effacée après chargement par l'
EFI > de manière à ce que subsiste seulement l'instruction régulière
efi-boot-device pointant sur
Macintosh HD => ainsi le re-démarrage automatique à partir de
Windows se fera uniquement sur
macOS.
Comme tu peux le voir si tu ne laisses pas la multitude des « arbres » (l'abondance de mes mots) te cacher la « Forêt » (l'idée directrice) --> le procédé est enfantin (et il en va ainsi de toute l'informatique de A à Z qui ne s'écarte jamais sur le fond des trucs dignes des cours de récréation de l'école primaire).
--------------------
Oui mais (demandes-tu) comment fait-on pour activer une telle instruction
efi-next-only en
NVRAM ? - c'est là que les ingénieurs de la se sont montrés déloyaux > en ce sens que cette instruction ne peut pas être opérée en mode
graphique (par exemple par une sous-option du panneau
Disque de démarrage des
Préférences Système) > mais uniquement par une commande spécialisée dans le «
Terminal» convoquant l'utilitaire
bless ("bénir") avec des options particulières. Je pense que le logiciel «
BOOTCHAMP» s'est voulu un correctif de cette lacune graphique dans
macOS > en permettant à l'utilisateur d'inscrire en
NVRAM une instruction de type
efi-next-only sur
Windows sans avoir à passer par le «
Terminal».
Oui mais (objectes-tu encore) - le problème c'est que «
BOOTCHAMP» ne marche plus dans «
Sierra»... Eh oui ! Car ? - car même la commande classique appelant l'utilitaire
bless avec les options permettant l'inscription d'une entrée
efi-next-only en
NVRAM ne fonctionne plus dans «
Sierra» (le logiciel «
BOOTCHAMP» se bornant à déclencher en coulisses cette commande du «
Terminal»).
Pourquoi ? - eh ! c'est à cause du
SIP (
System Integrity Protection) mis en place au démarrage à partir d'«
El Capitan». Dans la présentation du
SIP > ce qui a été mis en lumière > c'est le fait que ce protocole de sécurisation verrouille l'essentiel du
Système de l'OS une fois le démarrage effectué. Mais ce qui n'a pas été mis en relief suffisamment > c'est que ce protocole a un effet vicieux sur la
NVRAM --> en ce sens que des entrées déterminées de la
NVRAM se trouvent elles aussi
verrouillées contre toute action de la part de l'utilisateur (même en droits
root). Les entrées concernées ici sont aussi bien l'
efi-boot-device que l'
efi-next-only. Il est impossible, le
SIP activé, d'écrire ces entrées à partir du «
Terminal» de l'OS (et donc aussi bien il est impossible au logiciel «
BOOTCHAMP» d'écrire en
NVRAM une entrée
efi-next-only).
Oui mais pourquoi est-il possible d'éditer l'entrée
efi-boot-device depuis le panneau
Disque de démarrage des
Préférences Système ? - hé ! c'est là le point retors du
SIP --> il existe des
processus qui gardent le pouvoir d'«
outrepasser » (
override) le
SIP > dans la mesure où il correspondent à des
exécutables dotés de "
privilèges" (des attributs fixés qui confèrent à leurs processus exécutifs un "
passe-droit" à l'égard du
SIP. Il en va ainsi pour l'exécutable récent
trimforce qui permet d'activer le
TRIM sur des SSD de tierce-partie en copiant dans le répertoire des
Extensions de la
Bibliothèque du Système une extension tenue en réserve > alors même que cette
Bibliothèque est en principe
verrouillée par le
SIP contre toute modification. Il en va ainsi de logiciels de tierce-partie dont les développeurs ont obtenu d'Apple un tel passe-droit si disputé. Il en va ainsi du logiciel des
Préférences Système dans son action sur la
NVRAM.
--------------------
Si tu m'as suivi dans ce qui n'a que l'apparence d'une complexité verbale > je pense que tu as déjà mentalement tiré la conséquence qui s'impose => si tu veux pouvoir bénéficier comme dans «
Le Bon Vieux Temps » des bénéfices de l'instruction
efi-next-only en
NVRAM > tu dois
désactiver le
SIP en permanence sur ton Mac. Le fait que le
SIP fasse obstruction à la liberté traditionnelle de l'utilisateur d'instruire personnellement les 2 entrées de la
NVRAM :
efi-boot-device &
efi-next-only => cela me semble un argument suffisant pour discréditer entièrement ce protocole.
Je t'engage donc à
désactiver le
SIP par le seul procédé existant --> tu re-démarres les 2 touches
⌘R tenues pressées ensemble du Gong ! jusqu'à la (ce qui est le démarrage sur le
Recovery OS). Une fois affiché le Bureau
Recovery > avec la fenêtre des 4
Utilitaires macOS > va à la barre de menus supérieure de l'écran > menu
Utilitaires > sous-menu «
Terminal». Dans la fenêtre ouverte > saisis la commande :
et ↩︎ (presse la touche "Entrée" du clavier pour activer la commande)
- cette commande appelle l'utilitaire csrutil (configuration_security_rootless_utility : utilitaire "sans privilèges root" de sécurisation de la configuration du Système) > avec le verbe disable (désactiver)
- en conséquence > les 6 flags du SIP en NVRAM vont se trouver neutralisés par des valeurs 0
- par suite > les entrées efi-boot-device & efi-next-only se trouvent libérées en écriture
=> tu n'as plus qu'à
re-démarrer et à essayer d'utiliser «
BOOTCAMP» à partir de ta session dans
macOS. Si le logiciel ne marche pas > j'ai personnellement réussi à créer une petite application qui active la commande
bless ad hoc permettant l'instruction en
NVRAM d'une entrée
efi-next-only qui détermine le re-démarrage direct sur
Windows > avec une valeur volatile (effacement par l'
EFI après chargement) > ce qui fait que le Mac re-démarre ensuite automatiquement sur
macOS. Testé avec succès à partir d'une session de «
Sierra» > avec re-démarrage sur «
Windows-7» installé sur une autre partition (j'ai un Mac ancien de 2011).