Uefi-Boot Сравнение версий

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:uefiboot [2018/03/23 23:25]
[Ссылки]
wiki:uefiboot [2019/03/14 14:46] (текущий)
[Инициализация синхронизации пунктов загрузки]
Строка 41: Строка 41:
 ==== Утилита для обновления меню загрузки UEFI ==== ==== Утилита для обновления меню загрузки UEFI ====
  
-Я написал эту утилиту на BASH, который практически не знаю, поэтому,​ наверняка,​ задачу можно было решить и более изящно,​ но я приведу тот код, который у меня заработал.+Я написал эту утилиту на BASH, который практически не знаю((почти за каждой командой лезу в гугл)), поэтому,​ наверняка,​ задачу можно было решить и более изящно,​ но я приведу тот код, который у меня заработал.
  
 === Конфигурационный файл === === Конфигурационный файл ===
Строка 59: Строка 59:
 Собственно скрипт утилиты располагается в /​usr/​bin/​uefiboot-update,​ его [[https://​github.com/​slytomcat/​UEFI-Boot/​blob/​master/​usr/​bin/​uefiboot-update|код на GitHub’е]]:​ Собственно скрипт утилиты располагается в /​usr/​bin/​uefiboot-update,​ его [[https://​github.com/​slytomcat/​UEFI-Boot/​blob/​master/​usr/​bin/​uefiboot-update|код на GitHub’е]]:​
  
-Код достаточно примитивный:​ после определения необходимых параметров, сначала мы вычищаем все пункты меню с названиями вида "​Ubuntu....",​ а затем добавляем в порядке возрастания версии ядра новые пункты меню. Важность порядка добавления в том, что самый последний добавленный пункт становится самым первым в приоритете загрузки. И важно, что бы первым в приоритете стояла загрузка самого свежего ядра.+Код достаточно простой
  
-Приоритет конечно ​можно поменять отдельно, но раз уж мы все пункты Ubuntu* зачистили, то и создавать их надо ​все, а раз ​так, то создание в нужном порядке избавляет нас от лишних действий по заданию нужного приоритета.+Сначала ​определяем необходимые настройки. После определения необходимых параметров ​по умолчанию код читает конфигурационный файла потом параметры командной строки. Таким образом все необходимые настройки берутся из трех ​мест с приоритетом от дефолтов (минимальный приоритет) через конфиг, до параметров командной строки (самый высокий ​приоритет).
  
-В скрипте предусмотрена инициализация переменных настройки ROOT, OPTINS и ROOTFLAGS, которая обеспечивает работу утилиты без дополнительных настроек в большинстве стандартных ситуаций. Но, например,​ для настройки загрузки системы в режиме SecureBoot нужно будет обязательно указать значение переменной K_SUFFIX в файле /​etc/​uefiboot.conf.+Затем определяются версии существующих в /boot ядер и версии указанные в загрузочных записях UEFI. 
 +Сравнивая эти два списка сначала удаляются те загрузочные записи для которых не осталось ядер в /boot, а затем добавляются записи для тех ядер из /boot, для которых еще не было загрузочных записей UEFI. Порядок добавления организован так, что последним добавляется ядро с самой новой версией. Это автоматически делает эту запись первой в порядке загрузки,​ т.е. по умолчанию,​ после установки нового ядра загружаться будет именно оно. Однако если вы ставите более старое ядро руками,​ то оно будет добавлено последним и следующая загрузка будет именно в то ядро, которое вы установили последним. 
 + 
 +Приоритет загрузки конечно можно поменять вручную через efibootmgr, если вас не устроил тот что, сделала утилита. 
 + 
 +В скрипте предусмотрена ​автоматическая ​инициализация переменных настройки ROOT, OPTIONS, ​ROOTFLAGS ​др., которые обеспечивает работу утилиты без дополнительных настроек в большинстве стандартных ситуаций. Но, например,​ для настройки загрузки системы в режиме SecureBoot нужно будет обязательно указать значение переменной K_SUFFIX в файле /​etc/​uefiboot.conf ​или в параметре командной строки -s.
 ==== Инициализация синхронизации пунктов загрузки ==== ==== Инициализация синхронизации пунктов загрузки ====
  
Строка 77: Строка 82:
 </​code>​ </​code>​
  
-Теперь пункты загрузки UEFI будут автоматически обновляться после установки нового ядра или после удаления одного из ранее установленных. +Теперь пункты загрузки UEFI будут автоматически обновляться после установки нового ядра или после удаления одного из ранее установленных. ​А если изменений в версиях ядер и их количестве не было, то утилита ничего не будет менять.
 ==== Подчистим систему ==== ==== Подчистим систему ====