LINUX.ORG.RU

Kubuntu & Windows 10, загрузка с Efi

 , , , ,


1

1

Всем привет! Заранее приношу извинения за нубский вопрос, но вот никак не могу справиться сама, может кто поможет по доброте душевной) Итак, суть: Есть ноутбук – HP EliteBook 8470. На нем установлена windows 10. Secureboot отключен, но загрузчик efi. (FastBoot тоже отключен) Второй системой установлена kubuntu 16.04. Устанавливала с флешки, загружалась с efi. Установщику указала путь sda2, который является моим разделом для efi загрузчиков, как указано, например, тут https://habrahabr.ru/post/259283/

При перезагрузке компьютера всегда загружается windows. Для того, чтобы загрузить kubuntu мне нужно выходить в меню выбора загрузки, выбирать efi и затем выбирать, например, grub_x64.efi.

Решила попробовать пойти по пути наименьшего сопротивления и установить rEFInd, Как, например, тут https://habrahabr.ru/post/224179/ Однако ситуация не поменялась никак, просто в efi добавился вариант «refind” и все. При его выборе, грузится гламурненький загрузчик, с которого можно запустить как windows, так и kubuntu. Но, чтобы он загрузился мне снова необходимо вызывать бут меню, выбирать загрузку с efi. Ковыряния с Efibootmgr тоже ровным счетом ничего не изменили. Тут https://wiki.gentoo.org/wiki/Efibootmgr/ru нашла, как создавать записи, ранее нагуглила, как удалять. Но даже полное удаление бутзаписей из Efibootmgr ничего не дало, там снова появился «Boot 0000 windows boot manager» Boot repair, который активно советуют почти в каждой ветке про uefi & linux на ubuntu форумах создал граб с кучей записей, но ничегошеньки не изменилось. В арчвики https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface нашла подробнейшее объяснение по теме, но я видимо сейчас сильно туплю, ибо никак не получается заставить машину грузиться сразу с нужного мне efi Тащемта вопрос: можно как-то заставить компьютер загружаться сразу с какого-либо efi или так и придется загружать нужную систему через задний проход? И еще: получается, что от grub можно отказаться в пользу efibootmgr?

Огромнейшее спасибо откликнувшимся!

Пункт раз, тебе надо зайти в меню загрузки efi, выбрать линь, загрузиться в него.

Внутри линя запустить efibootmgr (консольная утилита), запускается от рута, показывает по умолчанию список твоих бут-записей и прочую требуху.

Потом делаешь efibootmgr -o 00x1 00x2 и т.д.

В нужном порядке, чтобы линукс стоял первым. Всё, профит, теперь при перезагрузке будет вылезать груб и спрашивать куда тебе надо.

Если в винду грузишься редко и мало, то можешь в грубе убрать настройку ожидания и всегда грузиться в линь, а в винду делать так:

efibootmgr -n 00x20 && reboot (где 00х20 - номер записи загрузчика винды) и перезагружаться в винду (работает один раз, в следующие разы при загрузке будет выбираться линукс).

zink ★★ ()

З.Ы. записи в efi при удалении могут восстанавливаться на дефолт (в нормальных прошивках), в ненормальных могут окирпичивать девайс. И надо не только удалять-создавать, но и менять порядок.

zink ★★ ()
Ответ на: комментарий от zink

Спасибо большое! Итак, сейчас вывод efibootmgr выглядит так у меня:

BootCurrent: 0000 Timeout: 5 seconds BootOrder: 0002 Boot0000* Windows Boot Manager Boot0001* «refind» Boot0002* Linux

Сейчас сделаю, как Вы сказали. Отпишусь о результате

Anfikus ()
Ответ на: комментарий от zink

Так сейчас выглядит вывод efibootmgr

BootCurrent: 0000 Timeout: 10 seconds No BootOrder is set; firmware will attempt recovery Boot0000* rEFInd Boot Manager Boot0001* «refind» Boot0002* Linux Boot0003* ubuntu Boot0004* Windows Boot Manager root@HP-EliteBook-8470p:/home/anfisa#

