Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: UEFI-Boot - загрузка без загрузчиков.  (Прочитано 4951 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Проект на github: https://github.com/slytomcat/UEFI-Boot
wiki (rus) : https://help.ubuntu.ru/wiki/uefiboot
wiki (eng) : https://github.com/slytomcat/UEFI-Boot/wiki

Собственно проекту уже несколько месяцев. Недавно прикрутил немного нового функционала.

Сама идея проста - используя возможности системной прошивки (UEFI) загружать непосредственно ядро Linux (без предварительной загрузки shim и grub). Детали расписаны в wiki.

Что это дает? Это как минимум сокращает время загрузки (в зависимости от системы и носителя - от полу секунды на быстрой машине с ssd до пары секунд на медленных с HDD).

Реализация по сути примитивнейшая, ибо используется готовый функционал UEFI и стандартные утилиты для работы с настройками опций загрузки UEFI.

Опробовал решение уже несколько раз на разных машинах. В целом, решение вполне рабочее.
Причем на одной из машин настроена и работает загрузка в режиме SecureBoot.

Однако я не советую всем подряд экспериментировать с этим решением. Все-таки вмешиваться в процесс загрузки системы нужно осторожно и с пониманием дела. Для начала нужно хорошо разбираться - что такое UEFI и как оно все работает. В этом может сильно помочь эта статья об UUFI.

Если у вас возникли вопросы, то не стесняйтесь - задавайте.
« Последнее редактирование: 16 Июня 2016, 00:02:16 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #1 : 16 Июня 2016, 00:11:58 »
Сейчас размышляю над тем, что можно сделать для дальнейшего развития.

1. Собрать все в deb (в PPA на launchpad) с тем что бы будущие доработки приходили с обновлениями при подключенном PPA.
2. Может как-то доработать решение для более автоматической настройки загрузки в режиме SecureBoot - пока для этого надо много действий делать вручную..... Но тут есть сомнения относительно автоматизации загрузки ключей - это вообще (по моему опыту) лучше делать именно руками и через консоль настройки UEFI, а не утилитами.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн bam

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #2 : 21 Октября 2016, 22:27:18 »
Приветствую,
PPA был бы очень желателен :)

Пользователь добавил сообщение 21 Октября 2016, 22:35:45:
Хорошо бы добавить возможность использования параллельно с grub
« Последнее редактирование: 21 Октября 2016, 22:35:45 от bam »

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #3 : 22 Октября 2016, 01:02:22 »
bam, если честно, то я как-то опасаюсь оформлять это как PPA.

Решение как бы не для "хлюпиков", и я бы не советовал им пользоваться тому, кто не понимает хотя бы поверхностно того, как работает UEFI. Опять же для траблшуттинга стоит уметь работать в UEFI шеле и этот шелл доставить, если его нет в прошивке. Ну и в прошивке своего компа нужно хоть чуточку разбираться...

Т.е. решение это - для тех кто в теме. А PPA - это решение для "блондинок" - пара команд и "все зашибись".

Параллельно с GRUB - использовать можно, но груб каждый раз при своем обновлении будет перетягивать одеяло на себя ставить себя первым в загрузке. А при обновлении/сносе ядра "одеяло на себя перетянет" уже UEFI-boot. Выбирать же каждый раз вручную вариант загрузки в UEFI - довольно заморочно...
« Последнее редактирование: 22 Октября 2016, 01:23:19 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн bam

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #4 : 24 Октября 2016, 14:43:23 »
bam, если честно, то я как-то опасаюсь оформлять это как PPA.
...
Т.е. решение это - для тех кто в теме. А PPA - это решение для "блондинок" - пара команд и "все зашибись".
Не могу согласиться. PPA - старндартный и довольно удобный способ подтягивания изменений, особенно если альтернатива - обновлять файлы вручную..
Если блондинки установят этот РРА - это уже их проблемы

