Was bedeutet es, wenn Sie keinen Linux-Bootloader installieren und stattdessen UEFI verwenden?

440
user5507535

Vor der UEFI-Installation war zum Installieren eines Betriebssystems ein Bootloader erforderlich. Mit der Einführung von UEFI werden viele UEFI-Firmwares mit einem anständigen Bootmanager und Bootloader geliefert, mit denen der Benutzer das Betriebssystem direkt von diesem Betriebssystem aus starten kann.

Wenn Sie keinen Bootloader wie GRUB installieren, was sind die Auswirkungen?

0

2 Antworten auf die Frage

1
Rod Smith

Mit der Einführung von UEFI verfügen viele UEFI-Firmwares über einen anständigen Bootmanager und einen Bootloader

Das ist nur halb wahr. (Weniger als die Hälfte, abhängig von Ihrer Definition von "anständig".) Es gibt zwei Arten von Programmen, deren Namen oft austauschbar verwendet werden, die sich jedoch sehr unterscheiden:

  • Bootmanager - Diese Tools bieten ein Menü oder eine andere Art von Benutzeroberfläche, über die Benutzer eine Bootoption auswählen können, die der Bootmanager dann ausführt. Dies sind grundsätzlich Werkzeuge für die Benutzeroberfläche. Etwas, das nur ein Boot-Manager ist, ist zum Starten eines Betriebssystems nicht ausreichend. etwas anderes ist dafür nötig ....
  • Bootloader - Diese Tools laden einen OS-Kernel (und häufig zusätzliche Dinge wie eine Linux-RAM-Datei [initrd]) in den Arbeitsspeicher und geben dem Kernel die Kontrolle über das Betriebssystem. Ein Bootloader muss keine Benutzeroberflächenelemente haben. Es ist nur eine rein technische Aufgabe, die Steuerung auf ein Betriebssystem zu übertragen.

GRUB und viele andere ähnliche Programme im BIOS-Modus (LILO, SYSLINUX usw.) bieten sowohl Bootmanager- als auch Bootloader-Funktionen. In der EFI-Welt sind diese Funktionen jedoch häufiger getrennt. Der integrierte Boot-Manager der Firmware ist genau das - ein Boot .Es kann keinen OS-Kernel alleine starten. Es gibt auch zusätzliche Boot-Manager-Programme wie rEFIt, rEFInd und gummiboot / systemd-boot, die einfacher zu konfigurieren, hübscher oder auf andere Weise vollständiger sind als der typische integrierte EFI-Bootmanager. Es gibt auch Tools, die reine Bootloader sind. In gewissem Sinne gilt dies für ELILO und die EFI-Version von SYSLINUX. Sie können zwar Menüs für die Auswahl eines Linux-Kernels präsentieren, sie können jedoch nicht zu einem anderen EFI-Programm verketten, was Sie zum Starten von Windows oder macOS benötigen. Die EFI-Version von GRUB fungiert wie ihr BIOS-Pendant sowohl als Bootmanager als auch als Bootloader. Siehe meine Seite zum Thema zu EFI-Bootloadern und Boot-Managern für Linux finden .

