У меня небольшая проблема с 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 кажется неудачным.
Спасибо за помощь!
Ответы:
Операционные системы иногда сбрасывают загрузочную программу по умолчанию, особенно если они обновляют свои стандартные загрузчики. Нет никакого способа предотвратить это, поэтому вы просто должны знать, как исправить проблему, когда она возникает. В Linux это делается с помощью
efibootmgr
программы. В OS X это делается черезbless
. Смотрите здесь для получения дополнительной информацииefibootmgr
.Если это жонглирование происходит каждый раз, когда вы перезагружаетесь, значит что-то серьезно не так. Если Ubuntu сбрасывает GRUB в качестве значения по умолчанию при каждой перезагрузке, то лично я бы удалил его, но я не фанат GRUB (достаточно, чтобы я разбудил команду rEFIt, чтобы сделать rEFInd, а не иметь дело с GRUB). Я полагаю, вы могли бы также вызвать вызов
efibootmgr
в сценарии завершения работы, но это рискует оторваться от реальности и вызвать проблемы, поэтому я бы не хотел этого делать.РЕДАКТИРОВАТЬ:
Да, изменение
BootOrder
переменной (с помощью-o
опцииefibootmgr
), как вы предлагаете, является уместным. Вы можете удалить запись OpenSUSE с помощью:Могут быть установлены файлы 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.источник
ro quiet splash nomodeset vt.handoff=7
, как и в GRUB.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 запускается, и вентиляторы работают медленно.Это случилось со мной, и я исправил это следующим образом в Ubuntu (это характерно для вашего случая, так как ваша загрузка Ubuntu
Boot0001*
):Если вы напечатаете снова
sudo efibootmgr
, ваш порядок загрузки должен быть сейчасBootOrder: 0080,0001
. Это гарантирует, что Mac загружается первым, и поскольку rEFInd был установлен в Mac, то он должен появиться первым.источник