EFI \ boot \ bootx64.efi vs EFI \ ubuntu \ grubx64.efi vs /boot/grub/x86_64-efi/grub.efi vs C: \ Windows \ Boot \ EFI \ * (Deutsch)

Ich habe Ubuntu 19 64bit neben Windows 10 64bit installiert und festgestellt, dass ich 3 verschiedene EFI-Dateien an verschiedenen Speicherorten habe:

EFI\boot\bootx64.efi EFI\ubuntu\grubx64.efi /boot/grub/x86_64-efi/grub.efi 

Was ist der Unterschied zwischen diesen drei?

Kommentare

  • In der Regel installieren beide Windows & grub2 bootx64. efi als Fallback- oder Festplatten-UEFI-Starteintrag. Dies ist auch die Standardpfaddatei & für alle externen Geräte. Sie sollten sowohl /EFI/ubuntu/grubx64.efi als auch /EFI/ubuntu/shimx64.efi haben. Shim ist für den sicheren Start vorgesehen, startet jedoch bei ausgeschaltetem sicherem Start. nicht sicher, warum wir dann noch Grub haben? Ich bin mir nicht sicher, woher du grub.efi kommst. Sie müssen irgendwann eine andere Distribution installieren, die den Standard-Grub-Eintrag verwendet.
  • Ich suche nach einem Multi-Linux-Distribution-USB-Laufwerk mit EFI (ich habe bereits eines für MBR erstellt, aber nicht ' funktioniert nicht auf neueren Computern mit BIOS, die nur EFI unterstützen) und hat diese Seite gefunden, die Ihre Fragen beantwortet und EFI sehr detailliert erklärt. Da es für eine Antwort groß ist, setze ich ' nur den Link, falls Sie verstehen möchten, wie alles funktioniert: rodsbooks. com / efi-bootloader

Antwort

EFI\boot\bootx64.efi: Fallback-Bootloader-Pfad

Dies ist der einzige Bootloader-Pfadname, nach dem die UEFI-Firmware auf 64-Bit-X86-Systemen ohne bereits vorhandene NVRAM-Starteinstellungen sucht. Daher möchten Sie diesen verwenden Wechselmedien.

Windows installiert automatisch eine Kopie seines Bootloaders auf diesem Pfad. Bei der Installation von GRUB kann der Befehl grub-install (oder grub2-install je nach Linux-Distribution) hier auch eine Kopie des jeweiligen Bootloaders ablegen, falls dies der Fall ist noch nicht vorhanden. Wenn Sie möchten, können Sie grub-install --removable verwenden, um die Installation auf dem Fallback-Startpfad anzuweisen, oder grub-install --force-extra-removable, um einen vorhandenen Bootloader im zu überschreiben Fallback-Pfad und ersetzen Sie ihn durch GRUB.

Wenn Sie einen Secure Boot-kompatiblen USB-Stick für UEFI erstellen möchten, sollten Sie eine Kopie des Shims als EFI\boot\bootx64.efi und eine Kopie von GRUB als EFI\boot\grubx64.efi, da der Shim-Bootloader grubx64.efi in demselben Verzeichnis sucht, in dem sich der Shim-Bootloader befindet in.

Bootloader-Pfad für ein fest installiertes Betriebssystem

Wenn ein Betriebssystem dauerhaft auf einem UEFI-System installiert ist, gibt es einen neuen Schritt, der absolut nicht vorhanden war klassisches BIOS. Bei der Installation des Bootloaders werden vier Dinge in den NVRAM-Speicher geschrieben, in dem sich die Firmware-Einstellungen befinden:

  • Pfadname des Bootloaders auf der EFI-Systempartition (ESP), in der sich die Bootloader befinden.
  • die GUID der ESP-Partition
  • ein beschreibender (benutzerfreundlicher) Name für diese bestimmte Bootloader-Instanz
  • optional einige Daten für den Bootloader

Unter Windows lautet der Standard-UEFI-Pfadname für den Windows-Startvorgang \EFI\Microsoft\Boot\bootmgfw.efi und der beschreibende Name lautet " Windows Boot Manager ". Die optionalen Daten scheinen einen GUID-Verweis auf etwas in der BCD-Konfigurationsdatei des Windows-Bootloaders zu enthalten.

Für Ubuntu sollte der Pfadname \EFI\Ubuntu\grubx64.efi sein, wenn Sie dies nicht tun „Benötigt keine Secure Boot-Unterstützung oder \EFI\Ubuntu\shimx64.efi, wenn das Secure Boot-Shim verwendet wird. Der beschreibende Name lautet einfach " ubuntu " und die optionalen Daten werden nicht verwendet.

In Ubuntu werden diese UEFI NVRAM-Starteinstellungen können mit dem Befehl sudo efibootmgr -v angezeigt werden. Unter Windows können Sie eine Eingabeaufforderung als Administrator starten und dann den Befehl bcdedit /enum firmware verwenden, um die Einstellungen anzuzeigen.

Die UEFI-Spezifikation Es gibt eine Standardkonvention, nach der jeder Anbieter den Bootloader für ein fest installiertes Betriebssystem im Pfad \EFI\<vendor name> auf dem ESP platzieren sollte, sodass das gleichzeitige Vorhandensein mehrerer UEFI-Bootloader auf demselben ESP tatsächlich unterstützt wird und sollte die Dinge einfacher machen als mit einem klassischen BIOS, das einen einzelnen Master-Boot-Datensatz pro Festplatte hatte.

/boot/grub/x86_64-efi/grub.efi: eine temporäre Datei für grub-install

Wenn grub-install verwendet wird, wird zuerst das Dienstprogramm grub-mkimage verwendet, um ein GRUB-Kernabbild : Auf einem UEFI-System wird diese Datei unter /boot/grub/x86_64-efi/grub.efi und / oder .../core.efi gespeichert wird auf die EFI-Systempartition kopiert und von grub-install zu den UEFI-NVRAM-Starteinstellungen hinzugefügt.Die Kopie in /boot/grub/x86_64-efi/*.efi wird beim Booten überhaupt nicht verwendet, kann jedoch nützlich sein, wenn das ESP aus irgendeinem Grund beschädigt wird.

Hinweis: Unter Debian / Ubuntu enthält das generierte GRUB-Core-Image einen eingebauten UUID-Verweis auf das Dateisystem, das die /boot -Verzeichnis, sodass Sie nicht nur eine Kopie von /boot/grub/x86_64-efi/grub.efi oder grubx64.efi erstellen können das ESP und transplantieren Sie es auf ein Wechselmedium: Es wird nur versucht, die eindeutige UUID Ihres /boot -Dateisystems zu finden, und es wird in den Rettungsmodus versetzt, wenn es nicht gefunden wird. Wenn ich mich richtig erinnere, sollte der GRUB von RedHat / CentOS / Fedora besser für die Transplantation auf Wechselmedien geeignet sein.

Sicherer Start: shimx64.efi und die Gründe dafür

Für den sicheren Start muss ein Bootloader mit einem Zertifikat signiert sein, das in der NVRAM-Variablen db des Systems oder dem SHA256 des Bootloaders enthalten ist Hash muss in derselben NVRAM-Variablen auf der Whitelist stehen. Ein SHA256-Hash stimmt nur mit einer bestimmten Version eines bestimmten Bootloaders überein, sodass Updates nur möglich sind, wenn auch die Firmware-Variable aktualisiert wird. Daher sind die Zertifikate der richtige Weg.

Leider sind viele Systemanbieter Die Produkte enthalten nur einige Secure Boot-Zertifikate: häufig nur das herstellereigene Zertifikat (für Firmware-Updates und Hardware-Debugging- / OEM-Konfigurationstools) und die Secure Boot-Zertifikate von Microsoft. Auf einigen Systemen können Sie die Liste der Secure Boot-Zertifikate bearbeiten Zertifikate über Firmware-Einstellungen (= " BIOS-Einstellungen "), andere jedoch nicht. Daher war eine unabhängige Lösung erforderlich.

Microsoft bietet einen UEFI-Bootloader-Signaturdienst für jedermann an, aber zumindest anfangs war die Bearbeitungszeit für das Signieren ziemlich lang, sodass die Anforderung, jede Version von GRUB direkt zu signieren, dazu geführt hätte Inakzeptable Verzögerungen bei Bootloader-Updates. Um das Problem zu lösen, wurde der Shim-Bootloader entwickelt: Es ist im Grunde das einfachste vernünftige UEFI-Programm, das der Liste der akzeptierten Secure Boot-Zertifikate ein oder mehrere Zertifikate hinzufügt. Die Einfachheit wird hoffentlich die Notwendigkeit verringern, das Shim selbst zu aktualisieren, also das Öffnen -Quelle Betriebssystem-Distributionen (Linux und andere) können ihre Version des Shims nur einmal von Microsoft signieren lassen und dann jede Version von GRUB mit ihren eigenen Zertifikaten signieren, deren öffentlicher Teil in den Shim eingebettet ist und es Secure Boot ermöglicht, die Distribution zu akzeptieren. “ s Version von GRUB.

Kommentare

  • Vielen Dank für die Antwort. Übrigens, AFAIK bootmgfw.efi ist ' kein Windows-Bootloader, ' ist Windows Boot Manager, Dies ruft den Windows-Bootloader \Windows\System32\winload.efi auf. Was meinst du auch mit NVRAM? CMOS?
  • Ich habe versucht, nicht zu ausführlich zu sein, und es sieht so aus, als hätte ich das Problem mit dem " Windows-Bootloader " zu stark vereinfacht . Und ja, mit NVRAM meine ich den nichtflüchtigen Speicher, der die Firmware-Einstellungen enthält, der auf klassischen PCs auch als CMOS-Speicher bezeichnet wurde, auf modernen Systemen jedoch möglicherweise eine andere Technologie als CMOS (Complementary Metal Oxide Semiconductor) verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.