LINUX.ORG.RU

О дружбе инсталляторов и загрузчиков

 , ,


0

1

Подумалось…

Дистрибутивов много. Программ их инсталляции тоже. А вот есть ли в каких-нибудь дистрибутивах такой инсталлятор, который при обнаружении уже установленного GRUB (или другого универсального загрузчика) предлагал бы как один из вариантов просто добавить себя туда?

Схожий вопрос по UEFI. Когда я давным-давно ставил Федору в дуалбут с виндой на UEFI-ноуте, она поставила туда свой UEFI-совместимый GRUB, уже из него вызываются и винда, и линукс. Но ведь можно, наверное, как-то просто добавиться в сам UEFI, если он не огорожен? Или нет?

Особенно это актуально, когда я хочу иметь на машине два-три разных линукса (не виртуалки, нативно).

★★★★★

предлагал бы как один из вариантов просто добавить себя туда?

А разве так не делается? ЕМНИП Calamares ищет установленные системы.

GREAT-DNG ★★★★
()

Сколько бы раз я ни ставил два линукса на один комп, всегда в итогу получал GRUB, в котором можно выбрать нужное. Обычно это был GRUB от установленного последним дистрибутива, но какая, в сущности, разницы, если все работает?

Zhbert ★★★★★
()

Схожий вопрос по UEFI. Когда я давным-давно ставил Федору в дуалбут с виндой на UEFI-ноуте, она поставила туда свой UEFI-совместимый GRUB, уже из него вызываются и винда, и линукс. Но ведь можно, наверное, как-то просто добавиться в сам UEFI, если он не огорожен? Или нет?

Вообще-то в современных дистрибутивах в UEFI режиме os-prober выключен, и выбор полагается именно через UEFI делать. Этот способ работает из коробки (появляется пункт в меню UEFI) и пользователь может выбирать. А способ с выбором Windows через GRUB2-EFI считается нежелательным, так как иногда это ломало загрузку.

Vsevolod-linuxoid ★★★★★
()

Схожий вопрос по UEFI. Когда я давным-давно ставил Федору в дуалбут с виндой на UEFI-ноуте, она поставила туда свой UEFI-совместимый GRUB, уже из него вызываются и винда, и линукс. Но ведь можно, наверное, как-то просто добавиться в сам UEFI, если он не огорожен? Или нет?

В сам UEFI и добавляется запись вызова загрузчика Linux. После чего в GRUB добавляется запись вызова UEFI загрузчика Windows.

После чего в UEFI переключается очерёдность вызова загрузчиков и по умолчанию ставится запись с UEFI версией GRUB.

Если ты хочешь вызывать сразу напрямую загрузчик Windows - нажимай клавишу вызова загрузочного меню при запуске компьютера / ноутбука и вызывай сразу нужный загрузчик.

Обычно это F8, может быть ещё F11 или F12. Ну либо смотри в документации к UEFI твоего аппарата.

Если тебе конечно удобнее при каждом включении компьютера нажимать клавишу вызова загрузочного меню - вперёд.

Но мне кажется гораздо удобнее, когда запускается загрузчик и из него можно загрузить либо Linux, либо Windows.

kostik87 ★★★★★
()

У меня другой вопрос. Хоть один установщик дитстрибутива умеет ставить linux как efi stub, то есть без загрузчика, напрямую загружая ядро из uefi?

eternal_sorrow ★★★★★
()

А вот есть ли в каких-нибудь дистрибутивах такой инсталлятор, который при обнаружении уже установленного GRUB (или другого универсального загрузчика) предлагал бы как один из вариантов просто добавить себя туда?

На моей памяти все инсталляторы так раньше делали. Но могли перестать как раз по описанной выше причине, предлагая использовать boot menu вместо этого. Решается доустановкой os-prober, некоторые инсталляторы предлагают галочку в wizard’е чтобы его включить.

Почему так случилось – опишу в ответе ниже.

Но ведь можно, наверное, как-то просто добавиться в сам UEFI, если он не огорожен?

EFI Stub (фича ядра) и/или Gummiboot (systemd-boot) позволяют. Но чтобы это работало с secure boot, нужно либо правильно собранное и подписанное ядро и initramfs из реп дистрибутива, либо правильно собранный и подписанный systemd-boot+ядро+initramfs оттуда же, либо собирать и подписывать самому, перед этим, конечно, сгенерив ключи и добавив их в bios.

Но ведь можно, наверное, как-то просто добавиться в сам UEFI, если он не огорожен?

Есть несколько способов, без secure boot это вообще крайне легко делается. Могу проинструктировать. С ним сложнее, но пять-шесть лет назад было намного труднее чем сейчас, сейчас всё упростилось. См. ответ ниже.

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

