Menu rEFInd nie wyświetla się na podwójnym komputerze Mac / Ubuntu

10

Mam trochę problemu z rEFInd i nie mogłem znaleźć czegoś konkretnego na ten temat.

Z powodzeniem zainstalowałem Ubuntu 14.04 dla podwójnego rozruchu z OS X Yosemite na moim MacBooku Pro 3.1 za pomocą rEFInd, ale teraz po uruchomieniu w Ubuntu menu rEFInd nie wyświetla się po ponownym uruchomieniu. Po prostu idzie prosto do gruba. Po ponownym uruchomieniu systemu OS X (przy użyciu klawisza opcji przy uruchamianiu) czasami pojawia się funkcja REFInd, a czasem nie, nie można ustalić, w jaki sposób jest uruchamiana.

Czy istnieje sposób, aby upewnić się, że najpierw pojawi się rEFInd, bez względu na to, który system operacyjny uruchomiłem wcześniej?


Edytować

Korzystanie efibootmgr -vdaje mi:

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)

Jeśli ustawię NextBoot z -nopcją -80 na 0080, po restarcie pojawi się rEFInd. FFFF przenosi mnie bezpośrednio do OSX. 0081 wydaje się zawodzić.

Dzięki za pomoc!

paulkernstock
źródło
Oto oficjalny artykuł rEFind: „Odzyskiwanie po zamachu stanu przy użyciu Linuksa” lub „Korzystanie z efibootmgr w celu dostosowania priorytetu rozruchu” pomogłoby: rodsbooks.com/refind/bootcoup.html
kenju

Odpowiedzi:

11

Systemy operacyjne czasami resetują domyślny program rozruchowy, szczególnie jeśli aktualizują swoje standardowe programy ładujące. Naprawdę nie ma sposobu, aby temu zapobiec, więc musisz po prostu wiedzieć, jak rozwiązać problem, gdy wystąpi. W Linuksie odbywa się to za pomocą efibootmgrprogramu. W OS X odbywa się to za pośrednictwem bless. Zobacz tutaj, aby uzyskać więcej informacji na temat efibootmgr.

Jeśli to żonglerka ma miejsce przy każdym ponownym uruchomieniu, coś jest naprawdę nie tak. Jeśli Ubuntu resetuje GRUB jako domyślny przy każdym ponownym uruchomieniu, to osobiście usunę go - ale nie jestem fanem GRUB-a (wystarczy, że rozwidliłem REFIt, aby zrobić REFInd zamiast zajmować się GRUB-em). Przypuszczam, że można również umieścić wywołanie efibootmgrw skrypcie zamykania, ale ryzykuje coraz odłączony od rzeczywistości i powodujących problemy, więc będę chciał to zrobić.


EDYTOWAĆ:

Tak, zmiana BootOrderzmiennej (za pomocą -oopcji efibootmgr) zgodnie z sugestią jest odpowiednia. Możesz usunąć wpis OpenSUSE za pomocą:

sudo efibootmgr -b 0 -B

Mogą być zainstalowane pliki OpenSUSE, które można usunąć za pomocą rm- prawdopodobnie sudo rm -r /boot/efi/EFI/opensusez Ubuntu. (Te pliki nie powinny same w sobie wyrządzać szkody, ale mogą być mylące lub przypadkowo ponownie aktywowane w przyszłości.) Możesz usunąć Ubuntu GRUB w podobny sposób, chociaż może zostać ponownie zainstalowany, jeśli / kiedy Ubuntu aktualizuje go w przyszłości. Sensowne może być także utrzymywanie go jako zapasowej metody uruchamiania.

Jeśli pozostawisz GRUB Ubuntu zainstalowany, ale nie chcesz go widzieć w menu rEFInd, możesz użyć dont_scan_dirslub dont_scan_filesw refind.conf(prawdopodobnie /boot/efi/EFI/refind/refind.confz Ubuntu), aby ukryć wpis GRUB.

Rod Smith
źródło
Zobacz moją edycję powyżej. Zakładam, że następnym krokiem byłoby usunięcie wpisu opensuse (usunąłem tę dystrybucję jakiś czas temu) i ustawienie na przykład BootOrder na „0080 0001, FFFF”. Czy to jest poprawne? Ponadto nie miałbym nic przeciwko, aby całkowicie usunąć GRUB2, ale jak mogę to zrobić i uzyskać rEFInd, aby bezpośrednio uruchamiał się do Ubuntu? Czy będę musiał zainstalować EFI Stub Loader, jak wskazano na twojej stronie internetowej? Dzięki jeszcze raz!
paulkernstock
Zobacz moją edycję powyżej.
Rod Smith
To zdecydowanie rozwiązało moje pytanie. Ale zanim usunę GRUB2, chciałbym, aby rEFI dostał się do Ubuntu, ale tak nie jest. W menu rEFInd widzę dwa wpisy Ubuntu, jeden z napisem „grub_x64” i drugi, który próbuje uruchomić się bezpośrednio w Ubuntu za pomocą jądra vmlinuz-3.13.0-67-generic, który, gdy jest zaznaczony, zawiesi się w wierszu polecenia rEFInd-booting . Wciśnięcie F2 w menu pozwoli mi wybrać moją aktualną wersję (3.19.0-32-ogólna), ale z tym samym rezultatem. Po ponownym wciśnięciu F2 opcje są pokazane w /boot/refind_linux.conf, ro quiet splash nomodeset vt.handoff=7które są takie same jak w GRUB- ie .
paulkernstock
Czy istnieje root={something}specyfikacja refind_linux.conf? Jeśli nie, należy go dodać. Powinieneś być w stanie to uruchomić, uruchamiając mkrlconfskrypt dostarczany z rEFInd, ale prawdopodobnie będziesz musiał dodać --forceopcję, jak w sudo mkrlconf --force(ale może z pełną ścieżką do mkrlconf). Jeśli nadal pomija się tę root=opcję, pokaż mi, co się dzieje podczas pisania cat /proc/cmdline.
Rod Smith
To refind-linux.conf, co zrobiłem za pomocą twojego mkrlconfskryptu, ma trzy wpisy ze root=specyfikacją -specyfikacja (patrz tutaj ). W GRUB2 musiałem dodać opcję nomodeseturuchomienia mojej nVidii-GPU. cat /proc/comdlinedaje mi: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Również pomimo tego, że proces rozruchu wisi wizualnie na ekranie startowym rEFInd, system wydaje się uruchamiać, na przykład mój demon kontrolujący wentylatory jest uruchamiany, a fani zwalniają.
paulkernstock
8

Zdarzyło mi się to i naprawiłem to w Ubuntu w następujący sposób (jest to specyficzne dla twojego przypadku, ponieważ twój rozruch Ubuntu Boot0001*):

sudo efibootmgr -o 80,1

Jeśli wpiszesz ponownie sudo efibootmgr, kolejność uruchamiania powinna być teraz BootOrder: 0080,0001. Gwarantuje to, że Mac jest uruchamiany jako pierwszy, a ponieważ rEFInd został zainstalowany na Macu, to powinien pojawić się jako pierwszy.

iDuran
źródło