Меню rEFInd не відображається на подвійній машині Mac / Ubuntu


10

У мене виникають невеликі проблеми з rEFInd і я не можу знайти щось конкретне в цьому.

Я успішно встановив Ubuntu 14.04 для подвійного завантаження з OS X Yosemite на моєму MacBook Pro 3.1 за допомогою rEFInd, але тепер після завантаження в Ubuntu меню rEFInd не відображається після перезавантаження. Це просто переходить у грязь. Після повторного завантаження в OS X (використання клавіші опції при запуску) іноді з'являється rEFInd, іноді ні, не вдалося зрозуміти, як це спрацьовує.

Чи є спосіб переконатися, що rEFInd з'являється першим, незалежно від того, яку ОС я завантажував раніше?


Редагувати

Використання efibootmgr -vдає мені:

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)

Якщо я встановив NextBoot з -опцією -nдо 0080, після перезавантаження з'явиться rEFInd. FFFF приводить мене безпосередньо в OSX. 0081, здається, провалюється.

Дякую за допомогу!


Ось, здається, офіційна стаття rEFind: "Відновлення з перевороту за допомогою Linux" або "Використання efibootmgr для коригування пріоритету завантаження" допоможе: rodsbooks.com/refind/bootcoup.html
kenju

Відповіді:


11

ОС іноді скидає програму завантаження за замовчуванням, особливо якщо вони оновлюють свої стандартні завантажувачі. Дійсно не можна запобігти цьому, тому потрібно просто знати, як виправити проблему, коли вона виникає. В Linux це робиться за допомогою efibootmgrпрограми. В OS X це робиться через bless. Дивіться тут докладніше про efibootmgr.

Якщо це жонглювання відбувається щоразу, коли ви перезавантажуєтесь, то щось серйозно не так. Якщо Ubuntu скидає GRUB як за замовчуванням при кожному перезавантаженні, тоді особисто я би його видалив - але я не шанувальник GRUB (достатньо, щоб я розіграв rEFIt зробити rEFInd, а не мати справу з GRUB). Я припускаю, що ви також можете поставити дзвінок efibootmgrу сценарій відключення, але це ризикує відключитися від реальності та створити проблеми, тому я б не хотів цього робити.


Редагувати:

Так, доцільна зміна BootOrderзмінної (через -oопцію на efibootmgr). Ви можете видалити запис OpenSUSE за допомогою:

sudo efibootmgr -b 0 -B

Можливо, встановлені файли OpenSUSE, які можна видалити за допомогою rm- ймовірно, sudo rm -r /boot/efi/EFI/opensuseз Ubuntu. (Ці файли самі по собі не повинні завдавати ніякої шкоди, але вони можуть бути заплутаними або випадково повторно активовані в майбутньому.) Ви можете видалити Ubuntu GRUB аналогічним чином, хоча він може бути повторно встановлений, якщо / коли Ubuntu оновлює його в майбутньому. Крім того, зберігати його як резервний метод завантаження може мати сенс.

Якщо ви залишите GRUB Ubuntu встановленим, але не хочете бачити його в меню rEFInd, ви можете використовувати dont_scan_dirsабо dont_scan_filesв refind.conf(можливо, /boot/efi/EFI/refind/refind.confз Ubuntu), щоб приховати запис GRUB.


Перегляньте мою редакцію вище Отже, наступним кроком, я припускаю, буде видалення запису opensuse (я видалив цей дистрибутив деякий час тому) і встановити BootOrder на "0080,0001, FFFF" наприклад. Це правильно? Додатково я не заперечував би повністю видалити GRUB2, але як я можу це зробити і отримати REFInd безпосередньо завантажуватися в Ubuntu? Чи доведеться мені встановити навантажувач для навантажувачів EFI, як зазначено на вашому веб-сайті? Знову дякую!
paulkernstock

Перегляньте мою редакцію вище
Род Сміт

Тепер це однозначно вирішило моє питання. Але перш ніж видалити GRUB2, я хотів би, щоб rEFInd потрапив у Ubuntu, але це не так. У меню rEFInd я бачу два записи Ubuntu: один, який говорить "grub_x64", і той, який намагається завантажуватися безпосередньо в Ubuntu, використовуючи ядро ​​vmlinuz-3.13.0-67-generic, яке при виборі буде зависати у rEFInd-boot-prompt . Натискання клавіші F2 у меню дозволить мені вибрати свою фактичну версію (3.19.0-32-generic), але з тим же результатом. При повторному натисканні на F2 параметри відображаються як у /boot/refind_linux.conf, ro quiet splash nomodeset vt.handoff=7які такі ж, як у GRUB.
paulkernstock

Чи є root={something}специфікація в refind_linux.conf? Якщо ні, то її потрібно додати. Ви повинні мати змогу домогтися цього, запустивши mkrlconfсценарій, що постачається з rEFInd, але вам, мабуть, доведеться додати --forceпараметр, як у sudo mkrlconf --force(але, можливо, з повним шляхом до mkrlconf). Якщо це все ще не підтримує цей root=варіант, будь ласка, покажіть мені, що відбувається під час введення cat /proc/cmdline.
Род Сміт

Те, refind-linux.confщо я зробив за допомогою вашого mkrlconf-script, має три записи з root=-визначенням (див. Тут ). У GRUB2 мені довелося додати можливість nomodesetзапустити nVidia-GPU. cat /proc/comdlineдає мені: BOOT_IMAGE=/boot/vmlinuz-3.19.0-32-generic root=UUID=1b9ece72-754f-4f4b-85c0-5b5ed6fc89e1 ro quiet splash nomodeset vt.handoff=7. Незважаючи на те, що процес завантаження візуально зависає на екрані завантаження rEFInd, система, здається, запускається, наприклад, запускається мій демон-вентилятор, а вентилятори йдуть повільно.
paulkernstock

8

Це сталося зі мною, і я виправив це з наступним, перебуваючи в Ubuntu (це специфічно для вашого випадку, як ваш завантажувач Ubuntu Boot0001*):

sudo efibootmgr -o 80,1

Якщо ви введете знову sudo efibootmgr, ваше замовлення має бути зараз BootOrder: 0080,0001. Це гарантує, що Mac спочатку завантажується, а оскільки rEFInd був встановлений у Mac, то він повинен з’явитися першим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.