но тем не менее загружается винда и все тут(

Anfikus ()
Ответ на: комментарий от Anfikus

No BootOrder is set; firmware will attempt recovery

Это толсто намекает, что порядок не установился.

Попробуй ещё раз выставить нужный порядок и проверь в конце, что он встал как положено, перед тем как перезагружаться.

Судя по твоему выводу тебе надо задавать порядок так:

efibootmgr -o 0000,0001,0002,0003,0004

zink ★★ ()
Ответ на: комментарий от zink

Ой, тупанула, да не установился(

Итак, меняю порядок:

root@HP-EliteBook-8470p:/home/anfisa# efibootmgr -o 0000,0001,0002,0003,0004
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002,0003,0004
Boot0000* rEFInd Boot Manager
Boot0001* «refind»
Boot0002* Linux
Boot0003* ubuntu
Boot0004* Windows Boot Manager

после этого проверяю, просто вводя efibootmgr.

Вывод:

root@HP-EliteBook-8470p:/home/anfisa# efibootmgr -o 0000,0001,0002,0003,0004
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002,0003,0004
Boot0000* rEFInd Boot Manager
Boot0001* «refind»
Boot0002* Linux
Boot0003* ubuntu
Boot0004* Windows Boot Manager

Но, после перезагрузки снова windows. А efibootmgr выдает снова:

root@HP-EliteBook-8470p:/home/anfisa# efibootmgr -o 0000,0001,0002,0003,0004
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,0002,0003,0004
Boot0000* rEFInd Boot Manager
Boot0001* «refind»
Boot0002* Linux
Boot0003* ubuntu
Boot0004* Windows Boot Manager

Anfikus ()

При перезагрузке компьютера всегда загружается windows

При загрузке загружается esp/EFI/Boot/bootx64.efi, потом всё остальное, вне зависимости от последовательности загрузки, определённой в настройках. Можешь попробовать перенести этой файл, опустошив директорию, но гарантий, что после этого венда загрузится, я дать не могу.

r3lgar ★★★★★ ()
Ответ на: комментарий от zink

Перезагрузилась еще раз и тут оп-па:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* Windows Boot Manager

Походу сам UEFI творит чудеса.

Anfikus ()
Ответ на: комментарий от zink

В нужном порядке, чтобы линукс стоял первым.

И на некоторых фирмварях просто затереть эту запись при следующей загрузке? Не надо вредных советов, читай причину такого поведения EFI в моём комментарии выше.

r3lgar ★★★★★ ()
Ответ на: комментарий от Anfikus

Не надо следовать вредным советам. Я просто немного опоздал с комментариями.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Спасибо большое,попробую забэкапить bootx64 и затереть, посмотрю, что выйдет.

Но пока, что бы я не чудила с efi разделом, вход в линукс только через бут меню, которое выглядит так:

[IMG]http://images.gameru.net/thumb/2cbf921aa7.jpg[/IMG]

OS Boot Manager при любом раскладе всегда вверху.

Anfikus ()
Ответ на: комментарий от Anfikus

вход в линукс только через бут меню

Это у всех так. Венда считает себя самой главной, и вообще единственной операционкой на девайсе, и будет всеми средствами пытаться пропихнуться или в BootNext, или в первую позицию в BootOrder.

OS Boot Manager

Кто это, и куда делся Windows Boot Manager?

Надеюсь, восстановить всё как было сможешь? На случай если нет, у меня в профиле есть ссылочка про EFI, читай, просвещайся.

Вот поспел тут персонаж, натворил делов и слился.

r3lgar ★★★★★ ()

от grub можно отказаться в пользу efibootmgr?

Ты немного не понимаешь сути efibootmgr. Он — просто утилита, которая рулит пунктами меню прямо из линуксов, чтобы не нужно было ходить в BIOS, переставлять пункты местами, ну и добавить кастомный пункт он может, но он НЕ загрузчик, загрузчиком является сам UEFI. Да, с UEFI не нужно лишних прослоек типа grub, но в некоторых случаях (например, использование ядра отличной от фирмваря архитектуры (Загрузка x86_64 ядра из x86 EFI), или нежелание готовить efi-программу самостоятельно) его придётся использовать.

r3lgar ★★★★★ ()
Ответ на: комментарий от Anfikus

Примонтировала раздел с efi, чтобы забэкапить bootx64.efi

  • # mkdir /media/efi
  • # mount /dev/sda2 /media/efi

Запустила файловый менеджер из-под рута, и что я вижу в директории с efi?

Вот:

директория boot-sav, содержащая в себе логи и mbr-backups

Директория EFI, в которой refind, tools, Microsoft и, собственно, Ubuntu

Куда делась директория boot, в которой по идее должен находится тот самый bootx64.efi ума не приложу.

Все чудесатее и чудесатее, трудно быть тупенькой(

Anfikus ()
Ответ на: комментарий от r3lgar

Ты немного не понимаешь сути efibootmgr. Он — просто утилита, которая рулит пунктами меню прямо из линуксов, чтобы не нужно было ходить в BIOS, переставлять пункты местами, ну и добавить кастомный пункт он может, но он НЕ загрузчик, загрузчиком является сам UEFI. Да, с UEFI не нужно лишних прослоек типа grub, но в некоторых случаях (например, использование ядра отличной от фирмваря архитектуры (Загрузка x86_64 ядра из x86 EFI), или нежелание готовить efi-программу самостоятельно) его придётся использовать.

Ааааа, все, поняла.

Кто это, и куда делся Windows Boot Manager?

Эт он и есть, просто ноутбук его так видит.

Anfikus ()
Ответ на: комментарий от r3lgar

Надеюсь, восстановить всё как было сможешь? На случай если нет, у меня в профиле есть ссылочка про EFI, читай, просвещайся.

Спасибище, почитаю, как раз полезно. Я вчера ман арчевский по теме курила. Ох и много там инфы. Умеют все-таки арчеводы маны писать.

Anfikus ()
Ответ на: комментарий от r3lgar

Это у всех так. Венда считает себя самой главной

Это я за последние пару дней усвоила отлично :D

Вот как бы ее, гадину такую, подвинуть немного с это позиции.

Конечно можно загружаться и через бут меню, но как-то это совсем костыльно, да и не быстро. Хотелось, чтоб все как у людей))

Anfikus ()
Ответ на: комментарий от Anfikus

Чую я, это где-то в самом UEFI собака зарыта. Но смена настроек особо картины не меняет

Anfikus ()
Ответ на: комментарий от Anfikus

Вот как бы ее, гадину такую, подвинуть немного с это позиции.

В первом моём комментарии в этом треде я сделал предположение, но по прежнему не могу дать гарантий. Сам проверить не могу, так как у меня венда на битом диске, и всё равно не загружается.

почитаю, как раз полезно

Там многое упущено по причине лени. Когда-нибудь допишу, если вспомню, что забыл по прошествию времени.

Умеют все-таки арчеводы маны писать.

Иногда там много мешуры, иногда не актуально, но по большей части полезно, да.

Чую я, это где-то в самом UEFI собака зарыта.

У него есть своя логика, и она не в пользу линуксов, так как разрабатывался он именно под венду. Почитай спеки по UEFI, там многое (хоть и не всё) расписано. Конечно, у эппловского варианта есть свои примудрости, но они тебе не нужны в рамках этого сабжа.

Проблема не в самом UEFI, а в непонимании его работы. Да, он работает не так, как grub, а разве должен?

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

UEFI я имею ввиду тот, != efi UEFI тот,что в народе новый биос

Anfikus ()
Ответ на: комментарий от Anfikus

UEFI я имею ввиду тот, != efi UEFI тот,что в народе новый биос

Я тебя понял, на то и пишу. Проблема в понимании работы загрузчика, непривычность его логики после grub/lilo, так как оно писалось под нужды венды.

  • UEFI/EFI — фирмварь, который BIOS;
  • .efi/efi-программа — исполняемый файл ядра или загрузчика;
r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Это у всех так. Венда считает себя самой главной, и вообще единственной операционкой на девайсе, и будет всеми средствами пытаться пропихнуться или в BootNext, или в первую позицию в BootOrder.

Где вы такие UEFI берёте? Почему на тех же Thinkpad'ах выставленный порядок загрузки не меняется, UEFI не кирпичится при стирании UEFI vars и даже даёт сменить ключи SecureBoot без извращений?

zink ★★ ()
Ответ на: комментарий от r3lgar

Проблема в понимании работы загрузчика, непривычность его логики после grub/lilo, так как оно писалось под нужды венды.

Это однозначно, читать и читать мне по теме все.

UEFI/EFI — фирмварь, который BIOS;

Вот я как раз о нем, родимом и говорю. Ковыряние в его настройках отражается на записях в efibootmgr

Anfikus ()
Ответ на: комментарий от zink

Где вы такие UEFI берёте? Почему на тех же Thinkpad'ах выставленный порядок загрузки не меняется, UEFI не кирпичится при стирании UEFI vars и даже даёт сменить ключи SecureBoot без извращений?

Воооот поэтому-то я сама и в ступоре. Потому, что имею опыт установки такого же почти комплекта системы на ноут от asus. Там при отключении secureBoot и fastBoot в винде и в «биосе» приоритет загрузки абсолютно спокойно настраивался. Правда там я ставила дебиан минимал. Но думаю это никак не влияет ни на что в рамках проблемы с загрузчиком.

Мой же упёртый ХэПэ принципиально ставит в приоритет OS Boot Manager, который грузит винду. И только второй записью идет efi, в которой можно выбрать линукс, винду или сторонний загрузчик refind.

Anfikus ()
Ответ на: комментарий от Anfikus

Причем в том асусе еще настраивался lvm. Но все прекрасно сработало, без каких-либо танцев с бубном.

Anfikus ()
Ответ на: комментарий от Anfikus

Да, если сделать mbr вместо gpt, легаси загрузчик по-старинке, все будет норм. Но винду сейчас трогать вот совсем-совсем не хочется. На то причины рабочие

Anfikus ()
Ответ на: комментарий от r3lgar

Вот поспел тут персонаж, натворил делов и слился.

BootOrder на нормальных прошивках делает именно то, что нужно и его изменение не оверрайдится по желанию левой пятки разработчика. А теперь расскажи-ка мне про то что же в твоём понимании не так в редактировании порядка загрузки в UEFI? И уж если прошивка затирает файл загрузчика первой записи своим загрузчиком (а не просто меняет или игнорирует приоритет загрузчиков), то это не просто не по спекам, это самый откровенный и жирный баг и жопорукость разработчиков, так что не надо тут про вредные советы.

Венда считает себя самой главной, и вообще единственной операционкой на девайсе, и будет всеми средствами пытаться пропихнуться или в BootNext, или в первую позицию в BootOrder.

Как бы тебе ни хотелось в это верить, но винда тут не при чём. А при чём - кривой UEFI. Сама по себе она (после установки) не лапает ни boot order, ни bootNext.

zink ★★ ()
Ответ на: комментарий от Anfikus

Мой же упёртый ХэПэ принципиально ставит в приоритет OS Boot Manager, который грузит винду. И только второй записью идет efi, в которой можно выбрать линукс, винду или сторонний загрузчик refind.

Ларчик открывался очень просто. Это, внезапно, известный баг UEFI рукопопых HP. Обходится убиранием файлов и изменением настроек внутри винды на использование загрузчика из другого места. Полный тред тут: http://h30434.www3.hp.com/t5/Notebook-Operating-System-and-Recovery/Changing-... .

Я бы забэкапил прежде чем с этим возиться. Кто знает что ещё нарукопопили разрабы. Проблемные файлы: \EFI\Microsoft\Boot\bootmgfw.efi and \EFI\Boot\bootx64.efi

Они захардкожены в этом конкретном UEFI как первые записи, которые надо смотреть и они оверрайдят всё, что ты сама туда запишешь. Boot order игнорируется, используется только порядок ввода (то есть всегда сначала 0000, потом 0001 и т.д.).

Естественно, надо проверять чтобы линуксовые бутрекорды стояли бы правильно и работали. И чтобы в порядке стояли раньше чем винда. Как вариант Б ещё могу предложить подложить загрузчик рефайнда в \EFI\Boot\bootx64.efi

zink ★★ ()
Последнее исправление: zink (всего исправлений: 1)

Если при начальной загрузке компьютера зайти в uefi (как в биос), там по идее должен быть пункт выбора приоритета, по крайней мере у меня так.

andregin ()
Ответ на: комментарий от zink

его изменение не оверрайдится по желанию левой пятки разработчика

То есть ты не можешь даже efibootmgr -o 0000,0002,0004 на "нормальной" прошивке? Не верю.

А теперь расскажи-ка мне про то что же в твоём понимании не так в редактировании порядка загрузки в UEFI?

esp/EFI/Boot/bootx64.efi ВСЕГДА грузится первым, это логика для загрузки со съёмных носителей, и ты её НИКАК не обманешь. Вставь десять флэшек, на которых есть efi-программа, выстави приоритет хард→флэшки, и ты увидишь, что у тебя первым загрузится венда, выстави флэшки→хард, и загрузится та флэшка, которая стоит в первом USB. Это НОРМАЛЬНОЕ поведение EFI, или ты предпочитаешь создавать бутнум для каждой флэшки перед перезагрузкой, чтобы с неё загрузиться?

Где вы такие UEFI берёте? Почему на тех же Thinkpad'ах выставленный порядок загрузки не меняется, UEFI не кирпичится при стирании UEFI vars и даже даёт сменить ключи SecureBoot без извращений?

Открою тебе секрет: на твоём конкретном Thinkpad'е мир клином не сошёлся.

Есть целая куча проблемных фирмварей, и от них никуда не денешься.

А для полноты картины вытащи свой хард/SSD, перезагрузи комп, воткни его, и увидишь, что esp забыт, кроме esp/EFI/Boot/bootx64.efi, если он есть.

r3lgar ★★★★★ ()
Ответ на: комментарий от Anfikus

Это однозначно, читать и читать мне по теме все.

Кроме того, под почти каждого вендора придётся подстраиваться, ибо у каждого свои тараканы. Список известных проблем даже составлять бесполезно — с каждым обновлением фирмваря иногда вырастают новые грабли.

Ковыряние в его настройках отражается на записях в efibootmgr

А могло быть иначе? efibootmgr — это утилита для управления настройками EFI (только той их частью, что отвечает за бут меню, но этого достаточно), и изменение настроек логично будет отображаться, они же изменены.

r3lgar ★★★★★ ()
Ответ на: комментарий от andregin

Он у всех есть, только с esp/EFI/Boot/bootx64.efi он не работает — он будет первым, перечитывай спеки.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

То есть ты не можешь даже efibootmgr -o 0000,0002,0004 на «нормальной» прошивке? Не верю.

Чукча не читатель, чукча писатель? Я ж написал, что нормальные прошивки как раз boot order уважают, а HP-шные - игнорируют.

esp/EFI/Boot/bootx64.efi ВСЕГДА грузится первым, это логика для загрузки со съёмных носителей, и ты её НИКАК не обманешь.

Не угадал. :) На HP-шках, внезапно, захардкожен порядок загрузки в: \EFI\Microsoft\Boot\bootmgfw.efi \EFI\Boot\bootx64.efi

