EFI und GRUB2: Wo bekomme ich Binärdateien und wie mounte ich das Bootsystem?

EFI und GRUB2: Wo bekomme ich Binärdateien und wie mounte ich das Bootsystem?

UEFI und GRUB2

Kennt jemand die Site, auf der man die Binärdateien
(bootia32.efi und bootx64.efi) zum Booten von Grub2 erhält ...
auch die GRUB2-Binärdateien ... und eine gute Tutorial-Hilfe dazu ...

Ich möchte eine Multi-Boot-Diskette erstellen, etwa so ...

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

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

Antwort1

Die Namen bootx64.efiund bootia32.efibeziehen sich auf das EFI-Fallback-Bootloaderprogramm. Dieses Programm kannirgendetwas-- GRUB, der Windows-Bootloader, eine EFI-Shell, Malware usw. Sie sollten daher nicht nach einem Programm mit diesem Namen suchen; Sie sollten vielmehr nach einem Programm mit seinem tatsächlichen Namen suchen (in Ihrer Frage GRUB) und es auf Ihrem Bootmedium in EFI\BOOT\bootx64.efioder EFI\BOOT\bootia32.efi(je nach Plattform) umbenennen. Tatsächlich sollten Sie diesen Namen wahrscheinlich überhaupt nicht verwenden, wenn Sie auf der internen Festplatte eines Computers installieren – verlassen Sie sich stattdessen darauf, dass der integrierte Bootmanager des EFI sich den Namen der Binärdatei merkt, die Sie starten möchten. (Eine Ausnahme wäre, wenn Ihre Firmware stark beschädigt ist, was bei manchen immer noch der Fall ist.) Die boot{arch}.efiDateinamen waren ursprünglich ausschließlich für die Verwendung auf bootfähigen Wechseldatenträgern vorgesehen, beispielsweise für Betriebssysteminstallationsprogramme und Notfallwiederherstellungstools; sie werden jedoch auch für Bootloader der letzten Instanz auf internen Festplatten verwendet – beispielsweise, wenn die NVRAM-Einträge beschädigt wurden.

Was den Hauptteil Ihrer Frage betrifft, werden GRUB-Binärdateien in der Regel von und für einzelne Distributionen erstellt. Soweit ich weiß, gibt es keine offizielle Quelle für "die" GRUB-Binärdatei für EFI. Der übliche Weg, umAGRUB-Binärdateien sind für die Installation einer Linux-Distribution gedacht, die sie verwendet. Sie werden normalerweise als installiert /boot/efi/EFI/{distname}/grubx64.efi, wobei {distname}ein von der Distribution verwendeter Code ist, z. B. ubuntufür Ubuntu oder fedoraFedora. Beachten Sie jedoch, dass das einfache Verschieben und Umbenennen dieser Binärdatei möglicherweise nicht funktioniert, da sie möglicherweise fest codierte Pfade zu ihrer Konfigurationsdatei enthält. Wenn der Zielcomputer ebenfalls Secure Boot verwendet, müssen Sie die Datei shimx64.efioder shim.efiin den Ersatzdateinamen umbenennen und grubx64.efiunter diesem Namen in dasselbe Verzeichnis wie Shim kopieren. Wenn Sie auf einem Computer installieren, müssen Sie sich nicht mit dem Verschieben oder Umbenennen von GRUB herumschlagen. Installieren Sie es einfach normal und es sollte den Startvorgang übernehmen – zumindest bis Sie die nächste Distribution installieren oder die Startreihenfolge neu konfiguriert wird.

Bei einem System mit mehreren Linux-Distributionen kann GRUB etwas umständlich sein. Das liegt daran, dass GRUB für die Erstellung seines Menüs mit Startoptionen auf eine komplexe Konfigurationsdatei angewiesen ist, und diese Konfigurationsdatei wird innerhalb der Distribution verwaltet, die GRUB installiert hat. Das funktioniert gut, wenn Sie nur eine Linux-Distribution installieren, aber bei mehreren Distributionen müssen Sie GRUB in der Distribution aktualisieren, aus der es stammt, um neue Kernel anzuzeigen, die von IhrerandereDistributionen. Die Alternative besteht darin, einen GRUB von einem anderen zu laden. Das funktioniert zwar besser, ist aber beim Booten umständlicher.

Ein anderer Ansatz ist die Verwendung eines Bootmanagers, der weniger komplexe Konfiguration erfordert.rEFIndkann dies tun; es erkennt Linux-Kernel bei jedem Booten, sodass es nach der Einrichtung den neuesten Kernel booten kann, ohne seine eigene Konfiguration zu ändern. Andere Bootloader wie SYSLINUX und ELILO erfordern eine GRUB-artige Konfiguration in einer zentralisierten Konfigurationsdatei, aber diese Datei ist einfacher und daher leichter von Hand zu pflegen. Wenn Sie eines dieser Tools auf einem Wechseldatenträger verwenden, müssen Sie es in den boot{arch}.efiDateinamen kopieren.

Es gibt noch zahlreiche weitere Vorbehalte und Besonderheiten, aber ohne mehr über den beabsichtigten Einsatzzweck und die Hardware zu wissen, kann ich hier nicht auf alle eingehen, ohne ein kleines Buch zu schreiben. Weitere Informationen finden Sie auf einer oder mehreren der folgenden Websites:

Antwort2

Wenn Sie nur versuchen, mit Grub einen UEFI-PXE-Boot oder einen UEFI-HTTP-Boot durchzuführen, erhalten Sie die vorgefertigten Binärdateien hier ohne Installation: https://images.maas.io/ephemeral-v3/stable/bootloaders/uefi/amd64/20230222.0/

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

Dekomprimieren Sie sie, Sie erhalten

bootx64.efi
grubx64.efi

Anschließend bereiten Sie einen TFTP-Server und einen HTTP-Server für deren Bereitstellung vor und bereiten grub/grub.cfg über TFTP/HTTP vor.

Ich habe die oben beschriebene Methode erfolgreich angewendet.

Es gibt auch einen anderen praktischen Ort, wo Sie sie ohne Installation erhalten können. http://archive.ubuntu.com/ubuntu/dists/jammy/main/uefi/grub2-amd64/current/

(Sie können Jammy in Focal oder Bionic ändern)

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

Ich habe es nicht ausprobiert, ich vermute, es grubnetx64.efi.signedbedeutet die Nettoversion von grubx64.efi.signed. Aber der Unterschied zwischen *.efi.signed und *.efi ist mir nicht klar.

Und die bootx64.efi finden Sie hier http://archive.ubuntu.com/ubuntu/dists/jammy/main/signed/shim-amd64/current/, benennen Sie die dekomprimierte Datei einfach in bootx64.efi um.

verwandte Informationen