Le menu rEFInd ne s'affiche pas sur une double machine Mac / Ubuntu


10

J'ai un petit problème avec rEFInd et je n'ai rien trouvé de spécifique à ce sujet.

J'ai réussi à installer Ubuntu 14.04 pour un double démarrage avec OS X Yosemite sur mon MacBook Pro 3.1 à l'aide de rEFInd, mais maintenant, après le démarrage dans Ubuntu, le menu rEFInd ne s'affiche pas après un redémarrage. Il va juste directement dans grub. Après avoir redémarré sous OS X (en utilisant la touche option au démarrage), parfois rEFInd apparaît, parfois non, ne pouvait pas comprendre comment il était déclenché.

Existe-t-il un moyen de s'assurer que rEFInd arrive en premier, quel que soit le système d'exploitation que j'ai démarré précédemment?


Éditer

L'utilisation efibootmgr -vme donne:

BootCurrent: 0001
Timeout: 5 seconds
BootOrder: 0001,0080,0000
Boot0000* opensuse-secureboot   HD(4,1962b000,4e800,11f33185-0ff8-493d-86bd-b9fee568adb8)File(\EFI\opensuse\shim.efi)
Boot0001* ubuntu    HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\ubuntu\shimx64.efi)
Boot0080* Mac OS X  HD(1,28,64000,7e798e0a-82c3-4719-95ed-d79675efd190)File(\EFI\refind\refind_x64.efi)
Boot0081* Mac OS X ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,1d02ba00,0b1ce04a-50b7-40b5-94f0-1a255d748d15)
Boot0082* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)
BootFFFF* ACPI(a0341d0,0)PCI(1f,2)03120a00000000000000HD(2,64028,19490d60,20cc89c9-1320-4d70-b8bb-fffdf9900374)File(\System\Library\CoreServices\boot.efi)

Si je règle le NextBoot avec l' -noption-0080, après le redémarrage, rEFInd apparaît. FFFF m'amène directement dans OSX. 0081 semble échouer.

Merci pour l'aide!


Voici l'article officiel de rEFind: "Récupération d'un coup en utilisant Linux" ou "Utilisation d'efibootmgr pour ajuster votre priorité de démarrage" aiderait: rodsbooks.com/refind/bootcoup.html
kenju

Réponses:


11

Les systèmes d'exploitation réinitialisent parfois le programme de démarrage par défaut, en particulier s'ils mettent à niveau leurs chargeurs de démarrage standard. Il n'y a vraiment aucun moyen d'empêcher cela de se produire, vous devez donc simplement savoir comment corriger le problème lorsqu'il se produit. Sous Linux, cela se fait en utilisant le efibootmgrprogramme. Sous OS X, cela se fait via bless. Voir ici pour en savoir plus efibootmgr.

Si ce jonglage se produit à chaque redémarrage, alors quelque chose ne va vraiment pas. Si Ubuntu réinitialise GRUB par défaut à chaque redémarrage, alors personnellement, je le supprimerais - mais je ne suis pas un fan de GRUB (assez pour que je bifurque rEFIt pour faire rEFInd plutôt que de traiter avec GRUB). Je suppose que vous pouvez aussi mettre un appel à efibootmgrdans un script d'arrêt, mais qui court le risque d'être déconnecté de la réalité et de causer des problèmes, donc je serais réticent à le faire.


ÉDITER:

Oui, changer la BootOrdervariable (via l' -ooption efibootmgr) comme vous le suggérez est approprié. Vous pouvez supprimer l'entrée OpenSUSE avec:

sudo efibootmgr -b 0 -B

Il peut y avoir des fichiers OpenSUSE installés que vous pouvez supprimer à l'aide rm- probablement sudo rm -r /boot/efi/EFI/opensused'Ubuntu. (Ces fichiers ne devraient pas faire de mal en soi, mais ils pourraient prêter à confusion ou être réactivés accidentellement à l'avenir.) Vous pouvez supprimer Ubuntu GRUB de la même manière, bien qu'il puisse être réinstallé si / quand Ubuntu le met à jour à l'avenir. En outre, le conserver comme méthode de démarrage de sauvegarde peut avoir un sens.

Si vous laissez GRUB d'Ubuntu installé mais que vous ne voulez pas le voir dans le menu de rEFInd, vous pouvez utiliser dont_scan_dirsou dont_scan_filesdans refind.conf(probablement /boot/efi/EFI/refind/refind.confdepuis Ubuntu) pour masquer l'entrée GRUB.


Veuillez voir ma modification ci-dessus. Donc, la prochaine étape, je suppose, serait de supprimer l'entrée opensuse (j'ai supprimé cette distribution il y a quelque temps) et de définir le BootOrder sur "0080,0001, FFFF" par exemple. Est-ce exact? De plus, cela ne me dérangerait pas de supprimer complètement GRUB2, mais comment puis-je le faire et obtenir que rEFInd démarre directement dans Ubuntu? Dois-je installer l'EFI Stub Loader comme indiqué sur votre site Web? Merci encore!
paulkernstock

Veuillez voir ma modification ci-dessus.
Rod Smith

Maintenant, cela a définitivement résolu ma question. Mais avant de supprimer GRUB2, j'aimerais que rEFInd s'introduise dans Ubuntu, mais ce n'est pas le cas. Dans le menu rEFInd, je vois deux entrées Ubuntu, une qui dit "grub_x64" et une qui essaie de démarrer directement dans Ubuntu en utilisant le noyau vmlinuz-3.13.0-67-generic qui, lorsqu'elle est sélectionnée, se bloque dans rEFInd-booting-prompt . Frapper F2 dans le menu me permettra de choisir ma version actuelle (3.19.0-32-générique), mais avec le même résultat. Lorsque vous appuyez à nouveau sur F2, les options s'affichent comme dans /boot/refind_linux.conf ro quiet splash nomodeset vt.handoff=7qui sont les mêmes que dans GRUB.
paulkernstock

Existe-t-il une root={something}spécification refind_linux.conf? Sinon, il doit être ajouté. Vous devriez être en mesure de faire fonctionner cela en exécutant le mkrlconfscript fourni avec rEFInd, mais vous devrez probablement ajouter l' --forceoption, comme dans sudo mkrlconf --force(mais peut-être avec le chemin complet vers mkrlconf). Si cela omet toujours l' root=option, veuillez me montrer ce qui se passe lorsque vous tapez cat /proc/cmdline.
Rod Smith

Le refind-linux.confque j'ai fait en utilisant votre mkrlconf-script a trois entrées avec une root=-spécification (voir ici ). Dans GRUB2, j'ai dû ajouter l'option nomodesetpour faire fonctionner mon nVidia-GPU. cat /proc/comdlineme donne: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Même si le processus de démarrage se bloque visuellement dans l'écran de démarrage rEFInd, le système semble démarrer, par exemple mon démon de contrôle des ventilateurs est en cours de démarrage et les ventilateurs ralentissent.
paulkernstock

8

Cela m'est arrivé et je l'ai corrigé avec ce qui suit dans Ubuntu (cela est spécifique à votre cas comme votre démarrage Ubuntu Boot0001*):

sudo efibootmgr -o 80,1

Si vous tapez à nouveau sudo efibootmgr, votre ordre de démarrage devrait être maintenant BootOrder: 0080,0001. Cela garantit que Mac est démarré en premier, et puisque rEFInd a été installé sur Mac, il devrait apparaître en premier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.