GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie funktionieren mehrere Bootloader auf einer Efi-Systempartition?

Mein ESP sieht so aus

Boot Dell fedora Microsoft

Im Boot-Verzeichnis befindet sich ein Bootloader namens bootx64.efi Was ich verstehe, ist der Standard-Bootloader, der zuerst gestartet wird. Aber im Fedora-Verzeichnis gibt es einen anderen Bootloader (grub2) namens grubx64.efi .

Was ist die Funktion jedes dieser Bootloader? Welches bietet das boot-menu ?

Akzeptierte Antwort:

bootx64.efi fängt erstmal nicht an. Meistens startet es überhaupt nicht.

Die EFI-Firmware hat ein eigenes „Boot-Menü“, analog zu dem von GRUB präsentierten Menü, aber in einer früheren Phase des Boot-Vorgangs. So wie GRUB Sie auswählen lässt, welcher Linux-Kernel ausgeführt werden soll, können Sie im EFI-Startmenü auswählen, welches EFI-Startprogramm ausgeführt werden soll – zur Auswahl stehen Dinge wie GRUB selbst oder der Windows-Bootloader. (Und wie das Menü von GRUB wird das EFI-Startmenü normalerweise nicht standardmäßig angezeigt; Sie müssen während des Starts einen Hotkey drücken, um es zu sehen.)

Die Einträge im EFI-Startmenü werden durch Konfigurationsdaten definiert, die im NVRAM des Motherboards (dem Speicher „BIOS-Einstellungen“) gespeichert sind. Diese Konfiguration wird nicht in einer Datei gespeichert, aber in Fedora sollten Sie sie mit dem efibootmgr sehen können Programm. Jeder Eintrag enthält einen für Menschen lesbaren Namen (der im Menü angezeigt wird) und einen Pfad zu einem Boot-Programm in einer EFI-Systempartition sowie eine Prioritätsnummer, die bestimmt, welcher Eintrag standardmäßig gebootet wird, wenn Sie den Hotkey nicht drücken um das Menü zu sehen.

Diese NVRAM-Starteinträge werden (normalerweise) von Betriebssystem-Installationsprogrammen erstellt. Wenn Sie ein Betriebssystem installieren und eine Bootloader-Datei in der EFI-Systempartition platzieren, fügt es auch einen Eintrag zur NVRAM-Konfiguration hinzu, sodass der neue Bootloader im EFI-Startmenü verfügbar ist. (In vielen Fällen wird dieser neue Eintrag auch zum Standard, sodass das Betriebssystem, das Sie gerade installiert haben, von selbst bootet, ohne dass Sie das EFI-Startmenü öffnen und es manuell auswählen müssen.)

Die Boot/bootx64.efi Das Programm ist ein Fallback, wenn das EFI nicht mit NVRAM-Starteinträgen konfiguriert wurde, die auf andere Startprogramme auf der Festplatte verweisen. Es ist wichtig für Wechselmedien wie bootfähige CDs und USB-Laufwerke, aber auf einer Festplatte wird es im Allgemeinen nicht verwendet. Der Windows-Installer erstellt eine Boot/bootx64.efi als Ausfallsicherung; Es ist nur eine Kopie von Microsoft/Boot/bootmgfw.efi (zumindest in Windows 7; andere Versionen sind mir nicht bekannt).

Verwandte:Wie führe ich ein Äquivalent von "head -z" aus, wenn ich die Option "-z" nicht zur Verfügung habe?

Auf meinen Systemen habe ich diese Microsoft bootx64.efi ersetzt mit einer Kopie der EFI-Shell, sodass ich, wenn ich mich irgendwie ohne NVRAM-Boot-Einträge wiederfinde und mich tatsächlich auf den Fallback-Bootloader verlasse, zu einer Shell gebracht werde, wo ich die Situation untersuchen und stattdessen eines der anderen Boot-Programme manuell ausführen kann das System einfach Windows automatisch booten zu lassen. (Ich habe auch einen Eintrag dafür im GRUB-Menü hinzugefügt, damit ich die Möglichkeit habe, die EFI-Shell auch dann zu starten, wenn das System ordnungsgemäß funktioniert.)


Linux
  1. So starten Sie Manjaro und Windows 10 dual

  2. GRUB auf EUFI-fähigem System

  3. Wie kann man feststellen, ob das spezifische System eine Boot-Partition benötigt?

  4. Wie füge ich dem Grub2-Menü einen neuen Boot-Eintrag für das Betriebssystem hinzu?

  5. So deaktivieren Sie NUMA auf EFI-Bootloadern mit GRUB2 (CentOS/RHEL 6)

Crontab Reboot:So führen Sie einen Job automatisch beim Booten aus

So starten Sie Kali Linux und Windows 10 dual

So erstellen Sie ein neues Ext4-Dateisystem (Partition) unter Linux

So booten Sie Linux Mint 20 im Rettungs-/Notfallmodus

So überprüfen/reparieren Sie das Linux-Dateisystem beim Booten

So überprüfen Sie den Systemneustartverlauf und die Startzeit in Linux