TL; DR, добавлено в редактировании:
Вопрос в том:
Как я могу сделать так, чтобы BIOS предпочитал GRUB вместо Windows Boot Manager на том же загрузочном разделе UEFI?
Проблема не в Grub; Grub делает правильно, когда его запускает BIOS. Проблема не в том, что «диск не является загрузочным», поскольку загрузочная версия UEFI для Windows и загрузочная UEFI для Grub являются загрузочными. Проблема заключается в том, с какого UEFI-загрузчика BIOS выбирает загрузку.
Я настраиваю новый компьютер и хочу, чтобы он по умолчанию загружался в Ubuntu, но у меня есть возможность выбрать Windows при загрузке. Это особенно важно, если власть выходит и возвращается; Я даже не буду в доме.
Я начал с установки Ubuntu 17.04 на свой внутренний диск NVMe, разделенный с помощью GPT, чтобы использовать половину диска, и отдельный загрузочный раздел UEFI. GRUB загружается просто отлично, и я вижу при загрузке меню загрузки GRUB, где я могу выбрать любые элементы, о которых GRUB знает.
Затем я установил Windows 10 Pro с недавно загруженного ISO. Он установил Windows Boot Manager на тот же раздел UEFI и оставил Ubuntu нетронутым (замечательно!), И он отлично загружается в Windows 10.
Тем не менее, он сделал «что-то», что заставляет прошивку UEFI сразу выбирать загрузочный менеджер Windows, а не GRUB при включении питания. Единственный способ загрузить Linux сейчас - это использовать менеджер загрузки BIOS (F11 в моем BIOS) и вручную выбрать загрузчик GRUB. BIOS UEFI знает, что в разделе UEFI есть несколько загрузочных установок, потому что я могу выбирать между ними в менеджере загрузки. Тем не менее, когда я нахожусь в меню настройки в UEFI BIOS, он просто позволяет мне выбрать «UEFI загрузку моего внутреннего диска» в выборе приоритета загрузки - он не позволяет мне выбирать, какой конкретный загрузчик в этом разделе использовать , И, по умолчанию, он выбирает Windows, а не GRUB.
В интернете (и на этом сайте) предполагается, что старый способ исправить это - запустить update-grub
(чтобы GRUB распознал Windows), а затем grub-install
(вернуть GRUB обратно на устройство). Я сделал это, но, к сожалению, он по-прежнему выглядит как описано выше, где BIOS по умолчанию выбирает Windows Boot Manager. ( update-grub
находит установку диспетчера загрузки Windows и добавляет ее в меню, и этот пункт меню работает, когда я вручную выбираю раздел GRUB в диспетчере загрузки UEFI.)
Что я могу сделать, чтобы GRUB загрузился по умолчанию на моем загрузочном разделе UEFI?
Использование материнской платы MSI X399 Carbon.
Второе редактирование: потому что правильный комментарий заканчивается упоминанием в комментарии к ответу, я повторю его здесь:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
источник
Ответы:
Есть довольно много разных способов сделать это, в том числе:
ubuntu
, учитывая, что вы установили его из этого дистрибутива.)bcfg
команду в оболочке EFI версии 2, как описано в вики Arch Arch. Если ваша система еще не настроена с простой в доступе оболочкой, этот подход, вероятно, будет сложнее в использовании, чем другие, но он не зависит от ОС.ubuntu
запись в списке EasyUEFI и переместить ее наверх.bcdedit
- Команда Windowsbcdedit
может изменить порядок загрузки на основе NVRAM. В частности, открытие окна командной строки администратора и ввод текстаbcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi
(необязательно с последующимbcdedit /set "{bootmgr}" description "ubuntu"
сохранением описания) должны помочь.efibootmgr
- Этот инструмент Linux может регулировать порядок загрузки. Начните с того, что наберитеsudo efibootmgr
один, чтобы увидеть варианты. Обратите внимание на число (Boot####
), связанное сubuntu
записью, и текущий порядок загрузки (вBootOrder
строке). Затем вы можете ввести новый порядок загрузки, указавubuntu
запись сверху-o
. Например, если текущий порядок загрузки равен 0000 0003ubuntu
0007 0004 и 0007, вы должны ввестиsudo efibootmgr -o 0007,0000,0003,0004
порядок загрузки.refind-mkdefault
- Этот скрипт поставляется с rEFInd, и это способ автоматизации предыдущей процедуры. Если вы не используете rEFInd, вам нужно скачать скрипт здесь и сделать его исполняемым (chmod a+x refind-mkdefault
). Затем вы запустите его какsudo ./refind-mkdefault -L ubuntu
или,sudo ./refind-mkdefault -L shimx64
чтобы сделать GRUB загрузочной записью по умолчанию.Есть потенциальные проблемы и осложнения с любым из этих вариантов. Наиболее вероятным осложняющим фактором является наличие старых или альтернативных
ubuntu
загрузочных записей. Важно, чтобы вы переместили правильный в верхнюю позицию в порядке загрузки; если вы переместитесь не в ту сторону, у вас не останется никаких изменений в поведении или что-то из-за нефункциональной загрузки, что затруднит загрузку. Если вы используетеefibootmgr
,BootCurrent
строка может помочь вам определить, какой вариант следует установить по умолчанию.Есть другие способы сделать это, которые излишни. Например, переустановка GRUB (через Boot Repair или
grub-install
) должна помочь. Однако эти подходы могут привести к повреждению известной рабочей конфигурации GRUB.Также обратите внимание, что некоторые EFI содержат ошибки и существуют другие проблемы, которые могут затруднить надежную загрузку GRUB. Вы можете проверить эти вопросы и ответы в AskUbuntu, если столкнетесь с такими проблемами:
источник
sudo efibootmgr -n 0002
гораздо лучше, чем модифицировать текущий порядок SO. Он изменитсяBootNext: 0001
и уйдетBootCurrent: 0002
в следующий раз, оставив ваши текущие записи GRUB нетронутыми. Просто добавьте bashchmod +x
и добавьте эту команду вместе с командой перезагрузки.У меня была именно эта проблема последние несколько недель. Я понял это с помощью этих опций. Прежде чем делать что-либо из этого, я рекомендую вам зайти в свой BIOS / UEFI и проверить порядок загрузки и убедиться, что сначала установлен grub.
Итак, как я вижу, у вас есть два варианта.
Опция 1
Я бы порекомендовал вам сначала установить Windows 10 . Затем установите Ubuntu. Но я знаю, что это просто табу: просто переустановить программное обеспечение, поэтому я тоже предложу альтернативу.
Вариант 2
С вашей текущей настройкой я бы порекомендовал вам загрузиться на CD / флешку Live Ubuntu, установить и запустить
boot-repair
. Нажмите «Рекомендуемый ремонт» и следуйте приведенным инструкциям. Пройдите его внимательно и прочитайте все команды перед выполнением. Это заменит текущую установку grub новой, которая, мы надеемся, исправит это.источник
Я вижу несколько решений:
efibootmgr
. В Windows я не уверен, но я думаю, что вы можете загрузить опцию восстановления, которая позволяет вам настраивать UEFI. Или вы можете предпочесть установить что-то вроде rEFInd.boot
.источник
efibootmgr
как не работает, я знаю, что не буду покупать MSI.Я только что заменил материнскую плату в своем ноутбуке, и грязь полностью исчезла.
Я знаю, что это помечено как исправленное, но я подумал, что это может быть полезно для вас.
Чтобы grub отображался как вариант загрузки. Мне нужно было добавить EFI в BIOS.
Я пошел в "вариант списка загрузки" в моем биосе. Нажмите на «Добавить загрузочную опцию» (я знаю, что это специфический BIOS). Это дало мне возможность для имени файла, который в моем случае был
\EFI\ubuntu\grubx64.efi
и дал ему имяgrub
Затем я переместил
grub
запись в начало последовательности загрузки, и теперь она отображается как запись по умолчанию.То есть, я говорю, что вам может понадобиться найти правильный файл EFI и переместить его в начало последовательности / порядка загрузки.
источник
Ни один из вышеперечисленных вариантов не работал для меня со старым ноутбуком HP 655. Я обнаружил, что решение - отключить менеджер загрузки Windows:
Замените 4 номером вашего менеджера загрузки Windows. Запустите efibootmgr еще раз, и вы увидите, что звезда исчезает, отмечая бездействие.
После того, как мой компьютер загрузится в grup, загрузочное меню и окна все еще могут быть выбраны из этого.
источник
Возможным решением будет ручное редактирование файла / etc / default / grub.
sudo vim /etc/default/grub
Запись по умолчанию определяется
GRUB_DEFAULT=
настройкой в / etc / default / grub. Первый «пункт меню» имеет значение «0». Если Ubuntu - вторая запись на экране загрузки, тогда установите GRUB_DEFAULT = 1.После этого вам нужно будет выполнить команду для обновления конфигурации grub:
update-grub
Другим вариантом будет установка grub-customizer и использование его графического интерфейса для настройки приоритета загрузки.
источник