Aus SatriaWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Quellen == https://www.gnu.org/software/grub/manual/grub/grub.html https://wiki.archlinux.org/index.php/GRUB https://de.wikipedia.org/wiki/Bootmgr“)
 
Zeile 1: Zeile 1:
 +
== Der Unterschied zum BIOS ==
 +
Was ist der wesentliche Unterschied von UEFI zum vorigen BIOS in Bezug auf den Bootvorgang? Nach dem POST oder "Power On Self Test", (den es bei beiden Systemen gibt), fragt das BIOS die im Setup ausgewählte Festplatte nach der als "Aktiv" markierten Partition. (Sofern es im MBR keinen Bootmanager wie GRUB4DOS gibt). In dieser Partition wird der erste Sektor (der Bootsektor) angesprungen, der ausführbaren Code enthält und das Laden der Startdateien und somit des Betriebssystems übernimmt.
 +
 +
Beim UEFI muss im Setup (gern NVRAM genannt, weil hier die Einstellungen persistiert werden) mindestens eine Startkonfiguration hinterlegt und aktiviert sein. Diese wird über die Setups diverser Betriebssysteme per API in das NVRAM geschrieben. Darin enthalten ist der Speicherort der zu ladenden .efi Datei, die beim Booten angesprungen wird. Ein MBR oder Bootsektor spielt hier keine Rolle mehr. Die .efi Datei muss auf einer beliebigen FAT oder FAT32 Partition liegen. Sie enthält ausführbaren Code und übernimmt das restliche Starten des Betriebssystems.
 +
 +
Eine Ausnahme stellen Wechseldatenträger wie USB-Sticks dar. Hier kann beim Bootvorgang und je nach UEFI Implementierung der Datenträger als Ganzes zum Starten ausgewählt werden. (s. ''Die .efi Startdateien'').
 +
 +
== Die .efi Startdateien ==
 +
Eine EFI-Systempartition muss ein FAT oder FAT32 Dateisystem besitzen. Deshalb kann man sie (wenn auch auf Umwegen) z.B. unter Windows ganz normal als Laufwerk mounten und lesen und beschreiben. Grundsätzlich können Verzeichnisse und Dateien dort beliebig angelegt und im UEFI NVRAM als Startkonfiguration hinterlegt werden, aber es gibt auch ein paar Konventionen.
 +
 +
Normalerweise gibt es auf dieser Partition zunächst ein Verzeichnis "EFI". Darin "Boot". Darin eine Datei "Bootx64.efi". Diese Datei wird geladen, wenn der gesamte Datenträger zum Booten ausgewählt wird, wie es z.B. bei USB-Sticks der Fall sein kann. Sie kann auch als "fallback" gesehen werden.
 +
 +
Windows 10 z.B. legt diese auch Datei an, platziert seine eigentlichen Startdateien aber unter \EFI\Microsoft\Boot. Die Bootx64.efi dürfte im fallback-Fall aber zum gleichen Bootvorgang führen, wie die eigentlichen .efi Dateien.
 +
 +
== UEFI Shell ==
 +
Es gibt die mehr oder weniger offizielle UEFI-Shell, ein Programm mit Eingabeaufforderung, das eine ganze Reihe von Befehlen bereitstellt, die es z.B. auch ermöglichen, Startkonfigurationen hinzuzufügen, zu bearbeiten und auch zu löschen. Der normale Dateiname ist "Shellx64.efi". Sie kann durch einen Bootmanager wie z.B. GRUB2 geladen werden, aber auch durch manches UEFI-Setup direkt. Dafür muss es auf irgendeiner FAT oder FAT32 Partition direkt im Hauptverzeichnis liegen.
 +
https://github.com/tianocore/edk2/tree/UDK2018/ShellBinPkg/UefiShell
 +
 
== Quellen ==
 
== Quellen ==
 
https://www.gnu.org/software/grub/manual/grub/grub.html
 
https://www.gnu.org/software/grub/manual/grub/grub.html

Version vom 28. September 2019, 17:12 Uhr

Der Unterschied zum BIOS

Was ist der wesentliche Unterschied von UEFI zum vorigen BIOS in Bezug auf den Bootvorgang? Nach dem POST oder "Power On Self Test", (den es bei beiden Systemen gibt), fragt das BIOS die im Setup ausgewählte Festplatte nach der als "Aktiv" markierten Partition. (Sofern es im MBR keinen Bootmanager wie GRUB4DOS gibt). In dieser Partition wird der erste Sektor (der Bootsektor) angesprungen, der ausführbaren Code enthält und das Laden der Startdateien und somit des Betriebssystems übernimmt.

Beim UEFI muss im Setup (gern NVRAM genannt, weil hier die Einstellungen persistiert werden) mindestens eine Startkonfiguration hinterlegt und aktiviert sein. Diese wird über die Setups diverser Betriebssysteme per API in das NVRAM geschrieben. Darin enthalten ist der Speicherort der zu ladenden .efi Datei, die beim Booten angesprungen wird. Ein MBR oder Bootsektor spielt hier keine Rolle mehr. Die .efi Datei muss auf einer beliebigen FAT oder FAT32 Partition liegen. Sie enthält ausführbaren Code und übernimmt das restliche Starten des Betriebssystems.

Eine Ausnahme stellen Wechseldatenträger wie USB-Sticks dar. Hier kann beim Bootvorgang und je nach UEFI Implementierung der Datenträger als Ganzes zum Starten ausgewählt werden. (s. Die .efi Startdateien).

Die .efi Startdateien

Eine EFI-Systempartition muss ein FAT oder FAT32 Dateisystem besitzen. Deshalb kann man sie (wenn auch auf Umwegen) z.B. unter Windows ganz normal als Laufwerk mounten und lesen und beschreiben. Grundsätzlich können Verzeichnisse und Dateien dort beliebig angelegt und im UEFI NVRAM als Startkonfiguration hinterlegt werden, aber es gibt auch ein paar Konventionen.

Normalerweise gibt es auf dieser Partition zunächst ein Verzeichnis "EFI". Darin "Boot". Darin eine Datei "Bootx64.efi". Diese Datei wird geladen, wenn der gesamte Datenträger zum Booten ausgewählt wird, wie es z.B. bei USB-Sticks der Fall sein kann. Sie kann auch als "fallback" gesehen werden.

Windows 10 z.B. legt diese auch Datei an, platziert seine eigentlichen Startdateien aber unter \EFI\Microsoft\Boot. Die Bootx64.efi dürfte im fallback-Fall aber zum gleichen Bootvorgang führen, wie die eigentlichen .efi Dateien.

UEFI Shell

Es gibt die mehr oder weniger offizielle UEFI-Shell, ein Programm mit Eingabeaufforderung, das eine ganze Reihe von Befehlen bereitstellt, die es z.B. auch ermöglichen, Startkonfigurationen hinzuzufügen, zu bearbeiten und auch zu löschen. Der normale Dateiname ist "Shellx64.efi". Sie kann durch einen Bootmanager wie z.B. GRUB2 geladen werden, aber auch durch manches UEFI-Setup direkt. Dafür muss es auf irgendeiner FAT oder FAT32 Partition direkt im Hauptverzeichnis liegen. https://github.com/tianocore/edk2/tree/UDK2018/ShellBinPkg/UefiShell

Quellen

https://www.gnu.org/software/grub/manual/grub/grub.html

https://wiki.archlinux.org/index.php/GRUB

https://de.wikipedia.org/wiki/Bootmgr