menu rEFInd tidak ditampilkan pada mesin Mac / Ubuntu ganda

10

Saya mengalami sedikit masalah dengan rEFInd dan tidak dapat menemukan sesuatu yang spesifik tentang itu.

Saya berhasil menginstal Ubuntu 14.04 untuk dual boot dengan OS X Yosemite pada MacBook Pro 3.1 saya menggunakan rEFInd tetapi sekarang setelah boot ke Ubuntu menu rEFInd tidak muncul setelah reboot. Itu langsung masuk ke grub. Setelah mem-boot lagi ke OS X (menggunakan tombol opsi pada startup) kadang-kadang rEFInd muncul, kadang tidak, tidak bisa mencari tahu bagaimana dipicu.

Apakah ada cara untuk memastikan rEFInd akan muncul lebih dulu, tidak peduli OS mana yang saya boot sebelumnya?


Edit

Menggunakan efibootmgr -vmemberi saya:

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)

Jika saya mengatur NextBoot dengan -nopsi-ke 0080, setelah reboot, muncul kembali. FFFF membawa saya langsung ke OSX. 0081 tampaknya gagal.

Terima kasih untuk bantuannya!

paulkernstock
sumber
Ini sepertinya artikel resmi rEFind: "Memulihkan dari Kudeta Menggunakan Linux" atau "Menggunakan efibootmgr untuk Menyesuaikan Prioritas Boot Anda" akan membantu: rodsbooks.com/refind/bootcoup.html
kenju

Jawaban:

11

OS terkadang mengatur ulang program boot default, terutama jika mereka meningkatkan boot loader standar mereka. Sebenarnya tidak ada cara untuk mencegah hal ini terjadi, jadi Anda harus tahu cara memperbaiki masalah ketika itu terjadi. Di Linux, ini dilakukan dengan menggunakan efibootmgrprogram. Di OS X, itu dilakukan via bless. Lihat di sini untuk informasi lebih lanjut efibootmgr.

Jika juggling ini terjadi setiap kali Anda reboot, maka ada sesuatu yang salah. Jika Ubuntu mengatur ulang GRUB sebagai default pada setiap reboot, maka secara pribadi, saya akan menghapusnya - tapi saya bukan penggemar GRUB (cukup sehingga saya bercabang untuk membuat rEFInd daripada berurusan dengan GRUB). Saya kira Anda juga bisa menelepon ke efibootmgrdalam skrip shutdown, tetapi itu berisiko terputus dari kenyataan dan menyebabkan masalah, jadi saya enggan melakukan itu.


EDIT:

Ya, mengubah BootOrdervariabel (melalui -oopsi ke efibootmgr) seperti yang Anda sarankan adalah tepat. Anda dapat menghapus entri OpenSUSE dengan:

sudo efibootmgr -b 0 -B

Mungkin ada file OpenSUSE yang diinstal yang dapat Anda hapus menggunakan rm- mungkin sudo rm -r /boot/efi/EFI/opensusedari Ubuntu. (File-file ini seharusnya tidak membahayakan, tetapi bisa membingungkan atau diaktifkan kembali secara tidak sengaja di masa mendatang.) Anda dapat menghapus GRUB Ubuntu dengan cara yang serupa, meskipun mungkin diinstal ulang jika / ketika Ubuntu memperbaruinya di masa depan. Selain itu, menyimpannya sebagai metode cadangan untuk booting mungkin masuk akal.

Jika Anda membiarkan GRUB Ubuntu diinstal tetapi tidak ingin melihatnya di menu rEFInd, Anda dapat menggunakan dont_scan_dirsatau dont_scan_filesdalam refind.conf(mungkin /boot/efi/EFI/refind/refind.confdari Ubuntu) untuk menyembunyikan entri GRUB.

Rod Smith
sumber
Silakan lihat hasil edit saya di atas. Jadi langkah selanjutnya, saya berasumsi, akan menghapus entri-entri yang dibuka (saya menghapus distro ini beberapa waktu lalu) dan mengatur BootOrder ke "0080,0001, FFFF" sebagai contoh. Apakah itu benar? Selain itu saya tidak keberatan untuk menghapus GRUB2 sepenuhnya, tetapi bagaimana saya bisa melakukan ini dan mendapatkan rEFInd untuk boot langsung ke Ubuntu? Apakah saya harus menginstal EFI Stub Loader seperti yang ditunjukkan di situs web Anda? Terima kasih lagi!
paulkernstock
Silakan lihat hasil edit saya di atas.
Rod Smith
Sekarang ini pasti memecahkan pertanyaan saya. Tetapi sebelum saya menghapus GRUB2 saya ingin meminta rezeki masuk ke Ubuntu, tetapi tidak. Dalam menu rEFInd saya melihat dua entri Ubuntu, satu yang mengatakan "grub_x64" dan satu yang mencoba untuk boot langsung ke Ubuntu menggunakan kernel vmlinuz-3.13.0-67-generik yang, ketika dipilih, akan bertahan di rEFInd-booting-prompt . Menekan F2 di menu akan membiarkan saya memilih versi aktual saya (3.19.0-32-generik), tetapi dengan hasil yang sama. Ketika menekan F2 lagi opsi ditampilkan sebagai di /boot/refind_linux.conf ro quiet splash nomodeset vt.handoff=7yang sama dengan di GRUB.
paulkernstock
Apakah ada root={something}spesifikasi refind_linux.conf? Jika tidak, itu perlu ditambahkan. Anda harus bisa menjalankannya dengan menjalankan mkrlconfskrip yang datang dengan rEFInd, tetapi Anda mungkin harus menambahkan --forceopsi, seperti pada sudo mkrlconf --force(tetapi mungkin dengan path lengkap ke mkrlconf). Jika itu masih menghilangkan root=opsi, tolong tunjukkan apa yang terjadi ketika Anda mengetik cat /proc/cmdline.
Rod Smith
Yang refind-linux.confsaya buat dengan menggunakan mkrlconf-script Anda memiliki tiga entri dengan root=-spesifikasi (lihat di sini ). Di GRUB2 saya harus menambahkan opsi nomodesetuntuk menjalankan nVidia-GPU saya. cat /proc/comdlinememberi saya: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Meskipun proses booting menggantung secara visual di layar boot-ulang rEFI, sistem tampaknya mulai, misalnya daemon-kontrol-kipas saya sedang dimulai dan penggemar berjalan lambat.
paulkernstock
8

Ini terjadi pada saya dan saya memperbaikinya dengan hal-hal berikut saat berada di Ubuntu (ini khusus untuk kasus Anda seperti boot Ubuntu Anda Boot0001*):

sudo efibootmgr -o 80,1

Jika Anda mengetik lagi sudo efibootmgr, urutan boot Anda seharusnya sekarang BootOrder: 0080,0001. Ini menjamin bahwa Mac di-boot pertama kali, dan karena rEFInd diinstal di Mac, maka itu harus muncul terlebih dahulu.

iDuran
sumber