От этого и лезет проблема ТСа. Ты же, кстати, эту самую логику предлагаешь затереть, при чём это не поможет - кривоуефи будет всё равно сначала грузить МС загрузчик, его-то и надо сменять.

Открою тебе секрет: на твоём конкретном Thinkpad'е мир клином не сошёлся.
Есть целая куча проблемных фирмварей, и от них никуда не денешься.

Ты не предложил ни решения для правильного УЕФИ (смена бутордера), ни для конкретного кривого (смена вендозагрузчика), но успел обозвать все остальные решения «вредными советами», браво.

zink ★★ ()
Ответ на: комментарий от zink

О, понятно. НР такой НР, оказался.

Кстати, эта

\EFI\Boot\bootx64.efi

отсутствует у меня, после каких-то из манипуляций. Где-то есть бэкап оного. сейчас у меня в Efi так:

refind, tools, Microsoft и, собственно, Ubuntu

А так, была еще и папочка «boot»

Буду читать это

http://h30434.www3.hp.com/t5/Notebook-Operating-System-and-Recovery/Changing-...

Спасибо!))

Anfikus ()
Ответ на: комментарий от Anfikus

> \EFI\Boot\bootx64.efi

отсутствует у меня, после каких-то из манипуляций. Где-то есть бэкап оного.

