Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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 будут автоматически обновляться после установки нового ядра или после удаления одного из ранее установленных. А если изменений в версиях ядер и их количестве не было, то утилита ничего не будет менять. |
==== Подчистим систему ==== | ==== Подчистим систему ==== | ||