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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 11656
  • Xubuntu 16.04 (64bit)
    • Просмотр профиля
Проект на github: https://github.com/slytomcat/UEFI-Boot
wiki (rus) : http://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, 01:02:16 от Sly_tom_cat »
Индикатор для Yandex-Disk: http://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: http://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

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

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

Оффлайн bam

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

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

Оффлайн Sly_tom_cat

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

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

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

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

Оффлайн bam

  • Новичок
  • *
  • Сообщений: 45
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #4 : 24 Октябрь 2016, 15: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, 16:50:33 от bam »

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 11656
  • Xubuntu 16.04 (64bit)
    • Просмотр профиля
Re: UEFI-Boot - загрузка без загрузчиков.
« Ответ #5 : 24 Октябрь 2016, 18: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: http://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: http://help.ubuntu.ru/wiki/uefiboot

Оффлайн EvangelionDeath

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

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

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

bam, придете вы такой умный установите блондинке. она зашла удалила\обновила... результат - кирпич. что дальше?
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Sly_tom_cat

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

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

Оффлайн Yurror

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

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

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

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

Оффлайн Sly_tom_cat

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

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

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

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

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

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

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

 

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