EFI и GRUB2 где взять двоичные файлы и как смонтировать загрузочную систему

EFI и GRUB2 где взять двоичные файлы и как смонтировать загрузочную систему

UEFI и GRUB2

Кто-нибудь знает сайт, где можно получить двоичные файлы
(bootia32.efi и bootx64.efi) для загрузки grub2...
а также двоичные файлы GRUB2... и хорошее руководство по этой теме...

Хочу сделать мультизагрузочный диск, что-то вроде этого...

EFI
    \BOOT
        \bootia32.efi
        \bootx64.efi
        \<grub-binaries>
        \<grub-background-image>
        \<grub-configuration-file>

    \AndroidX86v6
    \Microsoft
    \Ubuntu
    \Tails
    \Kali
    ...

решение1

Имена bootx64.efiи bootia32.efiотносятся к программе EFI fallback boot loader. Эта программа может бытьчто-либо-- GRUB, загрузчик Windows, оболочка EFI, вредоносное ПО и т. д. Таким образом, вам не следует искать программу по этому имени; вместо этого вам следует искать программу по ее фактическому имени (GRUB в вашем вопросе) и переименовывать ее в EFI\BOOT\bootx64.efiили EFI\BOOT\bootia32.efi(в зависимости от платформы) на вашем загрузочном носителе. Фактически, если вы устанавливаете на внутренний жесткий диск компьютера, вам, вероятно, вообще не следует использовать это имя -- вместо этого вам следует положиться на собственный встроенный менеджер загрузки EFI, который запомнит имя двоичного файла, который вы хотите запустить. (Исключением может быть случай, если ваша прошивка сильно повреждена, как некоторые до сих пор.) Имена файлов boot{arch}.efiизначально предназначались исключительно для использования на загрузочных съемных дисках, таких как установщики ОС и средства аварийного восстановления; но они также используются для загрузчиков последней инстанции на внутренних жестких дисках -- скажем, когда записи NVRAM были повреждены.

Что касается основной части вашего вопроса, то бинарные файлы GRUB, как правило, собираются отдельными дистрибутивами и для них; насколько мне известно, официального источника для "того" бинарного файла GRUB для EFI нет. Обычный способ получитьаДвоичный файл GRUB — это установка дистрибутива Linux, который его использует. Обычно он устанавливается как /boot/efi/EFI/{distname}/grubx64.efi, где {distname}— код, используемый дистрибутивом, например, ubuntuдля Ubuntu или fedoraFedora. Однако следует отметить, что простое перемещение и переименование этого двоичного файла может не сработать, поскольку у него могут быть жестко заданы пути к его файлу конфигурации. Если целевой компьютер также использует Secure Boot, вам нужно будет переименовать файл shimx64.efiили shim.efiкак резервное имя файла и скопировать grubx64.efi, используя это имя, в тот же каталог, что и Shim. Если вы устанавливаете на один компьютер, вам не нужно беспокоиться о перемещении или переименовании GRUB; просто установите его в обычном режиме, и он должен взять на себя процесс загрузки — по крайней мере, пока вы не установите следующий дистрибутив или что-то не изменит порядок загрузки.

Для системы с несколькими дистрибутивами Linux GRUB может быть немного громоздким. Это связано с тем, что GRUB использует сложный файл конфигурации для создания своего меню параметров загрузки, и этот файл конфигурации поддерживается в дистрибутиве, установившем GRUB. Это работает нормально, когда вы устанавливаете только один дистрибутив Linux, но с несколькими дистрибутивами вам необходимо обновить GRUB в дистрибутиве, из которого он пришел, чтобы представить новые ядра, установленные с вашегодругойдистрибутивы. Альтернативой является цепочная загрузка одного GRUB из другого, что может работать лучше, но более обременительно во время загрузки.

Другой подход — использовать менеджер загрузки, который требует менее сложной конфигурации. Мой собственныйпересмотретьможет это сделать; он обнаруживает ядра Linux при каждой загрузке, поэтому после настройки он может загрузить последнее ядро ​​без изменения собственной конфигурации. Другие загрузчики, такие как SYSLINUX и ELILO, требуют конфигурации в стиле GRUB в централизованном файле конфигурации, но этот файл проще и, следовательно, его легче поддерживать вручную. Если вы используете любой из этих инструментов на съемном диске, вам нужно будет скопировать его в boot{arch}.efiимя файла.

Есть множество других предостережений и особенностей всего этого, но без знания вашего предполагаемого использования и оборудования я не могу вдаваться в них здесь, не написав небольшую книгу. Вы можете захотеть проверить один или несколько из следующих сайтов для получения дополнительной информации:

решение2

Если вы просто пытаетесь использовать grub для загрузки UEFI PXE или загрузки UEFI HTTP, вы можете получить готовые двоичные файлы здесь без какой-либо установки: https://images.maas.io/ephemeral-v3/stable/bootloaders/uefi/amd64/20230222.0/

shim-signed.tar.xz
grub2-signed.tar.xz

Распакуйте их, вы получите

bootx64.efi
grubx64.efi

Затем вы подготавливаете TFTP-сервер и HTTP-сервер для их обслуживания и подготавливаете grub/grub.cfg через TFTP/HTTP.

Я успешно пользуюсь вышеуказанным способом.

Есть еще одно удобное место, где вы можете получить их без какой-либо установки. http://archive.ubuntu.com/ubuntu/dists/jammy/main/uefi/grub2-amd64/current/

(вы можете изменить джемми на фокусный или бионический)

...
grubnetx64.efi
grubnetx64.efi.signed
grubx64.efi
grubx64.efi.signed

Я не пробовал, думаю, это grubnetx64.efi.signedчистая версия grubx64.efi.signed. Но мне не ясна разница между *.efi.signed и *.efi.

А bootx64.efi можно найти здесь http://archive.ubuntu.com/ubuntu/dists/jammy/main/signed/shim-amd64/current/, просто переименуйте распакованный файл в bootx64.efi.

Связанный контент