Bootprozess bei Systemen im UEFI-Modus im Vergleich zum herkömmlichen MBR-Boot

Alter Bootprozess beim BIOS

Gab es mehrere bootfähige Betriebssysteme auf einer Festplatte bzw. mehreren eingebauten Festplatten, so war der Ablauf bei BIOS-basierten PC-Systemen folgendermassen:

In der Firmware des Rechner, im BIOS, wurde festgelegt, in welcher Reihenfolge auf den Datenträgern nach einem bootfähigen System gesucht wurde. Gespeichert wurde dies in einem batteriegepufferten CMOS-RAM. War dieser Datenträger eine Festplatte, dann wurde zunächst nur der allererste Sektor der Festplatte, der Masterbootrecord (MBR) in den Arbeitsspeicher geladen. Enthielt dieser MBR dann ein IPL-Programm (Initial Program Load), dann galt er als gültig. Der Bootvorgang wurde fortgesetzt, indem das IPL-Programm ausgeführt wurde. Das Standardprogramm analysierte die ebenfalls im MBR enthaltene Partitionstabelle, indem es nacheinander die vier möglichen Tabelleneinträge auf eine als aktiv gekennzeichnete primäre Partition durch prüfte und im Erfolgsfall den ersten Sektor dieser Partition (PBR = Partition Boot Record) in den Speicher lud. Dieser enthielt unter anderem wieder ein kleines Programm, welches in der Regel vom Betriebssystem (Windows) bei der Installation dort eingerichtet wurde. Das kleine Programm rief ein weiteres Programm in der Betriebssystempartition auf, welches dann das weitere Hochfahren des Betriebssystems veranlasste.

Eine Auswahl zwischen mehreren Betriebssystemen ist bei diesem Ablauf nicht vorgesehen. Für diese Aufgabe kann man einen "Bootmanager" installieren. Mögliche Orte für die Installation eines Bootmanagers sind:

IPL-Bereich im Masterbootrecord MBR (Beispiel Boot-US, GRUB2) Der Programmbereich im PBR einer Partition (Beispiel GRUB) Eine "normale" Programmdatei in der Betriebssystempartition oder in einer eigenen Partition (Beispiel: Windows-Bootmanager ntldr.exe bzw. bootmgr.exe) Ein Wechseldatenträger wie Diskette, CD und USB-Stick (Beispiel: Super Grub2 Disk)

Auf diese Weise wird bei der Linux-Installation mittels GRUB2 auch eine Auswahl zum Booten eines vorhandenen Windows mit eingerichtet. Genauso ist es möglich, in den Bootmanager von Windows die Auswahl zwischen mehreren verschiedenen Windowsbetriebssystemen und sogar Linux-Betriebssystemen einzubauen. Brauchbar für die Manipulation des Windows-Bootmanagers ist das für nichtkommerzielle Zwecke kostenlose Programm EasyBCD

Leider werden die anderen Windows-Betriebssysteme nach dem Einbau ins Bootmenü vom Haupt-Windows so kanibalisiert, dass sie ohne Reparatur unabhängig vom Bootmanager nicht mehr eigenständig booten können. Empfehlenswert ist deshalb eher der Bootmanager Boot-US, der die einzelnen Windowsbetriebssystem-Partitionen durch Verstecken vor den jeweils anderen Windows-Systemen schützen kann.

Da alle Informationen über den Bootvorgang in der Regel nur auf einer Festplatte gespeichert sind, kann man diese problemlos von einem Rechner in einen hardwaremäßig ähnlichen Rechner einbauen und sie wird genauso booten wie in dem alten Rechner. Es kann allenfalls Probleme mit der Windows-Lizensierung geben, wenn das System merkt, dass sich die Hardware geändert hat.

Der neue Bootprozess beim UEFI

Die UEFI-Firmware kann in der Regel auch noch im Modus "Compatibility Support Module" (CSM) die alten BIOS-Funktionen zur Verfügung stellen. Außerhalb dieses Modus werden die Konfigurationsdaten auf dem gleichen Flash-ROM-Baustein abgelegt, der die Firmware selber auch enthält. Die Firmware kann auch einfache Betriebssysteme, Diagnoseprograme, Internet-Browser oder sogar einfache Spiele enthalten.

Die Hauptaufgabe ist es aber, ein Betriebssystem von der Festplatte zu starten. Dazu arbeitet die Firmware nur noch mit Festplatten zusammen die eine GPT-Partitionierung (GUID Partition Table) enthalten.

GUID_Partition_Table_Scheme.png

Es gibt keine Unterscheidung mehr in primäre und logische Partitionen und die Anzahl der möglichen Partitionen ist nur durch die Plattenkapazität begrenzt. Aus Kompatibilitätsgründen ist der erste Sektor immer noch ein MBR, der so aufgebaut ist, dass veraltete Partitionierungsprogramme eine einzige über die ganze Platte erstreckte Partition "sehen". Vergleichbar mit dem ehemaligen MBR ist vielleicht der Header der GUID-Partitionstabelle. Dieser legt aber nur fest, wo die eigentlichen Partitionierungsinformationen (also vergleichbar der Partitionstabelle) befinden. Für die Zusammenarbeit mit der UEFI-Firmware hat jede GPT-partitionierte Platte mindestens auch eine FAT-formatierte und versteckte EFI-System-Partition (ESP). In diese legen die Betriebssysteme bei der Installation in eigenen Unterverzeichnissen Ihre Startprogramme ab.

In Datenbereich der UEFI-Firmware gibt es Platz für Booteinträge. Bei Festplatten verweisen diese Einträge auf die Betriebssystem-Startdateien in der EFI-System-Partition. Die Reihenfolge der Prüfungen, ob ein bootbares System enthalten ist, wird ebenso im Datenbereich der UEFI-Firmware abgelegt. Durch Aufruf der Systemstartdateien direkt aus der Firmware bootet das UEFI-System schneller als ein MBR-System. Außer durch Aufruf der UEFI-Firmware (Taste beim Start des PCs) gibt es für die Manipulation weitere Möglichkeiten. Für Linux ist oft der "efibootmgr" standardmässig installiert. Bei Windows ist dafür z.B. das kommerzielle Programm EasyUEFI erhältlich.

efibootmgr.png

Wenn man eine Festplatte aus einem UEFI-Rechner in einen anderen UEFI-Rechner einbaut, so bootet er in der Regel nicht, da die Bootinformationen im UEFI-Datenbereich nicht angepasst wurden. Falls ein Linux-System mit GRUB2 auf der Platte ist, so kann man dieses mit der Super-GRUB-CD booten und dann als "root" das Kommando grub-install ohne weitere Parameter absetzen. Danach ist auch Windows über das GRUB-Bootmenü wieder bootbar. Entsprechende Mechanismen in Windows finden sich möglicherweise (nicht getestet) auf der Seite https://www.easeus.de/partitionieren-tipps/uefi-boot-unter-windows-reparieren.html .

Quellen

Bildquellen:

-- KlausKellermann - 29 Jan 2018

Topic attachments
I Attachment Action SizeSorted descending Date Who Comment
GUID_Partition_Table_Scheme.pngpng GUID_Partition_Table_Scheme.png manage 75 K 30 Jan 2018 - 21:02 KlausKellermann GUID Partitionsschema
efibootmgr.pngpng efibootmgr.png manage 33 K 30 Jan 2018 - 21:16 KlausKellermann Linux-Kommando "efibootmgr"
Topic revision: r2 - 30 Jan 2018, KlausKellermann
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback