2016-02-08 2 views
2

Если я использую GRUB2 на разделе с поддержкой GPT, как загрузчик «знает», где найти его файл конфигурации и другие файлы второго этапа?Как загрузчик GRUB2 UEFI знает, где искать файл конфигурации (или где находятся файлы 2-го этапа)?

Примечание. Я нашел несколько упоминаний о файле конфигурации, который находится в той же папке, что и загрузчик EFI GRUB, и содержит целую нагрузку «основного» файла конфигурации из указанного раздела, но это определенно неверно - есть только один файл «something.efi».

ответ

3

Есть фактические несколько способов это может произойти:

  • Загрузите встроенный конфигурационный файл.
  • Загрузите файл конфигурации в том же каталоге, что и двоичный файл 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.

+0

Таким образом, они делают (патч) теперь уникальный загрузчик, исполняемый для каждой установки. Но как они могут подписывать его для безопасной загрузки в этом случае? – Sap

+0

И они также могут использовать индексы разделов GPT, а не UID. Но индексы не являются постоянными для GPT. GPT имеет UID разделов для таких целей. – Sap

+0

Все дистрибутивы Linux, которые поддерживают UEFI Secure Boot, с утилитой под названием «shim», которая сама подписана с ключом, хранящимся UEFI, и, в свою очередь, управляет локальным хранилищем ключей. https://github.com/mjg59/shim Отсутствие комментариев по индексу GPT действительно, кроме того, что я предполагаю, поскольку ожидаемый рабочий процесс заключается в повторном запуске grub-install, если вы измените свой раздел, который все равно будет разрешен , Он работает одинаково независимо от схемы разбиения. – unixsmurf

Смежные вопросы