Цитировать
Параллельно с GRUB - использовать можно, но груб каждый раз при своем обновлении будет перетягивать одеяло на себя ставить себя первым в загрузке. А при обновлении/сносе ядра "одеяло на себя перетянет" уже UEFI-boot. Выбирать же каждый раз вручную вариант загрузки в UEFI - довольно заморочно...
не из-за того ли это происходит, что  /etc/kernel/postinst.d/zz-update-grub исполняется после /etc/kernel/postinst.d/update-notifier ?
« Последнее редактирование: 24 Октября 2016, 15:50:33 от bam »

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #5 : 24 Октября 2016, 17:26:50 »
не из-за того ли это происходит, что  /etc/kernel/postinst.d/zz-update-grub исполняется после /etc/kernel/postinst.d/update-notifier ?
А причем тут триггеры ядра? И причем тут активация триггера update-notifier?  :idiot2: :idiot2:

Дело в том - кто последним дергает efibootmgr для указания пунктов загрузки тот и оказывается на верху порядка загрузки.

Если обновление GRUB дернет efibootmgr, то его пункт загрузки вылезет на самый верх в списке порядка загрузки, а когда запустится uefiboot-update, то он пересоздает пункты загрузки под все найденные ядра и с-но уже его загрузочная запись (с самым свежим ядром) будет в топе порядка загрузки. Номера пунктов меню загрузки UEFI не имеет значения, а имеет значение как эти номера перечислены в переменной boot-order
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #6 : 24 Октября 2016, 21:35:00 »
Не надо PPA

У меня машинки с UEFI:
1) интерфейс еще старый добрый Phoenix/Award BIOS
2) уже без примитива (хотя и древнее), но как попасть в консоль я и тут не нашел

Итого: если я еще понимаю, чем чреваты такие телодвижения и что мне может все это сломать, и как потом это все исправлять, то, увы, за других я очень сомневаюсь

bam, придете вы такой умный установите блондинке. она зашла удалила\обновила... результат - кирпич. что дальше?
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #7 : 24 Октября 2016, 21:43:07 »
Ну если совсем блондинке - то ей можно. Я вон детям на ком поставил - они не то, что обновить не могут (прав нету), но и не знают, что это такое (сам обновляю, обычно - удаленно, по ssh).

Но это конечно не пример - их комп - под моим администрированием.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #8 : 22 Октября 2017, 18:45:34 »
Пардонте за некропостинг

Немного в копилку проекта.

Меня как-то сразу напрягло радикальное решение вопроса с самовольной установкой grub'а.
Блочить все ковровой бомбардировкой не есть айс. Предлагаю альтернативный метод.
APT имеет более тонкие настройки по истреблению неугодных пакетов: здесь и здесь про них пишут.
Собственно надо:
1) Вычистить исходники от старого метода ковровой блокировки
2) Добавить в /etc/apt/preferences.d файлик который будет блочить все загрузчики которые рекомендует ядро
(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)
Еще можно сделать скриптец который генерит этот файл из списка рекомендаций текущего ядра

Сам не пробовал еще, но буду. Если кто в курсе почему это не заработает - поделитесь.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #9 : 23 Октября 2017, 11:16:27 »
Yurror, да нет там ковровой бомбардировки....

У пакетов есть "зависит от" и "рекомендует". Ядро именно "рекомендует". Предложенная метода держать принудительно настройку Install-Recommends в false - это скорее подстраховка, т.к. эта настройка по умолчанию и так false.

Хотя конечно прицельный отстрел отдельных неугодных - в чём-то лучше закрытия границ от всех неугодных.

Пользователь добавил сообщение 23 Октября 2017, 11:18:57:
Но если пошла речь о принудительном отстреле - то по уму надо вообще все загрузчики отстреливать, т.е. список можно сделать и статическим, и учесть в нем все что может навредить.

Пользователь добавил сообщение 23 Октября 2017, 13:24:37:
Кстати недавно я наткнулся на необходимость передать параметры скрипту обновления пунктов загрузки.
(Нажмите, чтобы показать/скрыть)

И в последней версии я добавил возможность передать скрипту все настройки через параметры.

Т.о. сейчас для настройки пунктов загрузки UEFI используются:
1. Значения по умолчанию (частично вычисляемые по текущей конфигурации ОС), если не задано ничего иного.
2. Значения из конфигурационного файла переопределяют значения по умолчанию
3. Значения из параметров командной строки переопределяют значения из конфигурации и по умолчанию.
« Последнее редактирование: 23 Октября 2017, 13:24:37 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.066 секунд. Запросов: 23.