Есть фактические несколько способов это может произойти:
- Загрузите встроенный конфигурационный файл.
- Загрузите файл конфигурации в том же каталоге, что и двоичный файл GRUB.
- Загрузите конфигурационный файл с пути, принятого по адресу
grub-mkimage
(вызывается grub-install
) время выполнения.
Последнее, вероятно, функциональность вы действительно просят - и это сочетание имени файла конфигурации по умолчанию (grub.cfg
), на префикс (по умолчанию /boot/grub
, но может быть явно указано в grub-mkimage
) и grub имя раздела для раздела, где находится префикс.
Если я бегу strings /boot/efi/EFI/debian/grubx64.efi | tail -1
на моей текущей рабочей станции, она выводит сохраненное значение: (,gpt2)/boot/grub
, говоря grubx64.efi
искать его конфигурационный файл в/загрузки/жратвы на GPT раздела 2. Бит перед запятой (устройство GRUB диск имя) заполняется во время выполнения, на основе которого загружается сам образ grubx64.efi
.
Динамически загружаемые модули также будут искать в этом месте, но в каталоге архитектуры/платформы - в данном случае /boot/grub/x86_64-efi
.
Таким образом, они делают (патч) теперь уникальный загрузчик, исполняемый для каждой установки. Но как они могут подписывать его для безопасной загрузки в этом случае? – Sap
И они также могут использовать индексы разделов GPT, а не UID. Но индексы не являются постоянными для GPT. GPT имеет UID разделов для таких целей. – Sap
Все дистрибутивы Linux, которые поддерживают UEFI Secure Boot, с утилитой под названием «shim», которая сама подписана с ключом, хранящимся UEFI, и, в свою очередь, управляет локальным хранилищем ключей. https://github.com/mjg59/shim Отсутствие комментариев по индексу GPT действительно, кроме того, что я предполагаю, поскольку ожидаемый рабочий процесс заключается в повторном запуске grub-install, если вы измените свой раздел, который все равно будет разрешен , Он работает одинаково независимо от схемы разбиения. – unixsmurf