Если я правильно распарсил суть проблемы с НР, то как раз этот файл можно вернуть обратно, потом переместить загрузчик виндоуса \EFI\Microsoft\Boot\bootmgfw.efi и на его место уже подложить свой (от refind или GRUB).

Про bootorder можно забыть - HP его игнорирует.

zink ★★ ()
Ответ на: комментарий от zink

Все уловила) спасибо большое, как раз на выходных поковыряюсь

Anfikus ()

На днях мучался с такой же проблемой на HP ProBook, загрузчик Windows был в приоритете, чтобы я не делал.

Решение нашлось в настройках bios, в которых можно было указать кастомный путь до загрузчика efi. В результате теперь у меня всегда появляется няшный rEFInd :)

Фотографии настроек:
http://storage6.static.itmages.ru/i/16/1214/h_1481732550_3710144_9980f96e06.jpg
http://storage7.static.itmages.ru/i/16/1214/h_1481732551_1675149_7fb8504fab.jpg

rEFInd:
http://storage4.static.itmages.ru/i/16/1214/h_1481732992_3821108_b5648a82d5.jpg

PNG ()

Если еще нужна помощь, могу подсказать костыль:

Прячешь \EFI\Microsoft\Boot\bootmgfw.efi -->> \EFI\Microsoft\Boot\bootmgfw\bootmgfw.efi

При загрузке, система не увидит bootmgfw.efi и загрузит refind.

А в конфигах refind прописываешь для винды новый путь к bootmgfw.efi

Если грузится линь, делаешь то же самое с \EFI\Ubuntu\grubx64.efi -->> \EFI\Ubuntu\grubx64\grubx64.efi и прописываешь путь в конфиге refind

Профит)))

Surakat ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.