См. ответ выше. Я могу ошибаться, но вместо ядрёного стаба предлагается брать systemd-boot, который по сути делает то же самое что и стаб, сохраняя при этом возможность грузить разные ядра.

Раньше на генте с выключенным secure boot я собирал ядро с опцией, которая добавляла в начало валидное EFI PE-приложение (тот самый ядрёный стаб), и всё грузилось напрямую без grub (при надобности его можно было вызвать через boot menu), но я уже давно не на генте. О том, чтобы эта опция была включена из коробки в каких-либо дистрибутивах, я не слышал. Сейчас у меня grub, потому что я очень редко ребутаюсь и он мне не мешает вообще.

xenith
()
Ответ на: комментарий от Vsevolod-linuxoid

считается нежелательным, так как иногда это ломало загрузку

Я, например, не представляю, как венда может загрузиться в режиме secure boot из-под grub, сохранив при этом цепочку доверия. Нет, дело не в grub, его уже научили не загружать неподписанные модули, и ядра с поддержкой secure boot тоже уже в некоторых дистрибутивах отказываюся делать modprobe чего-либо, что не подписано, но windows ничего не знает про grub и то, что ему можно доверять, не считая целостность нарушенной.

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

inb4 «secure boot не нужен»:

Он никуда не денется, пора смириться, привыкнуть, научиться с ним работать, и извлечь из него пользу. А дистрибутиводелам надо стремиться к тому, чтобы всё работало из коробки без ручных манипуляций. Современные дистрибутивы не так давно дошли до того, что руками ничего или почти ничего делать не надо, и оно условно-секьюрно работает из коробки. Когда-то давно я сетапил по этой инструкции ноут с шифрованием и secure boot, и это был довольно утомительный процесс из-за кучи нюансов, а теперь почти то же самое делает инсталлятор. Почти – потому что /boot, кажется, всё так же не зашифрован, а detached boot и/или detached luks header интсаллятор не предлагает сделать, и я не знаю как обстоят теперь дела с гибернацией при включённой верификации модулей (у меня она выключена).

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

Когда-то давно я сетапил по этой инструкции ноут с шифрованием и secure boot, и это был довольно утомительный процесс из-за кучи нюансов, а теперь почти то же самое делает инсталлятор.

В общем-то 90% того, на что я однажды убил сутки, теперь делается само парой галочек. Для меня разница колоссальная, и в этом как раз хорошо видно настоящее развитие дистрибутивов, ибо они сделали что-то очень важное достаточно простым и удобным.

Знакомая поставила себе убунту (точнее, минт) через next-next-next-finish (насколько я знаю), потом её не трогала долго, пользуясь другим компьютером, а когда я сел за её комп помочь апгрейднуться на более свежий релиз, надо было обновить блоб невидии. В этот момент оказалось что там нельзя грузить неподписанные модули, что всё подписано, secure boot работает, а ни я, ни она даже этого не заметили. Проблема решилась удалением пакета с блобом из PPA и установкой из родных реп, где модуль подписан и грузится штатно.

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

Я сейчас на генте гружусь через EFI STUB. Держу также grub в качестве запасного варианта. Но это вручную всё настроено, а есть где то автоматически чтобы так работало?

Я могу ошибаться, но вместо ядрёного стаба предлагается брать systemd-boot

Зачем? И чем это лучше того же груба? У него хотя бы конфиг генерится автоматически, в отличие от.

А secure boot не нужен.

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

Я сейчас на генте гружусь через EFI STUB. Держу также grub в качестве запасного варианта. Но это вручную всё настроено, а есть где то автоматически чтобы так работало?

Я о таком не ведаю.

И чем это лучше того же груба?

Не знаю, не интересовался.

А secure boot не нужен.

Эту технологию можно использовать в паре с шифрованием диска для защиты от вредоносного кода – например, банальной подмены чистого ядра на «отравленное» в незашифрованном /boot.

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

Зачем? Просто отключаешь и спокойно пользуешься.

Если комп не зашифрован и оно отключается через uefi setup – да. Но отключается оно далеко не везде, а было бы неплохо, если бы онтопик грузился везде как plug and play, как любой live-дистрибутив или дистрибутив-инсталлятор (такие остались ещё без лайва?) с поддержкой secure boot.

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

Почему так случилось – опишу в ответе ниже.

Забыл добавить про это – чтобы ту самую цепочку доверия не нарушать. По логике grub должен отказываться грузить то, что нашёл ему os-prober, если оно не подписано.

xenith
()
Последнее исправление: xenith (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.