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.efi
und bootia32.efi
beziehen 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.efi
oder 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}.efi
Dateinamen 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. ubuntu
für Ubuntu oder fedora
Fedora. 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.efi
oder shim.efi
in den Ersatzdateinamen umbenennen und grubx64.efi
unter 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}.efi
Dateinamen 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:
- Adam Williamsons Blogeintrag zur Funktionsweise von EFI– Diese Seite beschreibt die Theorie hinter dem Booten im EFI-Modus.
- Eine Frage und Antworten zu den Unterschieden zwischen BIOS- und EFI-Boot auf Superuser.com– Dies bietet die Grundlagen des Vorangegangenen, ist jedoch prägnanter.
- Meine Seite zur Installation von Linux auf EFI-Systemen– Diese Seite ist eine praktischere Einführung in das Booten im EFI-Modus als das Blog von Adam Williamson.
- Meine Seite zu EFI-Bootloadern für Linux– Auf dieser Seite werden die EFI-Bootloaderoptionen für Linux-Systeme beschrieben.
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.signed
bedeutet 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.