Создание загрузочного диска с изображением с нуля как в BIOS, так и в режиме UEFI

Я сделал LiveCD, используя это руководство, плюс дополнительные поиски в Интернете, и я сделал функциональную систему, используя пакеты из репозиториев Ubuntu xenial: он может загружаться, система может использоваться, беспроводная связь работает на всех ноутбуках, которые я тестировал, и это может быть установлен с Ubiquity (я впечатлен).

Проблема в том, что я смог загрузиться только в режиме BIOS. В режиме UEFI ничего не появляется, даже GRUB Rescue, поэтому что-то совершенно не так.

Я попытался скопировать загрузчик и EFI непосредственно из ISO-файла Ubuntu, который не сработал. ISO- образ Ubuntu содержит некоторые файлы, в частности, casper / vmlinuz.efi, EFI / BOOT / bootx64.efi и EFI/BOOT/grubx64.efi, которые я не смог ни создать, ни найти. Я нашел только vmlinuz, который не имеет расширения.efi, а два других я понятия не имею, как создавать эти файлы.

Для загрузки компьютера в режиме BIOS я использую isolinux, который работает. Я попытался с syslinux загрузиться в режиме UEFI, но безуспешно, поэтому я пытаюсь использовать GRUB, как это делается в LiveCD Ubuntu.

Каковы необходимые шаги, чтобы сделать LiveCD, который я сделал, для загрузки в режиме UEFI, как это делает Ubuntu? Я считаю, что мне нужно будет создать специальные файлы. Если да, то как мне их создать?

Спасибо.

1 ответ

Решение

Вообще говоря, вам нужно установить загрузчик в режиме EFI для Linux на подготовленном вами USB-накопителе. Этот загрузчик должен храниться как EFI/BOOT/bootx64.efi на системном разделе EFI (ESP), который является разделом FAT на диске. Существует вероятность того, что на подготовленном вами диске отсутствует ESP, поэтому вам может потребоваться его создать. (Обычно достаточно обычного раздела FAT, поэтому, если на диске есть раздел FAT, вам может не потребоваться отдельный ESP.)

Сложность в том, что загрузчик, который вы записываете на диск, должен быть правильно настроен для загрузки установки на диск. GRUB взят из установки Ubuntu .iso Файл не будет работать без изменений, потому что он настроен для загрузки установщика Ubuntu, а не установки, которую вы создали на USB-накопителе. Таким образом, вы должны знать достаточно о загрузчике, чтобы знать, как его настроить, и достаточно о вашей установке, чтобы знать, какие значения поместить в файл конфигурации загрузчика.

К сожалению, GRUB 2 очень сложен в настройке загрузчика; его формат файла конфигурации довольно сложен и обычно создается специальными сценариями. Даже двоичный файл может потребоваться изменить для вашей конкретной ситуации, так как основной файл конфигурации (grub.cfg) обычно находится в корне Ubuntu (/) или же /boot раздел, означающий, что двоичный файл должен быть изменен для вашей конкретной установки.

Я написал страницу о загрузчиках EFI для Linux, которая охватывает множество альтернатив, большинство из которых проще в настройке, чем GRUB 2. Мой собственный rEFInd, вероятно, проще всего настроить и настроить, так как он пытается автоматически определять Ядра Linux, когда он запускается, и он обычно может выяснить, какие опции передать ядру для загрузки системы. Таким образом, изменения файла конфигурации, необходимые для загрузки с rEFInd, минимальны, а иногда и отсутствуют.

Одна большая оговорка в этом - безопасная загрузка. Если вы хотите, чтобы компьютер загружался с активной загрузкой, вы должны предоставить либо Shim (shimx64.efi) или PreLoader (preloader.efi) в качестве загрузчика (переименован в EFI/BOOT/bootx64.efi), с вашим последующим загрузчиком, переименованным соответствующим образом для Shim или PreLoader. Кроме того, в зависимости от рассматриваемого загрузчика, вам может потребоваться добавить ключи или хэши в прошивку при каждой загрузке диска на новом компьютере. В этом случае, вероятно, стоит столкнуться с проблемой использования GRUB 2 на новом компьютере, поскольку Ubuntu предоставляет все компоненты, необходимые для того, чтобы заставить компьютер загружать Ubuntu без путаницы с ключами или хэшами.

Другие вопросы по тегам