Forcer le gestionnaire de démarrage

Asaiel

Membre confirmé
22 Septembre 2012
16
0
Bonjour à tous,

Je cherche un moyen de forcer l'affichage du gestionnaire de démarrage à chaque boot sur mon mac-mini, sans utiliser la touche Alt.

Malgré mes recherches, je n'ai pas trouvé. Avez-vous une idée?


Merci d'avance!
 
Salut Asaiel.

Je te conseille de télécharger ☞rEFInd☜ de Roderick Smith (clique sur la pastille verte : Download). Tu obtiens un dossier dézippé intitulé refind-bin-0.9.0 : ce dossier tel quel est parfaitement inactif, et sert seulement de conteneur des ressources d'installation de «rEFInd» (les binaires du logiciel) --> je te conseille de le déplacer à un endroit de ton OS où tu pourras le retrouver sans problème en cas de besoin (il arrive, en effet, que l'installation de «rEFInd» "saute" à la suite de manœuvres intempestives et qu'il faille réitérer cette installation --> ce qui implique toujours de revenir à ce dossier "source" d'installation et de pouvoir le retrouver sans problème). Pour ma part, sur les conseils de Roderick Smith, j'ai créé à la racine de mon OS (dans l'espace où sont localisés les répertoires-Système : Applications, Bibliothèque, Système, Utilisateurs etc.) un répertoire intitulé : EFI (en m'authentifiant avec mon mot-de-passe admin pour ce faire). C'est dans ce répertoire EFI que je localise toujours les dossiers des mises-à-jour successives de «rEFInd» (j'en ai une petite collection : refind-bin-0.7.4, refind-bin-0.8.4, refind-bin-0.8.7, refind-bin-0.9.0) --> chaque fois qu'après des expérimentations avec mon Mac j'ai fait sauter l'installation de «rEFInd», le répertoire de référence EFI à la racine de l'OS est ainsi toujours bien en évidence pour refaire l'installation. [NB. Il est toujours utile de visiter régulièrement le site de Roderick Smith : ☞Roderick W. Smith's Web Page☜ afin de vérifier s'il n'y a pas une mise-à-jour récente de «rEFInd» (sinon : il suffit de taper refind-bin dans Google pour opérer cette vérification).

------------------

Une fois que tu as réglé la question de la localisation du dossier de réserve des ressources de «rEFInd» dans ton OS, voici le procédé le plus commode pour installer les binaires --> tu vas à : Applications/Utilitaires et tu lances le «Terminal». Dans la fenêtre qui s'ouvre, tu vas passer une commande de la forme :

Bloc de code:
sudo /chemin_au_dossier/refind-bin-0.9.0/install.sh

et voici comment tu t'y prends en pratique pour l'écrire --> tu commences par taper dans la fenêtre tu «Terminal» uniquement le mot :

Bloc de code:
sudo
(par lequel tu réclames des droits root = Super-Utilisateur Système) et tu sautes un espace avec la barre d'espacement du clavier. Cela fait, en-dehors de la fenêtre du«Terminal», tu vas dans le Finder à l'emplacement de ton dossier refind-bin-0.9.0 des ressources d'install de «rEFInd», tu l'ouvres, tu repères le fichier : install.sh et tu en fais carrément un glisser-déposer dans le fenêtre du «Terminal» --> cette opération renseigne automatiquement le chemin au fichier et le nom du fichier (le fichier install.sh est le script exécutoire qui permet l'installation de «rEFInd»).

Il te suffit alors de presser la touche ↩︎ (= "Entrée") du clavier pour activer la commande --> une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe admin à l'aveugle - aucun caractère ne se montrant à la frappe - et derechef ↩︎ --> le script d'installation s'exécute et il ne te reste plus qu'à re-démarrer en mode simple (sans option, comme la touche "alt") --> tu accèdes automatiquement à un écran où se trouvent affichés tous les volumes actuellement démarrables de ton Mac (supportant : OSX, Linux, Windows, Recovery HD selon les cas) : il suffit de choisir le volume de boot. Par ailleurs, l'appui sur la touche F2 après affichage de cet écran permet l'affichage d'un écran secondaire présentant les options spéciales de boot : Single User, Safe Mode, Verbose etc.

--------------------​

Si je t'ai conseillé l'installation de «rEFInd», c'est qu'il s'agit d'un gestionnaire de boot qui remplit exactement les services que tu souhaites : disposer automatiquement à chaque démarrage d'un écran de choix de tous les disques démarrables disponibles sur le Mac (et secondairement de toutes les options de boot). Car, sinon, il n'est pas possible comme tu le demandais de "forcer l'affichage du gestionnaire de démarrage à chaque boot ... sans utiliser la touche Alt". Car il s'agit d'un « écran de choix du disque de démarrage » qui ne s'affiche qu'à condition de solliciter le gestionnaire de démarrage (DiskManager) natif (un programme auxiliaire de l'EFI = le Programme Interne résidant sur la Carte-Mère du Mac) - ce qu'on ne peut faire qu'en pressant la touche "alt" au départ - justement.

--------------------​

Remarque : le script install-sh d'installation de «rEFInd» commence par monter en volume la partition /dev/disk0s1 (graphiquemnt invisible) du disque du Mac qui est l'ESP : EFI System Partition = 1ère partition par défaut d'un disque supportant une table de partition GPT (GUID Partition Table).Ce volume contient nativement un répertoire intitulé EFI, dans lequel réside un dossier natif Apple. C'est à côté de ce dossier Apple que le script d'installation crée 2 dossiers connexes : refind et tools, qui contiennent les binaires du logiciel (fichiers exécutables). Le script d'installation, cela fait, adresse à la mémoire NVRAM de la Carte-Mère (mémoire statique recelant des instructions de boot que le Programme Interne = EFI du Mac charge au démarrage) un boot-args (argument de boot) commandant l'exécution directe par l'EFI du boot_loader : refind_x64.efi de l'ESP en lieu et place du boot_loader par défaut : boot.efi (localisé sur le volume d'OS X at: /System/Library/CoreServices). En conséquence de cet aiguillage changeant le boot_loader cible de l'EFI, c'est donc le fichier démarreur de «rEFInd» qui se trouve exécuté au démarrage, avec la prise d'effet : "affichage de l'écran de boot de refind".

C'est ce boot-args en NVRAM qui est susceptible de sauter suite à des manœuvres intempestives, auquel cas les binaires de «rEFInd» sont, certes, toujours en place sur le volume de l'ESP, mais rendus inopérants, puisque l'EFI, n'étant plus automatiquement dirigée sur le boot_loader du volume de l'ESP : /EFI/refind/refind_x64.efi, reprend le cours normal des choses, en allant exécuter le boot_loader par défaut du volume de l'OS : /System/Library/CoreServices/boot.efi. Refaire exécuter le script install.sh dans le «Terminal» restaure alors le boot-args en NVRAM commandant l'exécution directe par l'EFI du boot_loader spécifique de «rEFInd» sur l'ESP du disque.

--------------------​
 
Dernière édition par un modérateur:
Bonjour Macomaniac,

Et merci beaucoup pour ces infos et d'avoir pris le temps de les détailler. Je vais voir ce qu'il est possible de faire avec ta solution, et en parallèle, je teste également la solution "Boot runner" de chez TwoCanoes (J'ai deja acheté Winclone chez eux, dont je suis satisfait).

Je livrerai ici le résultat des mes différents tests.
 
Salut nosnip

Je suppose que tu veux installer le gestionnaire de démarrage «rEFInd» ?

Alors la procédure est celle-ci : il suffit de télécharger le dossier de la dernière MÀJ de «rEFInd» et de le déplacer dans une localisation où on pourra le retrouver aisément. À présent > dans ce dossier > ce n'est plus un script d'installation install.sh qui permet l'installation du logiciel > mais un exécutable binaire intitulé refind-install. Il suffit donc d'ouvrir une fenêtre du «Terminal» > de saisir :
Bloc de code:
sudo
de sauter un espace > et de faire un glisser-déposer direct de l'exécutable refind-install dans la fenêtre du «Terminal» > ce qui inscrit automatiquement le chemin au fichier (où qu'il soit) et son intitulé.

Presser la touche "Entrée" du clavier pour exécuter la commande > une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe de session admin à l'aveugle - aucun caractère ne s'affichant à la frappe - et valide de nouveau avec "Entrée".

----------

Ce procédé est néanmoins sujet à un caveat avec les derniers OS («El Capitan 10.11» > «Sierra 10.12» > et ce sera vrai avec «High Sierra 10.13»). Afin d'appréhender ledit caveat > il faut bien comprendre en quoi consiste (théoriquement) l'installation de «rEFInd» -->

  • le programme d'installation de «rEFInd» monte le volume EFI de la partition invisible disk0s1 du disque > et copie dans ce volume ses ressources logicielles - dont le boot_loader ou démarreur refind_x64.efi exécutable par l'EFI (Programme Interne du Mac).

  • puis le programme d'installation de «rEFInd» inscrit dans la mémoire statique NVRAM de la Carte-Mère > à l'entrée : efi-boot-device qui désigne l'adresse de boot automatique de l'EFI > l'adresse au boot_loader refind_x64.efi dans le volume EFI qui monte sur la partition disk0s1 du disque (dans le temps du boot ou séquence de démarrage > absolument tous les volumes sont montés sur toutes les partitions de disques sans exception et sont donc adressables s'il y a lieu par le Programme de démarrage = EFI).

  • or les récents OS (10.11 > 10.12 > 10.13) ont introduit le SIP (System_Integrity_Protection) qui est un protocole de verrouillage du Système qui se met en place au démarrage. Ce protocole ne se contente pas de verrouiller les répertoires-clés de l'OS une fois celui-ci initialisé > mais verrouille aussi les entrées critiques de la NVRAM, comme l'entrée efi-boot-device, contre toute modification par un tiers utilisant le «Terminal». Cela revient à dire que la 2è partie du programme d'installation de «rEFInd» : l'inscription en NVRAM, à l'entrée efi-boot-device, d'une adresse à son boot_loader refind_x64.efi du volume EFI (ce qui court-circuite l'adresse régulière au boot_loader de macOS : boot.efi localisé dans le volume Macintosh HD de la partition disk0s2) --> se trouve avortée par le verrouillage de l'entrée efi-boot-device.

  • il faut donc impérativement désactiver le SIP en préalable à toute installation ou ré-installation de «rEFInd» > afin que le programme d'installation de ce dernier puisse écrire l'adresse en NVRAM au boot_loader refind_x64.efi. Pour ce faire > démarrer par ⌘R en mode Recovery > menu Utilitaires > Terminal > passer la commande :
    Bloc de code:
    csrutil disable
    re-démarrer sur macOS > passer la commande d'installation de «rEFInd» qui cette fois-ci sera validée en ce qui concerne la NVRAM. Il est possible ensuite de rétablir le SIP si on le souhaite par la commande :
    Bloc de code:
    csrutil enable
    dans le «Terminal» de la Recovery - ce verrouillage ne modifiera absolument pas l'adresse efi-boot-device en NVRAM.

  • Une fois l'adresse à l'entrée efi-boot-device en NVRAM pointant au boot_loader refind_x64.efi dans le volume EFI > le mécanisme de boot est le suivant : l'EFI se trouve activée par la pression sur le bouton Power > procède à la vérification hardware (POST) > visite la NVRAM > lit l'adresse de boot automatique à l'entrée efi-boot-device > va au volume EFI > exécute le boot_loader refind_x64.efi de «rEFInd» et quitte après ce passage de main. L'écran de choix de boot de «rEFInd» s'affiche donc et c'est le boot_loader refind_x64.efi qui assume indépendamment la charge de la suite du démarrage.

  • Le mécanisme étant tel > il est constant aussi longtemps que rien n'a ré-écrit l'adresse de boot à l'entrée efi-boot-device. Or il faut bien savoir que si on sélectionne le volume Macintosh HD dans le panneau Disque de démarrage des Préférences Système > cette sélection équivaut à une ré-écriture de l'entrée efi-boot-device en NVRAM avec adresse au volume Macintosh HD > System > Library > CoreServices > boot.efi (le boot_loader de macOS). De même si on fait une ré-installation de macOS. La conséquence est que «rEFInd» n'est plus exécuté automatiquement par l'EFI au démarrage. Dans ces cas-là > il faut ensuite "ré-installer «rEFInd»" - ce qui revient à dire faire ré-écrire en NVRAM l'adresse de l'entrée efi-boot-device pour qu'elle re-pointe au boot_loader refind_x64.efi du volume EFI (les ressources exécutables de «rEFInd» n'ayant pas été modifiées dans ce volume et le programme d'installation de Roderick Smith sachant très bien échapper une recopie dans ce volume s'il aperçoit la présence de ses binaires).

[Personnellement > je me suis fait une petite application maison d'installation de «rEFInd» lançable d'un double-clic et s'exécutant en sudo > afin de restaurer l'adresse en NVRAM sur le boot_loader refind_x64.efi - ce après toute ré-installation majeure d'OS.]
 
Dernière édition par un modérateur:
Salut MacO :coucou:
Je m'insère subrepticement sur ce vieux fil :
[Personnellement > je me suis fait une petite application maison d'installation de «rEFInd» lançable d'un double-clic et s'exécutant en sudo > afin de restaurer l'adresse en NVRAM sur le boot_loader refind_x64.efi - ce après toute ré-installation majeure d'OS.]
Je n'avais guère l'utilité de ton stratagème, mais comme je viens de passer du côté du Capitaine, je me trouve confronté à ce :banghead: de SIP qui me casse les (pieds)

Partagerais-tu cette petite application ? :merci:
 
:coucou: Invité

Est-ce que tu disposes d'un dossier refind-bin-0.xx.x localisé à une adresse constante ?
 
Désolé pour le retard, je suis allé chercher ton autre appli dans ce fil :https://forums.macg.co/threads/recuperer-lancien-utilitaire-de-disque-dans-el-capitan.1278098/page-3 pour récupérer une version utilisable de l'utilitaire de disque :merci:

Donc, pour la question.
J'ai bien un dossier "refind" à la racine de "EFI", mais je ne trouve pas "refind-bin-0.xx.x" dedans

Edit,

si tu parles de mon installeur.
Il est logé dans un dossier dans /Archives/Utilitaires

Voici le message (du Terminal), si ça peu aider :
Bloc de code:
himSource is none
Installing rEFInd on OS X....
Warning: root device could not be found
Installing rEFInd to the partition mounted at /Volumes/ESP
Found rEFInd installation in /Volumes/ESP/EFI/refind; upgrading it.

**** ALERT: SIP ENABLED! ****

You are attempting to upgrade an existing installation, but it appears that
System Integrity Protection (SIP) is enabled. If rEFInd is working now, then
this is fine; you can upgrade your existing rEFInd. If rEFInd is not working,
though, re-installing from this boot will not help. To re-enable rEFInd, you
must re-install it from a Recovery system or from another OS. To enter the
Recovery system and re-install rEFInd:

  1. Reboot
  2. Hold down Command+R as the chime sounds
  3. When the OS has booted, select Utilities->Terminal
  4. Change to this directory with the 'cd' command; it will probably be under
     /Volumes/MiniFusion/Users/tous
  5. Re-run this script.

For more on this subject, see http://www.rodsbooks.com/refind/sip.html

Do you want to attempt installation (Y/N)? y
Copied rEFInd binary files

Notice: Backed up existing icons directory as icons-backup.
Existing refind.conf file found; copying sample file as refind.conf-sample
to avoid overwriting your customizations.

Could not set boot device property: 0xe00002bc

ALERT:
Installation has completed, but problems were detected. Review the output for
error messages and take corrective measures as necessary. You may need to
re-run this script or install manually before rEFInd will work.

Unmounting install dir
Volume EFI on disk0s1 unmounted
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.

[Opération terminée]

En relisant, je trouve bizarre que le SIP soit activé puisque je l'ai désactivé dès que je suis passé à Le Cap, je suppose que c'est un effet collatéral des MaJ ?

RE-EDIT

Après avoir désactivé le SIP, ça va tout seul
Bloc de code:
ShimSource is none
Installing rEFInd on OS X....
Warning: root device could not be found
Installing rEFInd to the partition mounted at /Volumes/ESP
Found rEFInd installation in /Volumes/ESP/EFI/refind; upgrading it.
Copied rEFInd binary files

Notice: Backed up existing icons directory as icons-backup.
Existing refind.conf file found; copying sample file as refind.conf-sample
to avoid overwriting your customizations.


Installation has completed successfully.

Unmounting install dir
Volume EFI on disk0s1 unmounted
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Opération terminée]

Mais si tu as un truc plus rapide :merci:
 
Dernière édition:
Le SIP verrouille la variable efi-boot-device en NVRAM contre toute manipulation par des programmes tiers, comme celui de «rEFInd». Donc l'installateur de «rEFInd», après avoir logé ses exécutables dans le volume EFI de la partition disk0s1 (volume monté et disponible dans le temps du boot) > ne peut pas inscrire en NVRAM une adresse de boot automatique pour l'EFI amenant l'exécution dans le volume EFI de son boot_loader refind_x64.efi.

À condition donc que le SIP soit désactivé en permanence > chaque fois qu'une MÀJ de l'OS a changé l'adresse de la variable efi-boot-device en NVRAM (ce qui fait que «rEFInd» se trouve "désactivé" au démarrage, son boot_loader n'étant plus exécuté par défaut par l'EFI) --> il faut donc repasser la commande dans le Terminal :
Bloc de code:
sudo [chemin]refind-install

  • qui ré-exécute en root l'installateur de «rEFInd». Le programme vérifie (en montant le volume EFI) si les exécutables sont en place ou ont a être copiés ou mis-à-jour > puis bénit l'en-tête du volume EFI pour qu'un chemin y soit inscrit à son boot_loader refind_x64.efi > enfin édite la variable efi_boot-device en NVRAM pour que le chemin de boot automatique pour l'EFI soit sur le volume EFI de la partition disk0s1 > et pas sur le volume Macintosh HD de la partition disk0s2 (format jhfs+) > ou sur le volume Recovery HD de la partition disk0s3 (format CoreStorage) > ou encore sur le volume Preboot disk1s2 du Container disk1 (format apfs).

Comme ressaisir à la main cette commande chaque fois est "gonflant" > je me suis fait une petite application avec l'«Éditeur de script» permettant, d'un double-clic, d'exécuter l'installateur refind-install comme dans la commande ci-dessus.

Si tu veux que je te donne la ligne à coller dans une fenêtre de l'«Éditeur de script» --> ouvre une fenêtre du «Terminal» et fais un glisser-déposer au pointeur de l'exécutable refind-install de là où il est localisé chez toi dans cette fenêtre > ce qui inscrira automatiquement l'adresse de l'installateur --> poste ici cette adresse > ainsi je pourrai te construire la ligne adaptée.
 
Oui, bah, j'imagine que le SIP est réactivé à chaque MaJ ?
C'est plutôt ça qui est chiant.
Pour l'instal de rEFInd j'ai un alias dans le Dock, donc pas trop la peine de passer par une appli :merci: