LINUX.ORG.RU

Наглый Мастдай

 , ,


1

3

Всем привет! Проблема с перезаписью bootloader UEFI.

Новый ноут (HP OMEN), два диска, две оси - Мастдай и Арчик. Диски GPT, загрузка в режиме UEFI. Настроено меню загрузки для systemd-boot. Загрузка работает, загружается выбранная ось, проблем нет…

… до момента загрузки Мастдая - каждый раз он из UEFI автоматически удаляет мультисистемный загрузчик Linux и заменяет на свой. Естественно, после этого при перезагрузке выбор операционки из меню пропадает, как и само меню.

Перепробовал кучу вариантов из WiKi Archlinux - ничего не помогает! Главная трудность, что на этом ноутбуке невозможно сохранить в UEFI две загрузочные записи одновременно - остается только одна, та что была добавлена последней.

Может кто-то сталкивался с подобной ситауцией, знает как откючить перезапись?


Решение: не отключать а подправить загрузочную запись:

C:\Windows\system32>bcdedit /set {bootmgr} path \EFI\BOOT\BOOTX64.EFI

в итоге загрузчик вызовет настроенный бутлоадер линуха с работающим меню выбора оси.



Последнее исправление: hobbit (всего исправлений: 2)

на этом ноутбуке невозможно сохранить в UEFI две загрузочные записи…

«Windows only». Множество людей старались изо всех сил, чтобы было «одно». А ты тут пришел и решил всех заломать. Как ты думаешь, получится?

Вариант. Загрузчик на флешке.

Второй вариант. Другой ноутбук.

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

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

То есть проблема не в Windows, как и следовало ожидать. У них там вообще на удивление всё по букве стандарта. Если у тебя есть уже раздел ESP, оно туда положит свой загрузчик, не трогая чужие. А тут урезанный UEFI, что поделать.

Зачем тебе вообще дуалбут? Оставь наиболее нужную ОС, а другую виртуализируй.

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

В установленной Ubuntu находим файл /usr/lib/systemd/boot/efi/systemd-bootx64.efi. Копируем его на ESP-раздел в каталог /EFI/Microsoft/Boot и переименовываем в bootmgfw.efi.

Это очень плохой хак. Этот загрузчик не имеет нужной подписи. И даже если выключить SecureBoot, то я почти уверен, что Windows заметит, что файл не «родной», и заменит оригинальным.

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

Посмотрел, там есть интересная идея:

boot/efi/systemd-bootx64.efi. Копируем его на ESP-раздел в каталог /EFI/Microsoft/Boot и переименовываем в bootmgfw.efi

но, у MS ведь есть защита загрузочных файлов - это долго не проработает, как мне кажется.

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

это долго не проработает, как мне кажется

Более того, если ты положишь загрузчик Windows в файл /boot/efi/EFI/debian/grubx64.efi (неважно зачем, просто так), то оно тоже долго не проживёт :)

anonymous
()

Т.е. каждый раз после загрузки оффтопика оказывается полностью перезаписано меню загрузки UEFI? Или изменяется только выбранный вариант загрузки, но сами загрузчики остаются зарегистрированы? Если последнее, то можно попытаться установить ненулевой таймер, и, если после загрузки оффтопика таймер не изменится, в дальнейшем, для выбора варианта загрузки использовать меню UEFI.

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

ты не понял - нет меню в УЕФИ, только указание на загрузчик. Загрузчик оси вызывает файл .efi, который и грузит ось. А чел из загрузчика оффтопик вызвал файл бутлоадера Линуха! А у последнего полноценное меню выбора оси для загрузки.

anonymous
()

Это не мастдай, а bootmanager материнки так себя ведёт. У меня на предыдущей гигабайтовской матери граб регулярно пропадал из UEFI-меню (хотя и не после каждой загрузки винды). Нынешний Асус не теряет граб даже после сброса настроек или апдейта прошивки (или, скорее, каждый раз корректно его находит).

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

Оставь наиболее нужную ОС, а другую виртуализируй.

Другую бывает жалко, если она лицензионная и шла с ноутбуком. :) Это примерно мой случай, у меня на соньке Windows 8 и Федора. UEFI там какой-то урезанный, две оси равноправно средствами UEFI грузить не получилось. Допускаю, что я чего-то недожал, но в итоге проще получилось сделать дуалбут средствами GRUB, который с Федорой шёл.

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

Другую бывает жалко, если она лицензионная и шла с ноутбуком. :)

Но ведь ключ никто не забирает, если понадобится потом. К слову, ключ OEM вряд ли можно использовать в ВМ легально, хотя де-факто работать скорее будет, и MS на это наплевать.

И я не подразумевал под более нужной ОС именно Linux, поскольку не в курсе приоритетов ТС

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

нет меню в УЕФИ

У меня, по крайней мере на десктопе, есть и работает. На ноуте проверять лень. Вероятно, наличие меню UEFI Boot Manager зависит от конкретной прошивки устройства, но в моём случае это меню позволяет выбрать либо один из зарегистрированных загрузчиков, либо одно из устройств. Его работа обеспечивается UEFI-прошивкой, поэтому оно запускается до запуска самого загрузчика.

После запуска и опроса устройств менеджер загрузки входящий в состав прошивки выбирает для запуска одно из зарегистрированных efi-приложений, либо одно из устройств с ESP-разделом на которых ищется резервный путь \EFI\BOOT\BOOTX64.EFI. Поскольку на одном ESP-разделе может находится множество различных приложений, то если меню UEFI Boot Manager присутствует, он позволяет выбрать для запуска любое из приложений, о которых он знает (их список обычно ограничен зарегистрированными). Хотя этими приложениями в большинстве случаев являются различные загрузчики, в принципе это может быть и какой-нибудь калькулятор. Поэтому даже если загрузчик и не позволяет выбирать запускаемую ось, то можно просто выбрать загрузчик. То есть, если были зарегистрированы загрузчик оффтопика, и загрузчик systemd-boot, и при этом оффтопик каждый раз изменяет порядок авто-выбора загрузчиков, помещая свой на вершину списка, но не удаляет записи о других загрузчиках и не изменяет значение таймера отображения меню, то можно просто пользоваться именно меню выбора UEFI Boot Manager для выбора запускаемого загрузчика.

Для регистрации, удаления, изменения приоритета выбора, изменения таймера и других действий по конфигурированию встроенного в прошивку менеджера загрузки есть удобная утилита efibootmgr.

QsUPt7S
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
26 марта 2024 г.