rEFInd-Menü wird auf einem Dual-Mac / Ubuntu-Computer nicht angezeigt

10

Ich habe ein kleines Problem mit rEFInd und konnte nichts Bestimmtes finden.

Ich habe Ubuntu 14.04 für Dual Boot mit OS X Yosemite erfolgreich auf meinem MacBook Pro 3.1 mit rEFInd installiert, aber jetzt, nachdem ich Ubuntu gestartet habe, wird das Menü rEFInd nach einem Neustart nicht angezeigt. Es geht einfach direkt ins Maden. Nach dem erneuten Booten in OS X (mit der Optionstaste beim Start) wird manchmal rEFInd angezeigt, manchmal nicht. Es konnte nicht herausgefunden werden, wie es ausgelöst wird.

Gibt es eine Möglichkeit, um sicherzustellen, dass rEFInd zuerst angezeigt wird, unabhängig davon, welches Betriebssystem ich zuvor gestartet habe?


Bearbeiten

Verwenden efibootmgr -vgibt mir:

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)

Wenn ich den NextBoot mit der -nOption -00 auf 0080 setze, wird nach dem Neustart rEFInd angezeigt. FFFF bringt mich direkt in OSX. 0081 scheint zu scheitern.

Danke für die Hilfe!

paulkernstock
quelle
Hier scheint der offizielle Artikel von rEFind zu sein: "Wiederherstellung von einem Coup unter Linux" oder "Verwenden von efibootmgr zum Anpassen Ihrer Boot-Priorität" würde helfen: rodsbooks.com/refind/bootcoup.html
kenju

Antworten:

11

Betriebssysteme setzen manchmal das Standard-Bootprogramm zurück, insbesondere wenn sie ihre Standard-Bootloader aktualisieren. Es gibt wirklich keine Möglichkeit, dies zu verhindern. Sie müssen also einfach wissen, wie Sie das Problem beheben können, wenn es auftritt. Unter Linux erfolgt dies mithilfe des efibootmgrProgramms. In OS X erfolgt dies über bless. Sehen Sie hier für weitere Informationen efibootmgr.

Wenn dieses Jonglieren bei jedem Neustart auftritt, stimmt etwas nicht. Wenn Ubuntu GRUB bei jedem Neustart als Standard zurücksetzt, würde ich es persönlich entfernen - aber ich bin kein Fan von GRUB (genug, so dass ich rEFIt gabelte, um rEFInd zu machen, anstatt mich mit GRUB zu befassen). Ich nehme an, Sie könnten auch efibootmgrin einem Shutdown-Skript einen Anruf tätigen, aber das birgt die Gefahr , dass Sie von der Realität getrennt werden und Probleme verursachen. Daher würde ich dies nur ungern tun.


BEARBEITEN:

Ja, es ist angemessen , die BootOrderVariable (über die -oOption auf efibootmgr) zu ändern . Sie können den OpenSUSE-Eintrag löschen mit:

sudo efibootmgr -b 0 -B

Möglicherweise sind OpenSUSE-Dateien installiert, die Sie löschen können rm- wahrscheinlich sudo rm -r /boot/efi/EFI/opensusevon Ubuntu. (Diese Dateien sollten an sich keinen Schaden anrichten, können jedoch verwirrend sein oder in Zukunft versehentlich erneut aktiviert werden.) Sie können Ubuntu GRUB auf ähnliche Weise entfernen, obwohl es möglicherweise neu installiert wird, wenn Ubuntu verwendet wird aktualisiert es in Zukunft. Es kann auch sinnvoll sein, es als Backup-Methode zum Booten beizubehalten.

Wenn Sie Ubuntus GRUB installiert lassen, es aber nicht im Menü von rEFInd sehen möchten, können Sie den GRUB-Eintrag mit dont_scan_dirsoder dont_scan_filesin refind.conf(wahrscheinlich /boot/efi/EFI/refind/refind.confvon Ubuntu) ausblenden.

Rod Smith
quelle
Bitte beachten Sie meine Bearbeitung oben. Ich gehe also davon aus, dass der nächste Schritt darin besteht, den opensuse-Eintrag zu löschen (ich habe diese Distribution vor einiger Zeit entfernt) und den BootOrder beispielsweise auf "0080,0001, FFFF" zu setzen. Ist das korrekt? Außerdem würde es mir nichts ausmachen, GRUB2 vollständig zu entfernen, aber wie kann ich dies tun und rEFInd dazu bringen, Ubuntu direkt zu starten? Muss ich den EFI Stub Loader wie auf Ihrer Website beschrieben installieren? Danke noch einmal!
Paulkernstock
Bitte beachten Sie meine Bearbeitung oben.
Rod Smith
Das hat meine Frage definitiv gelöst. Aber bevor ich GRUB2 entferne, möchte ich, dass rEFInd seinen Weg in Ubuntu findet, aber das tut es nicht. Im Menü rEFInd werden zwei Ubuntu-Einträge angezeigt, einer mit der Aufschrift "grub_x64" und einer mit dem direkten Start von Ubuntu mithilfe des Kernels vmlinuz-3.13.0-67-generic, der bei Auswahl in der Eingabeaufforderung rEFInd-booting hängt . Wenn ich im Menü F2 drücke, kann ich meine aktuelle Version (3.19.0-32-generic) auswählen, aber mit dem gleichen Ergebnis. Wenn Sie erneut F2 drücken ro quiet splash nomodeset vt.handoff=7, werden die Optionen wie in /boot/refind_linux.conf angezeigt, die mit denen in GRUB identisch sind.
Paulkernstock
Gibt es eine root={something}Spezifikation in refind_linux.conf? Wenn nicht, muss es hinzugefügt werden. Sie sollten in der Lage sein, dies zum Laufen zu bringen, indem Sie das mkrlconfmit rEFInd gelieferte Skript ausführen, aber Sie müssen wahrscheinlich die --forceOption wie in hinzufügen sudo mkrlconf --force(aber möglicherweise mit dem vollständigen Pfad zu mkrlconf). Wenn das die root=Option immer noch auslässt , zeigen Sie mir bitte, was passiert, wenn Sie tippen cat /proc/cmdline.
Rod Smith
Das refind-linux.conf, was ich mit Ihrem mkrlconf-script gemacht habe, hat drei Einträge mit einer root=-spezifikation (siehe hier ). In GRUB2 musste ich die Option hinzufügen nomodeset, um meine nVidia-GPU zum Laufen zu bringen. cat /proc/comdlinegibt mir : BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Auch obwohl der Startvorgang visuell im rEFInd-Boot-Bildschirm hängt, scheint das System zu starten, zum Beispiel wird mein Fan-Control-Daemon gestartet und die Lüfter werden langsam.
Paulkernstock
8

Dies ist mir passiert und ich habe es in Ubuntu wie folgt behoben (dies ist spezifisch für Ihren Fall, wie es Ihr Ubuntu-Boot ist Boot0001*):

sudo efibootmgr -o 80,1

Wenn Sie erneut sudo efibootmgreingeben, sollte Ihre Startreihenfolge jetzt sein BootOrder: 0080,0001. Dies garantiert, dass der Mac zuerst gestartet wird. Da rEFInd auf dem Mac installiert wurde, sollte es zuerst gestartet werden.

iDuran
quelle