Es gibt noch eine weitere Wendung in dieser Geschichte: Seit Version 3.3.0 enthält der Linux-Kernel eine Funktion namens EFI-Stub-Loader. Diese Funktion macht aus einem Linux-Kernel einen eigenen Bootloader - der Kernel kann wie jede andere EFI-Anwendung gestartet werden, sodass der EFI-Bootmanager einen Linux-Kernel direkt starten kann . (Mit dieser Funktion können rEFInd und gummiboot / systemd-boot auch ähnlich wie GRUB im Bootvorgang funktionieren.) Das Starten des Kernels direkt über den EFI-Bootmanager hat mehrere Nachteile, verglichen mit der Verwendung von GRUB, rEFInd oder einem anderen Bootmanager / Loader :

  • Kernel location - Der Kernel muss irgendwo leben, das EFI lesen kann. Bei den meisten PCs bedeutet dies eine FAT-Partition. (Auf Macs funktioniert auch HFS +.) Nur wenige Distributionen richten die Einstellungen standardmäßig auf diese Weise ein, und einige setzen auf Dateisystemfunktionen wie symbolische Links im Kernel-Verzeichnis für die eine oder andere Funktion. Daher ist die Verwendung von FAT wahrscheinlich eine schlechte Wahl . Es gibt EFI-Dateisystemtreiber für andere Dateisysteme, aber das automatische Laden dieser Dateisysteme ist wahrscheinlich ein Schmerz, der die Sache noch komplizierter macht. (rEFInd macht dies einfach, so dass rEFInd Kernels von mehreren Linux-nativen Dateisystemen aus starten kann, obwohl im Hintergrund die gleichen EFI-Aufrufe verwendet werden.)
  • Unzureichende Betriebssystemunterstützung - Nur wenige Distributionen stellen Setup-Skripts oder andere Tools bereit, die bei der Verwaltung eines auf diese Weise installierten Kernels hilfreich sind. Daher müssen Sie wahrscheinlich immer Kernel kopieren und möglicherweise die NVRAM-basierten EFI-Boot-Manager-Einträge ändern, wenn Sie einen Kernel aktualisieren.
  • Einfache Konfiguration - Das efibootmgrProgramm und die Art und Weise, wie Optionen an Kernel übergeben werden, sind sehr wählerisch. Ein einzelner Tippfehler kann zu einem nicht mehr bootfähigen System führen. Im Gegensatz dazu GRUB - Installationen enthalten Skripte, die in der Regel diese Details richtig machen, und REFind enthält Code, der in der Regel solche Details Recht bekommt, wenn es durchsucht Ihre Kerne. Andere Bootloader und Bootmanager verwenden normalerweise Konfigurationsdateien im Textmodus, die, wenn nicht einfach einzurichten, zumindest weniger kompliziert sind als die efibootmgrBefehle, die Sie zum Konfigurieren des direkten Startens Ihrer Kernel verwenden müssen.
  • Delikatesse - Die NVRAM-Einträge vieler Computer sind empfindlich. Sie können versehentlich beschädigt oder gelöscht werden. Da diese Einträge mehr als nur den Dateinamen des Kernels enthalten müssen (die meisten Distributionen erfordern Optionen wie den Bezeichner des Root-Dateisystems), kann das erneute Erstellen eines Eintrags, sobald er verloren gegangen ist, mehr als eine Schwierigkeit sein, als wenn Sie sich auf GRUB oder einen anderen verlassen würden Bootprogramm.
  • Fehlende Boot-Optionen - GRUB, rEFInd, gummiboot / systemd-boot und die meisten anderen Tools bieten Boot-Optionen, die einem typischen EFI-Bootmanager nicht zur Verfügung stehen. Beispielsweise kann es Optionen geben, um den Computer mit seinem Firmware-Setup-Dienstprogramm neu zu starten. Normalerweise können Sie die an den Kernel übergebenen Optionen nur einmal bearbeiten. In gewisser Weise ist dies eine andere Möglichkeit zu sagen, dass die meisten integrierten Boot-Manager von EFIs dies nicht sind"anständig", obwohl dies natürlich eine subjektive Angelegenheit ist, und einige integrierte EFI-Boot-Manager von Computern sind besser als andere. Wenn Sie etwas Bare-Bones wollen, sind Sie möglicherweise mit dem integrierten Boot-Manager zufrieden. Sie können jedoch auch andere Bootloader und -manager so konfigurieren, dass sie nur eine minimale Benutzeroberfläche bieten oder mit wenig oder ohne Verzögerung direkt in Ihre Standardauswahl gebootet werden.
  • Secure Boot-Unterstützung - Die meisten Distributionen werden mit dem EFI-Programm von Shim geliefert, wodurch die Distribution mit Secure Boot kompatibel ist. Sie können dieses Programm mit etwas mehr Aufwand zu einem Bootpfad hinzufügen, der andere Bootloader umfasst. Der Aufwand, der erforderlich ist, um einen Kernel mit Secure Boot direkt zu starten, ist etwas höher, wenn Sie Shim verwenden, und viel mehr, wenn Sie wirklich direkt ohne Shim booten möchten .

Die Vorteile eines solchen Bootens lassen sich wie folgt zusammenfassen:

  • Ein kürzerer Boot-Pfad - Durch die Umgehung von GRUB oder anderen Boot-Programmen verkürzen Sie den Boot-Pfad. Technisch gesehen eliminieren Sie jedoch nicht den Bootloader - der EFI-Stubloader des Kernels ist der Bootloader. Es ist nur zufällig in den Kernel eingebaut. Dieser Vorteil ist ziemlich gering. Dies führt zu einer geringfügig kürzeren Boot-Zeit, aber aus praktischer Sicht.

Insgesamt es ist möglich, ein EFI-basierten Computer in Linux von seinen EFI - Boot - Managern direkt zu starten, unter Umgehung GRäBT, REFind Syslinux oder andere Bootloader oder Boot - Managers. IMHO ist dies eher ein Ausdruck der Beherrschung Ihres Computers als eine praktische Option. Die Nachteile und der zusätzliche Aufwand, die erforderlich sind, um das System auf diese Weise zu konfigurieren, überwiegen bei Weitem die Vorteile, die es bietet.

0
fpmurphy1

Es gibt keine "Auswirkungen", die mir bekannt sind, außer Sie benötigen Zugriff auf eine EFI-Shell und gute Kenntnisse der EFI-Shell. Ich habe GRUB2 und andere Multiboot-Lader vor Jahren losgelassen und bin noch nicht auf ein Problem gestoßen.