НАЗАД Меню не отображается на двух компьютерах 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опцией -option на 0080, после перезагрузки появится rEFInd. FFFF приводит меня прямо в OSX. 0081 кажется неудачным.

Спасибо за помощь!

paulkernstock
источник
Вот официальная статья 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, как указано на вашем веб-сайте? Еще раз спасибо!
Полкернсток
Пожалуйста, смотрите мое редактирование выше.
Род Смит
Теперь это определенно решило мой вопрос. Но прежде чем удалить GRUB2, я бы хотел, чтобы REFInd попал в Ubuntu, но это не так. В меню rEFInd я вижу две записи Ubuntu, одна из которых гласит «grub_x64», а другая пытается напрямую загрузиться в Ubuntu с помощью ядра vmlinuz-3.13.0-67-generic, которое при выборе будет зависать в rEFInd-booting-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=-specification (см. Здесь ). В 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-booting, система, кажется, запускается, например, мой демон fan-control-daemon запускается, и вентиляторы работают медленно.
paulkernstock
8

Это случилось со мной, и я исправил это следующим образом в Ubuntu (это характерно для вашего случая, так как ваша загрузка Ubuntu Boot0001*):

sudo efibootmgr -o 80,1

Если вы напечатаете снова sudo efibootmgr, ваш порядок загрузки должен быть сейчас BootOrder: 0080,0001. Это гарантирует, что Mac загружается первым, и поскольку rEFInd был установлен в Mac, то он должен появиться первым.

iDuran
источник