Я пытаюсь использовать Grub2 в качестве менеджера загрузки в системе EFI в автономном режиме. (На единственном постоянном жестком диске установлена OS X; диски Linux и Windows могут присутствовать или отсутствовать время от времени, поэтому и используется автономный режим.)
Я использую SuperGrub2Disk, который является исполняемым файлом EFI, и, насколько я понимаю, исполняемый файл Grub2 в этом режиме имеет встроенный образ диска, который он монтирует для своего корневого раздела, с копией своего собственного файла конфигурации внутри.
Я хотел бы переопределить или изменить этот файл конфигурации внешним grub.cfg. Я пробовал поместить его рядом с исполняемым файлом grub EFI или в корень раздела ESP, но он не распознается. Я также пробовал загрузить его из командной строки grub с помощью следующей команды:
configfile (hd3,gpt1)/grub.cfg
Похоже, это не дает никакого эффекта, кроме очистки экрана, хотя файл конфигурации присутствует, что подтверждается командой ls.
Может ли кто-нибудь подсказать, есть ли способ использовать внешний файл конфигурации с автономным BLOB-объектом EFI?
решение1
Бинарники GRUB 2 включают жестко закодированные ссылки на свои файлы конфигурации. Я не особо следил за всеми кровавыми подробностями, но, насколько я понимаю, есть два бинарных файла EFI GRUB 2 для Ubuntu на системах AMD64/x86-64:
grub2-efi-amd64
-- Это версия GRUB 2, которая используется на компьютерах,нетиспользовать Secure Boot. Насколько я понимаю, сам бинарник связан ствойкомпьютер из предварительно скомпилированных компонентов, включенных в пакет. Полученный двоичный файл ссылается наgrub.cfg
файл в каталоге установки Linux/boot/grub
. Таким образом, вы не можете использоватьgrubx64.efi
двоичный файл, установленный из этого пакета на одном компьютере, на другом, поскольку двоичный файл настроен для компьютера, на котором он был создан.grub2-efi-amd64-signed
-- Эта версия GRUB 2 скомпилирована и скомпонована в системе Canonical, поэтому ее можно подписать с помощью ключа Secure Boot. Одним из побочных эффектов требования подписи двоичного файла является то, что его невозможно настроить для вашей системы, и в результате эта версия ищетgrubx64.efi
в том же каталоге, что и двоичный файл дляgrub.cfg
. В системе Ubuntu этотgrub.cfg
файл ищет/boot/grub/grub.cfg
, но в принципе его можно настроить для чего-то другого.
Таким образом, в вашем случае вы не можете использовать неподписанный двоичный файл GRUB 2; если вы хотите использовать стандартный двоичный файл Ubuntu GRUB 2, вы должны использовать подписанный. В качестве альтернативы вы можете собрать свой собственный двоичный файл, как описаноздесь,среди других мест.
Но в вашем случае я не думаю, что GRUB 2 действительно оптимален. ОбаРЕМОНТ(который сейчас заброшен) и моя его вилка,пересмотреть,функция динамического сканирования доступных загрузчиков. Таким образом, если вы устанавливаете rEFIt или rEFInd на свойвнутренние диски Системный раздел EFI (ESP)и поместите загрузчики для ваших ОС на соответствующие сменные носители, rEFIt/rEFInd предоставит вам варианты загрузки этих ОС, если и только если подключен соответствующий диск. Однако это поведение будет зависеть от правильного управления вашими загрузчиками, размещения каждого из них на ESP соответствующего диска; если все ваши загрузчики хранятся на ESP вашего внутреннего диска, rEFIt/rEFInd будет постоянно показывать неработающие параметры ОС, как это делал бы GRUB 2. В любом случае использование rEFIt или rEFInd избавит вас от необходимости погружаться в дебри ручной настройки GRUB 2.
решение2
Я бы ожидал, что grub.cfg, размещенный в том же каталоге, будет считываться и выполняться образом GRUB UEFI, при этом оба они обычно хранятся в ESP, но я не так уж много знаю о настройках Mac. (К слову, встроенная конфигурация имеет очень ограниченную функциональность.)
Возможно, создание образа GRUB самостоятельно без встроенной конфигурации приблизит вас на один шаг к решению проблемы. Эти сообщения могут помочь:
- 2.1 Создание двоичного файлаи2.2 Создание файла конфигурациивКак создать загрузочный USB-носитель только с UEFI?
- Добавить (загрузочный) раздел для Mac
решение3
Можно создать автономное приложение GRUB 2 UEFI, содержащее изолированную установку GRUB 2, которая считывает файл конфигурации в том же каталоге, что и двоичный файл приложения.
Этот процессописанный в вики Arch Linux, но это можно сделать на любом дистрибутиве (при условии соответствующей настройки путей).