Bootloader: Unterschied zwischen den Versionen
K Textersetzung - „Kurzbeschreibung“ durch „Beschreibung“ |
|||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''Bootloader''' - Beschreibung | ||
== Beschreibung == | == Beschreibung == | ||
; Verkürzten Form von ''[[Bootstrapping (Informatik)|bootstrap]] loader'' | |||
'''Startprogramm''' genannt | |||
* Spezielle [[Software]], die gewöhnlich durch die [[System-Firmware]] ([[BIOS (IBM PC)|BIOS]], [[Open Firmware]], [[Unified Extensible Firmware Interface|UEFI]]) eines Rechners von einem [[Startfähiges Speichermedium|startfähigen Medium]] geladen und anschließend ausgeführt wird | |||
* Der Bootloader lädt dann weitere Teile des Betriebssystems | |||
** gewöhnlich einen [[Kernel (Betriebssystem)|Kernel]] | |||
* Daher ist auch oft vom '''Bootcode''' die Rede | |||
** dem ersten [[Programmcode|Programm]] ([[Maschinensprache|Maschinencode]]), das nach der unveränderlichen [[Firmware]] von einem wechselbaren veränderlichen [[Datenspeicher]] geladen wird | |||
* Der Vorgang selbst heißt [[Booten]] (auf Deutsch auch ''Starten'') eines [[Computer|Rechners]] | |||
== Grundlagen == | == Grundlagen == | ||
Der englische Begriff „{{lang|en|[[Bootstrapping (Informatik)|bootstrap]]}}“ bezieht sich ursprünglich auf die Schlaufe, die sich an der Hinterseite eines Stiefels befindet, um das Anziehen des Stiefels zu erleichtern | Der englische Begriff „{{lang|en|[[Bootstrapping (Informatik)|bootstrap]]}}“ bezieht sich ursprünglich auf die Schlaufe, die sich an der Hinterseite eines Stiefels befindet, um das Anziehen des Stiefels zu erleichtern | ||
* Der Prozess des Bootens (ein Programm auf einem Rechner laufen zu lassen, auf dem noch kein Betriebssystem läuft) erinnert teilweise an das Bemühen, sich an der eigenen Stiefelschlaufe aus dem Morast zu ziehen | |||
Ein erster „{{lang|en|bootstrap loader}}“ befindet sich in der Hardware selbst | Ein erster „{{lang|en|bootstrap loader}}“ befindet sich in der Hardware selbst | ||
* Meist handelt es sich um einen [[Boot-ROM]], der die für das Starten grundlegende Hardwarekomponenten initialisiert, ein Startprogramm sucht und, wenn eines gefunden wird, ausführt | |||
* Wo sich der Bootloader auf dem veränderlichen Datenspeicher zu befinden hat und wie er geladen wird, ist je nach [[Rechnerarchitektur]] und [[Plattform (Computer)|Plattform]] unterschiedlich | |||
* Auf moderneren Architekturen liegt er meist als [[Datei]] auf einem von der Firmware unterstützten [[Dateisystem]] auf einem unterstützten [[Startfähiges Speichermedium|bootfähigen Medium]], etwa einer bestimmten [[Partition (Datenträger)|Partition]] auf der [[Festplatte]], und wird davon direkt geladen und ausgeführt | |||
* Das ist beispielsweise bei [[Open Firmware]] und bei [[Unified Extensible Firmware Interface|UEFI]] der Fall, wobei die verwendeten [[Partitionstabelle]]n und Dateisysteme unterschiedlich sein können | |||
* Auch der Bootloader selbst muss in einem bestimmten [[Ausführbare Datei|ausführbaren]] [[Dateiformat]] vorliegen | |||
* Das kann einerseits der [[Prozessorarchitektur]] und im Besonderen deren [[Befehlssatz]] geschuldet sein, wie z. B. [[Portable Executable|PE]]/[[Common Object File Format|COFF]] bei UEFI, oder die Firmware implementiert ein Architektur-übergreifendes [[Zwischencode]]-Format wie z. B | |||
* Open Firmware mit [[Forth (Programmiersprache)|Forth]] FCODE | |||
* Einige ältere Architekturen laden den Bootloader aus einem vordefinierten [[Datenblock#Festplatten und Disketten|Block]] des startfähigen Mediums, der daher auch als Bootblock oder, gängiger, [[Bootsektor]] bezeichnet wird | |||
* Bei [[IBM-PC-kompatibler Computer|IBM-PC-kompatiblen Computern]] mit [[BIOS (IBM PC)|BIOS]] befindet sich dieser immer im ersten Block, Block 0, der auf partitionierten Datenträgern wie Festplatten gängigerweise einen [[Master Boot Record|Master Boot Record (MBR)]] sowohl als Startprogramm als auch als Partitionstabelle enthält | |||
* Auf Disketten wird in gleicher Weise Block 0 geladen und ausgeführt, allerdings findet sich dort im Normalfall keine Partitionstabelle, sondern ein [[Volume Boot Record|Volume Boot Record (VBR)]] | |||
Auch im Bereich der [[Eingebettetes System|eingebetteten Systeme]] spricht man von Bootloadern | Auch im Bereich der [[Eingebettetes System|eingebetteten Systeme]] spricht man von Bootloadern | ||
* Dort kann der Bootloader oft nicht nachgeladen werden, sondern befindet sich im nichtflüchtigen [[Halbleiterspeicher|Speicher]] des [[Steuergerät]]s | |||
* Er beinhaltet Grundroutinen der Initialisierung und oft [[Kommunikationsprotokoll]]e, um den Austausch der [[Computerprogramm|Anwendungsprogramme]] zu ermöglichen | |||
Beim [[Raspberry Pi]] ist aus kostengründen nur ein minimales Boot-ROM direkt im [[System-on-a-Chip|SoC]] untergebracht | Beim [[Raspberry Pi]] ist aus kostengründen nur ein minimales Boot-ROM direkt im [[System-on-a-Chip|SoC]] untergebracht | ||
* Diese erste Firmware-Stufe kann nichts anderes als auf die [[SD-Karte]] zuzugreifen und dort von einer FAT-Paritition die Datei <code>bootcode.bin</code> zu laden und auszuführen | |||
* Im Fall eines Linux-Systems initialisiert diese zweite Firmware-Stufe die restliche Hardware und führt im Anschluss eine dritte Stufe aus der Datei <code>loader.bin</code> aus | |||
* Dieser ''{{lang|en|bootstrap loader}}'' wiederum lädt nun die Firmware für [[Hauptprozessor|CPU]] und [[Grafikprozessor|GPU]] in den RAM | |||
* Erst danach ist der [[Einplatinencomputer]] bereit, um den Linux-Kernel zu laden, wobei die Firmware-Konfiguration aus Datei <code>config.txt</code> und die Kernel-Parameter aus Datei <code>cmdline.txt</code> angewendet werden | |||
Als [[Bootmanager]] wird ein auf einem [[Betriebssystem]] installierbares [[Dienstprogramm]] bezeichnet, das einen eigenen Bootloader enthält und erweiterte Konfigurationsmöglichkeiten bietet | Als [[Bootmanager]] wird ein auf einem [[Betriebssystem]] installierbares [[Dienstprogramm]] bezeichnet, das einen eigenen Bootloader enthält und erweiterte Konfigurationsmöglichkeiten bietet | ||
== Mehrstufige Bootloader == | == Mehrstufige Bootloader == | ||
Ist ein Bootloader in mehrere auf einander aufbauende Stufen unterteilt, so wird er als mehrstufiger Bootloader ({{enS|Multistage Bootloader}}) bezeichnet | Ist ein Bootloader in mehrere auf einander aufbauende Stufen unterteilt, so wird er als mehrstufiger Bootloader ({{enS|Multistage Bootloader}}) bezeichnet | ||
* Diese Unterteilung in Stufen wird z. B | |||
* dann gemacht, wenn der Programmcode des Bootloaders nicht im Bootsektor Platz findet; an dieser Stelle wird daher nur die erste Stufe geladen und ausgeführt, die dann die zweite Stufe, von der die erste Stufe nur die Länge, die Block-Nummer und die Nummer des Mediums kennt, geladen und ausgeführt wird | |||
* Die zweite Stufe kann nun mit dem konkreten Dateisystem des Mediums umgehen und lädt anhand eines Dateinamens die dritte Stufe | |||
* Die dritte Stufe ist nun der eigentliche Bootloader und lädt eine Konfigurationsdatei, die z. B | |||
* ein [[Bootmenü|Auswahlmenü]] enthält | |||
* Ein Menüpunkt könnte die Anweisung beinhalten, einen Bootloader einer anderen Partition zu laden | |||
Dieser mehrstufige Aufbau hat mehrere Vorteile: So kann im oben beschriebenen Fall die Datei des eigentlichen Bootloaders (Stufe 3) beliebig verändert oder auch physisch verschoben werden, da die zweite Stufe mit dem Dateisystem umgehen kann und die dritte Stufe anhand des Dateinamens finden kann | Dieser mehrstufige Aufbau hat mehrere Vorteile: So kann im oben beschriebenen Fall die Datei des eigentlichen Bootloaders (Stufe 3) beliebig verändert oder auch physisch verschoben werden, da die zweite Stufe mit dem Dateisystem umgehen kann und die dritte Stufe anhand des Dateinamens finden kann | ||
* Außerdem unterliegt ein solcher Bootloader nicht den Beschränkungen der Länge eines Bootblocks | |||
== Chain-Loader == | == Chain-Loader == | ||
Es ist auch möglich, dass mehrere Bootloader sich – wie in einer [Befehls-]Kette (englisch ''{{lang|en|chain [of command]}}'') – nacheinander aufrufen | Es ist auch möglich, dass mehrere Bootloader sich – wie in einer [Befehls-]Kette (englisch ''{{lang|en|chain [of command]}}'') – nacheinander aufrufen | ||
* Solche Aufrufe – meist über mehrere [[Partition (Datenträger)|Partitionen]] hinweg – wird auch ''Chain-Loading'' oder ''Chainloading'' (englisch ''{{lang|en|chain loading}}'') genannt | |||
* Hierbei kann zuerst ein Bootloader geladen werden, der z. B | |||
* ein [[Bootmenü]] zur Betriebssystem-Auswahl darstellt, und anschließend je nach Auswahl in diesem Menü der entsprechende (betriebssystemspezifische) Bootloader | |||
* So lassen sich auch mehrere, unterschiedliche Betriebssysteme in einem sogenannten [[Multi-Boot-System]] auf einem Rechner nebeneinander betreiben | |||
== Bootloader mit Zusatzfunktion == | == Bootloader mit Zusatzfunktion == | ||
Manche Bootloader sind gar keine Bootloader mit dem alleinigen Zweck, ein Betriebssystem zu starten | Manche Bootloader sind gar keine Bootloader mit dem alleinigen Zweck, ein Betriebssystem zu starten | ||
* Bootloader, die lediglich anzeigen sollen, dass ein eingelegtes Medium nicht startfähig ist, z. B | * Beispiele: | ||
* Bootloader, die auf erkannten Datenspeichern weitere Bootloader erkennen und diese starten | * Bootloader, die lediglich anzeigen sollen, dass ein eingelegtes Medium nicht startfähig ist, z. B | ||
* Bootloader, die gleich ein [[Anwendungssoftware|Anwendungsprogramm]] starten | * bei Disketten die Textausgabe „{{lang|en|Non-System disk or disk error | ||
* Bootloader, die fehlende oder falsche Funktionen des [[BIOS (IBM PC)|BIOS]] bei PC-kompatiblen Rechnern in Software (statt in Firmware) abändern | * Replace and press any key when ready...}}“ ([[MS-DOS]] 5.0, [[File Allocation Table#FAT12|FAT12]]/[[File Allocation Table#FAT16|16]]) | ||
* Auch [[Bootvirus|Bootviren]] sind Bootloader, und in dieser speziellen Form [[Computervirus|Computerviren]], die schon beim Rechner-Start aktiviert werden | * Bootloader, die auf erkannten Datenspeichern weitere Bootloader erkennen und diese starten | ||
* [[Bootmanager]] sind Bootloader, die z. B | * Zu Zeiten von MS-DOS gab es einige Formatierungsprogramme für Disketten, die eine Auswahl eines zu startenden anderen per BIOS ansprechbaren Geräts erlaubten | ||
* Bootloader, die eine andere Firmware laden | * So konnte man z. B | ||
* mit FDFORMAT oder VGA-COPY/386 einen Bootsektor auf Disketten schreiben, der wahlweise oder automatisch von der Festplatte starten konnte | |||
* Auch ist dies z. B | |||
* bei [[Microsoft Windows|Windows]]-Installations-CDs der Fall: Wenn auf einer erkannten Festplatte (oder SSD) ein bereits installiertes Betriebssystem erkannt wird, booten diese nur dann von CD, wenn eine beliebige Taste gedrückt wird, ansonsten wird von der lokalen Festplatte gebootet | |||
* So kann das Installationsprogramm nach erfolgreicher Installation den Rechner sofort [[Neustart (Computer)|neustarten]] | |||
* Das Booten erfolgt zwar wieder von CD, aber nachdem nun keine Taste gedrückt wird, ruft sich das Installationsprogramm nicht erneut selbst auf, sondern übergibt die Kontrolle an die neue Installation | |||
* Bootloader, die gleich ein [[Anwendungssoftware|Anwendungsprogramm]] starten | |||
* Einige Programme, beispielsweise [[Memtest86]], können direkt und ohne Dateisystem von einer Diskette gestartet werden | |||
* In den 1980er Jahren gab es bei IBM-kompatiblen PCs sogenannte {{lang|en|[[PC Booter]]}}, meist [[Computerspiel]]e, die direkt und ohne Betriebssystem von der Diskette starteten | |||
* Bootloader, die fehlende oder falsche Funktionen des [[BIOS (IBM PC)|BIOS]] bei PC-kompatiblen Rechnern in Software (statt in Firmware) abändern | |||
* Das wurde früher benutzt, um BIOS-Funktionen zu erweitern, damit der Speicher von Festplatten mit mehr als 512 [[Mebibyte|MiB]], 8 [[Gibibyte|GiB]], 32 GiB oder 128 GiB vollständig erreichbar ist, wie z. B | |||
* EZ-Drive oder OnTrack Disk Manager | |||
* Auch [[Bootvirus|Bootviren]] sind Bootloader, und in dieser speziellen Form [[Computervirus|Computerviren]], die schon beim Rechner-Start aktiviert werden | |||
* [[Bootmanager]] sind Bootloader, die z. B | |||
* auf einem bestimmten [[Betriebssystem]] als [[Dienstprogramm]] installiert werden können | |||
* Sie bieten meist gegenüber dem vom Betriebssystem bereitgestellten Bootloader erweiterte Konfigurationsmöglichkeiten, etwa ein [[Bootmenü]] für [[Multi-Boot-System|Multi-Boot]]-Konfigurationen | |||
* Beispiele: [[Grand Unified Bootloader|GRUB]] auf IBM-kompatiblen PCs mit BIOS oder UEFI (GRUB2 auch auf weiteren Architekturen und Plattformen, etwa [[Open Firmware]] auf [[PowerPC]]), rEFIt und rEFInd auf [[x86-Architektur|x86]]-UEFI-[[IBM-PC-kompatibler Computer|PCs]] | |||
* Bootloader, die eine andere Firmware laden | |||
* So kann beispielsweise [[Unified Extensible Firmware Interface#Tianocore EDK2|Tianocore EDK2]] (UEFI) von einem, auch wechselbaren, Datenspeicher auf einem PC mit BIOS gestartet werden, welches anschließend ein modernes Betriebssystem, das UEFI voraussetzt, starten kann | |||
* Ebenso kann z. B | |||
* Open Firmware oder [[Coreboot]] per Bootloader gestartet werden | |||
== Liste von Bootloadern == | == Liste von Bootloadern == | ||
Zeile 41: | Zeile 97: | ||
|- | |- | ||
| AiRBoot | | AiRBoot | ||
| benötigt keine primäre Partition, kann von verschiedenen Betriebssystemen aus installiert werden | | benötigt keine primäre Partition, kann von verschiedenen Betriebssystemen aus installiert werden | ||
|- | |- | ||
| Arcboot | | Arcboot | ||
Zeile 52: | Zeile 108: | ||
| Von [[AmigaOS]] aus ausführbarer Linux-Loader auf [[Amiga]]-Computern; wird von AmigaOS aus konfiguriert | | Von [[AmigaOS]] aus ausführbarer Linux-Loader auf [[Amiga]]-Computern; wird von AmigaOS aus konfiguriert | ||
|- | |- | ||
| barebox | | barebox | ||
| Modularer, universeller Bootloader für Eingebettete Systeme (ehemals u-boot-v2) | | Modularer, universeller Bootloader für Eingebettete Systeme (ehemals u-boot-v2) | ||
|- | |- | ||
Zeile 71: | Zeile 127: | ||
|- | |- | ||
| BootX | | BootX | ||
| Bootloader für [[macOS|Mac OS X]]<!-- (ab 1998 als Nachfolger von [[Rhapsody (Betriebssystem)|Rhapsody]] und dem [[Mac OS (Classic)|klassischen Mac OS]] entwickelt)--> auf der [[PowerPC Platform|PowerPC-Plattform]] mit [[Open Firmware]]; <code>/System/Library/CoreServices/BootX</code | | Bootloader für [[macOS|Mac OS X]]<!-- (ab 1998 als Nachfolger von [[Rhapsody (Betriebssystem)|Rhapsody]] und dem [[Mac OS (Classic)|klassischen Mac OS]] entwickelt)--> auf der [[PowerPC Platform|PowerPC-Plattform]] mit [[Open Firmware]]; <code>/System/Library/CoreServices/BootX</code> | ||
|- | |- | ||
| BootX | | BootX | ||
| Von [[Mac OS (Classic)|klassischem Mac OS]] ab [[Mac OS 8]] aus fungierender [[Linux]]-Bootloader auf [[Macintosh]]-Computern mit „[[Macintosh-Baukasten#OldWorld|Old World]]“-PowerPC-Architektur, der eine [[Bootmenü|Startauswahl]] zwischen Mac OS und Linux bietet | | Von [[Mac OS (Classic)|klassischem Mac OS]] ab [[Mac OS 8]] aus fungierender [[Linux]]-Bootloader auf [[Macintosh]]-Computern mit „[[Macintosh-Baukasten#OldWorld|Old World]]“-PowerPC-Architektur, der eine [[Bootmenü|Startauswahl]] zwischen Mac OS und Linux bietet | ||
* Im technischen Sinn nur für Linux ein Bootloader, da BootX auf Mac OS als Programm läuft – vergleichbar mit [[Loadlin]] unter [[PC-kompatibles DOS|PC-kompatiblem DOS]] und [[Windows 9x]] | |||
|- | |- | ||
| burg | | burg | ||
| Basiert auf Grub. (vergleichbar mit grub24dos) | | Basiert auf Grub. (vergleichbar mit grub24dos) | ||
|- | |- | ||
| Clover | | Clover | ||
| Der „Clover EFI bootloader“, manchmal auch CloverEFI, ist ein Bootloader mit Fokus auf [[Multi-Boot-System]]e und [[macOS]] mit zahlreichen Möglichkeiten zur Konfiguration | | Der „Clover EFI bootloader“, manchmal auch CloverEFI, ist ein Bootloader mit Fokus auf [[Multi-Boot-System]]e und [[macOS]] mit zahlreichen Möglichkeiten zur Konfiguration | ||
* Auf [[BIOS]]-Systemen kann Clover ein auf TianoCore basiertes [[Unified Extensible Firmware Interface|UEFI]] laden, damit Betriebssysteme, die ein EFI voraussetzen, gestartet werden können | |||
* Auf (U)EFI-Systemen nutzt Clover das native EFI und kann per CSM, wenn vorhanden, auch BIOS-basierte Betriebssysteme starten | |||
* Der Bootloader unterstützt die Betriebssysteme [[Linux]], macOS (ursprünglich Mac OS X) und [[Microsoft Windows NT|Windows NT]] direkt, kann aber grundsätzlich jedes PC-Betriebssystem starten (z. B | |||
* PC-[[Berkeley Software Distribution|BSD]]-[[Unix]]).<!----> | |||
|- | |- | ||
| Colilo | | Colilo | ||
Zeile 86: | Zeile 147: | ||
|- | |- | ||
| [[EasyBCD]] | | [[EasyBCD]] | ||
| Wird zum Konfigurieren und Anpassen des von Microsoft entwickelten Bootloaders Bootmgr verwendet | | Wird zum Konfigurieren und Anpassen des von Microsoft entwickelten Bootloaders Bootmgr verwendet | ||
|- | |- | ||
| [[elilo]] | | [[elilo]] | ||
| Bootloader für Linux auf der [[Itanium-Architektur]] (IA-64), [[Extensible Firmware Interface|EFI]]-basiert | | Bootloader für Linux auf der [[Itanium-Architektur]] (IA-64), [[Extensible Firmware Interface|EFI]]-basiert | ||
|- | |- | ||
| EMILE (Early Macintosh Image LoadEr) | | EMILE (Early Macintosh Image LoadEr) | ||
Zeile 95: | Zeile 156: | ||
|- | |- | ||
| [[eXtended FDisk]] | | [[eXtended FDisk]] | ||
| [[PC-kompatibles DOS|DOS]]-Dienstprogramm zur Bootmanager-Einrichtung und Festplatten-Partitionierung, als Ersatz für [[fdisk]] entwickelt, belegt selbst keine Partition und unterstützt versteckte Partitionen, [[GNU General Public License|GPL]] <!-- STOP! Das hier ist | | [[PC-kompatibles DOS|DOS]]-Dienstprogramm zur Bootmanager-Einrichtung und Festplatten-Partitionierung, als Ersatz für [[fdisk]] entwickelt, belegt selbst keine Partition und unterstützt versteckte Partitionen, [[GNU General Public License|GPL]] <!-- STOP! Das hier ist ==== K E I N {{advert}} ==== und stammt auch nicht von jemandem, der mit dem Autor der Software zu tun hat oder ein Fan ist!!! Falls der Eintrag jemandem zu lang oder zu ausführlich ist, bitte KÜRZEN und nicht einfach reverten! Dankeschön | ||
* Und natürlich kann dieser Hinweis nach Beachtung entfernt werden. (Hat hier jemand Paranoia vor 13jährigen Administratoren? Ja, ich | |||
* Zum Glück gibt es noch VIELE vernünftige Admins und Nicht-Admins in der WP | |||
* Nix für ungut.) --> | |||
|- | |- | ||
| EXTlinux | | EXTlinux | ||
Zeile 104: | Zeile 168: | ||
|- | |- | ||
| GAG (Gestor de Arranque Grafico) | | GAG (Gestor de Arranque Grafico) | ||
| Dateisystem-agnostischer <!-- das ist bewußt so gesagt!, und nicht einfach dateisystemunabhängiger! Siehe auch: Artikel --> Bootloader. [[Freie Software]] ([[GNU General Public License|GPL]]), mehrsprachig (unter anderem deutsch) | | Dateisystem-agnostischer <!-- das ist bewußt so gesagt!, und nicht einfach dateisystemunabhängiger! Siehe auch: Artikel --> Bootloader. [[Freie Software]] ([[GNU General Public License|GPL]]), mehrsprachig (unter anderem deutsch) | ||
|- | |- | ||
| GRUB ([[Grand Unified Bootloader]]) | | GRUB ([[Grand Unified Bootloader]]) | ||
Zeile 110: | Zeile 174: | ||
|- | |- | ||
| Grand Unified Bootloader for DOS (GRUB4DOS) | | Grand Unified Bootloader for DOS (GRUB4DOS) | ||
| Freie Software (GPL), basiert auf Grub | | Freie Software (GPL), basiert auf Grub | ||
|- | |- | ||
| Grub24Dos | | Grub24Dos | ||
Zeile 116: | Zeile 180: | ||
|- | |- | ||
| Gummiboot | | Gummiboot | ||
| Linux-Bootloader für [[Unified Extensible Firmware Interface|UEFI]]-basierte Hardware, der von den [[Red Hat|Red-Hat]]-Entwicklern [[Kay Sievers]] und [[Harald Hoyer]] als Alternative zu GRUB geschaffen wurde | | Linux-Bootloader für [[Unified Extensible Firmware Interface|UEFI]]-basierte Hardware, der von den [[Red Hat|Red-Hat]]-Entwicklern [[Kay Sievers]] und [[Harald Hoyer]] als Alternative zu GRUB geschaffen wurde | ||
(Gummiboot benötigt mindestens [[Linux (Kernel)|Linux-Kernel]] 3.3.0 und läuft '''nicht''' auf [[IBM-PC-kompatibler Computer|IBM-PC-kompatiblen]] Systemen mit „[[Legacy-System|Legacy]]-[[BIOS (IBM PC)|BIOS]]“.) 2015 wurde Gummiboot in [[systemd]] integriert | |||
|- | |- | ||
| iBoot | | iBoot | ||
Zeile 128: | Zeile 195: | ||
|- | |- | ||
| [[Loadlin]] | | [[Loadlin]] | ||
| Von [[Windows 3.x]]/[[Windows 9x|9x]] oder [[PC-kompatibles DOS|PC-kompatiblem DOS]] aus ausführbarer Bootloader für [[Linux]], der auch von Windows aus konfiguriert werden kann | | Von [[Windows 3.x]]/[[Windows 9x|9x]] oder [[PC-kompatibles DOS|PC-kompatiblem DOS]] aus ausführbarer Bootloader für [[Linux]], der auch von Windows aus konfiguriert werden kann | ||
|- | |- | ||
| NeoGRUB | | NeoGRUB | ||
Zeile 146: | Zeile 213: | ||
|- | |- | ||
| PLoP | | PLoP | ||
| Ein Bootloader, der auch mit älteren PCs ohne BIOS-Unterstützung von CDROM bzw | | Ein Bootloader, der auch mit älteren PCs ohne BIOS-Unterstützung von CDROM bzw | ||
* USB booten kann | |||
* Download und Dokumentation: [https://www.plop.at/de/whatisplop.html deutsch] und [https://www.plop.at/en/whatisplop.html englisch] | |||
|- | |- | ||
| PXElinux | | PXElinux | ||
Zeile 154: | Zeile 223: | ||
| Bootloader für Embedded Systeme wie auf Atheros basierende WLAN-Router | | Bootloader für Embedded Systeme wie auf Atheros basierende WLAN-Router | ||
|- | |- | ||
| Quik | | Quik | ||
| Bootloader für Linux auf einem Old-World-PowerPC-Macintosh mit Open Firmware | | Bootloader für Linux auf einem Old-World-PowerPC-Macintosh mit Open Firmware | ||
|- | |- | ||
| rEFInd | | rEFInd | ||
| Erbe von rEFIt | | Erbe von rEFIt | ||
* Ursprünglich für Macs mit EFI im Fokus funktioniert rEFInd auch auf anderen UEFI-Systemen | |||
|- | |- | ||
| rEFIt | | rEFIt | ||
| Inoffizieller Bootloader für Macs, der ein Auswahlmenü für die einfachere Multi-Boot-Konfiguration für Windows, welches einen [[GUID Partition Table#Hybrid-MBR|Hybrid-MBR]] nutzt, erleichtert | | Inoffizieller Bootloader für Macs, der ein Auswahlmenü für die einfachere Multi-Boot-Konfiguration für Windows, welches einen [[GUID Partition Table#Hybrid-MBR|Hybrid-MBR]] nutzt, erleichtert | ||
* Funktioniert auch mit anderen Betriebssystem wie u. a | |||
* Linux, BSD, Solaris | |||
* Entwicklung eingestellt | |||
|- | |- | ||
| ROM-Monitor | | ROM-Monitor | ||
| Die Firmware für Ciscos Netzwerkgeräte | | Die Firmware für Ciscos Netzwerkgeräte | ||
|- | |- | ||
|- | |- | ||
Zeile 171: | Zeile 244: | ||
|- | |- | ||
| Smart BootManager | | Smart BootManager | ||
| Bootloader | | Bootloader von [[SPBLinux]] | ||
|- | |- | ||
| SmartFirmware | | SmartFirmware | ||
Zeile 180: | Zeile 253: | ||
|- | |- | ||
| [[SYSLINUX]] | | [[SYSLINUX]] | ||
| Ein Paket mit einem ganzen Bündel von Bootloadern: EXTlinux für das Booten vom ext2-, vom ext3-, vom ext4- sowie vom btrfs-Dateisystem aus, etwa auf Linux, des Weiteren ISOlinux für das Booten vom iso-Dateisystem aus, meist residierend auf optischen Disks wie CDs bzw | | Ein Paket mit einem ganzen Bündel von Bootloadern: EXTlinux für das Booten vom ext2-, vom ext3-, vom ext4- sowie vom btrfs-Dateisystem aus, etwa auf Linux, des Weiteren ISOlinux für das Booten vom iso-Dateisystem aus, meist residierend auf optischen Disks wie CDs bzw | ||
* DVDs, sowie PXElinux für nahezu netzwerksynchronisiertes Booten in Netzwerken, die aus mehreren Rechnern bestehen | |||
* Des Weiteren gestattet SYSlinux das Booten von fat- bzw | |||
* vfat-Dateisystemen aus, wodurch dieser Bootloader ungefähr ab der Version 6 auch auf UEFI-Rechnern eingesetzt werden kann | |||
|- | |- | ||
| <span style="font-family: monospace, monospace;">{{nowrap|systemd-boot}}</span> (auch: <span style="font-family: monospace, monospace;">{{nowrap|sd-boot}}</span>) | | <span style="font-family: monospace, monospace;">{{nowrap|systemd-boot}}</span> (auch: <span style="font-family: monospace, monospace;">{{nowrap|sd-boot}}</span>) | ||
| In [[systemd]] integrierter einfacher UEFI-Bootmanager und Weiterentwicklung von Gummiboot | | In [[systemd]] integrierter einfacher UEFI-Bootmanager und Weiterentwicklung von Gummiboot | ||
|- | |- | ||
| [[Das U-Boot]] (ehemals PPCBoot | | [[Das U-Boot]] (ehemals PPCBoot) | ||
| Universeller Bootloader, vor allem für [[Eingebettetes System|Eingebettete Systeme]] | | Universeller Bootloader, vor allem für [[Eingebettetes System|Eingebettete Systeme]] | ||
|- | |- | ||
| VAMOS | | VAMOS | ||
| Kommerzieller Bootloader, läuft auf [[MS-DOS]]-Systemen, Entwicklung eingestellt | | Kommerzieller Bootloader, läuft auf [[MS-DOS]]-Systemen, Entwicklung eingestellt | ||
|- | |- | ||
| Yaboot | | Yaboot |
Aktuelle Version vom 25. Oktober 2024, 10:27 Uhr
Bootloader - Beschreibung
Beschreibung
- Verkürzten Form von bootstrap loader
Startprogramm genannt
- Spezielle Software, die gewöhnlich durch die System-Firmware (BIOS, Open Firmware, UEFI) eines Rechners von einem startfähigen Medium geladen und anschließend ausgeführt wird
- Der Bootloader lädt dann weitere Teile des Betriebssystems
- gewöhnlich einen Kernel
- Daher ist auch oft vom Bootcode die Rede
- dem ersten Programm (Maschinencode), das nach der unveränderlichen Firmware von einem wechselbaren veränderlichen Datenspeicher geladen wird
- Der Vorgang selbst heißt Booten (auf Deutsch auch Starten) eines Rechners
Grundlagen
Der englische Begriff „Vorlage:Lang“ bezieht sich ursprünglich auf die Schlaufe, die sich an der Hinterseite eines Stiefels befindet, um das Anziehen des Stiefels zu erleichtern
- Der Prozess des Bootens (ein Programm auf einem Rechner laufen zu lassen, auf dem noch kein Betriebssystem läuft) erinnert teilweise an das Bemühen, sich an der eigenen Stiefelschlaufe aus dem Morast zu ziehen
Ein erster „Vorlage:Lang“ befindet sich in der Hardware selbst
- Meist handelt es sich um einen Boot-ROM, der die für das Starten grundlegende Hardwarekomponenten initialisiert, ein Startprogramm sucht und, wenn eines gefunden wird, ausführt
- Wo sich der Bootloader auf dem veränderlichen Datenspeicher zu befinden hat und wie er geladen wird, ist je nach Rechnerarchitektur und Plattform unterschiedlich
- Auf moderneren Architekturen liegt er meist als Datei auf einem von der Firmware unterstützten Dateisystem auf einem unterstützten bootfähigen Medium, etwa einer bestimmten Partition auf der Festplatte, und wird davon direkt geladen und ausgeführt
- Das ist beispielsweise bei Open Firmware und bei UEFI der Fall, wobei die verwendeten Partitionstabellen und Dateisysteme unterschiedlich sein können
- Auch der Bootloader selbst muss in einem bestimmten ausführbaren Dateiformat vorliegen
- Das kann einerseits der Prozessorarchitektur und im Besonderen deren Befehlssatz geschuldet sein, wie z. B. PE/COFF bei UEFI, oder die Firmware implementiert ein Architektur-übergreifendes Zwischencode-Format wie z. B
- Open Firmware mit Forth FCODE
- Einige ältere Architekturen laden den Bootloader aus einem vordefinierten Block des startfähigen Mediums, der daher auch als Bootblock oder, gängiger, Bootsektor bezeichnet wird
- Bei IBM-PC-kompatiblen Computern mit BIOS befindet sich dieser immer im ersten Block, Block 0, der auf partitionierten Datenträgern wie Festplatten gängigerweise einen Master Boot Record (MBR) sowohl als Startprogramm als auch als Partitionstabelle enthält
- Auf Disketten wird in gleicher Weise Block 0 geladen und ausgeführt, allerdings findet sich dort im Normalfall keine Partitionstabelle, sondern ein Volume Boot Record (VBR)
Auch im Bereich der eingebetteten Systeme spricht man von Bootloadern
- Dort kann der Bootloader oft nicht nachgeladen werden, sondern befindet sich im nichtflüchtigen Speicher des Steuergeräts
- Er beinhaltet Grundroutinen der Initialisierung und oft Kommunikationsprotokolle, um den Austausch der Anwendungsprogramme zu ermöglichen
Beim Raspberry Pi ist aus kostengründen nur ein minimales Boot-ROM direkt im SoC untergebracht
- Diese erste Firmware-Stufe kann nichts anderes als auf die SD-Karte zuzugreifen und dort von einer FAT-Paritition die Datei
bootcode.bin
zu laden und auszuführen - Im Fall eines Linux-Systems initialisiert diese zweite Firmware-Stufe die restliche Hardware und führt im Anschluss eine dritte Stufe aus der Datei
loader.bin
aus - Dieser Vorlage:Lang wiederum lädt nun die Firmware für CPU und GPU in den RAM
- Erst danach ist der Einplatinencomputer bereit, um den Linux-Kernel zu laden, wobei die Firmware-Konfiguration aus Datei
config.txt
und die Kernel-Parameter aus Dateicmdline.txt
angewendet werden
Als Bootmanager wird ein auf einem Betriebssystem installierbares Dienstprogramm bezeichnet, das einen eigenen Bootloader enthält und erweiterte Konfigurationsmöglichkeiten bietet
Mehrstufige Bootloader
Ist ein Bootloader in mehrere auf einander aufbauende Stufen unterteilt, so wird er als mehrstufiger Bootloader () bezeichnet
- Diese Unterteilung in Stufen wird z. B
- dann gemacht, wenn der Programmcode des Bootloaders nicht im Bootsektor Platz findet; an dieser Stelle wird daher nur die erste Stufe geladen und ausgeführt, die dann die zweite Stufe, von der die erste Stufe nur die Länge, die Block-Nummer und die Nummer des Mediums kennt, geladen und ausgeführt wird
- Die zweite Stufe kann nun mit dem konkreten Dateisystem des Mediums umgehen und lädt anhand eines Dateinamens die dritte Stufe
- Die dritte Stufe ist nun der eigentliche Bootloader und lädt eine Konfigurationsdatei, die z. B
- ein Auswahlmenü enthält
- Ein Menüpunkt könnte die Anweisung beinhalten, einen Bootloader einer anderen Partition zu laden
Dieser mehrstufige Aufbau hat mehrere Vorteile: So kann im oben beschriebenen Fall die Datei des eigentlichen Bootloaders (Stufe 3) beliebig verändert oder auch physisch verschoben werden, da die zweite Stufe mit dem Dateisystem umgehen kann und die dritte Stufe anhand des Dateinamens finden kann
- Außerdem unterliegt ein solcher Bootloader nicht den Beschränkungen der Länge eines Bootblocks
Chain-Loader
Es ist auch möglich, dass mehrere Bootloader sich – wie in einer [Befehls-]Kette (englisch Vorlage:Lang) – nacheinander aufrufen
- Solche Aufrufe – meist über mehrere Partitionen hinweg – wird auch Chain-Loading oder Chainloading (englisch Vorlage:Lang) genannt
- Hierbei kann zuerst ein Bootloader geladen werden, der z. B
- ein Bootmenü zur Betriebssystem-Auswahl darstellt, und anschließend je nach Auswahl in diesem Menü der entsprechende (betriebssystemspezifische) Bootloader
- So lassen sich auch mehrere, unterschiedliche Betriebssysteme in einem sogenannten Multi-Boot-System auf einem Rechner nebeneinander betreiben
Bootloader mit Zusatzfunktion
Manche Bootloader sind gar keine Bootloader mit dem alleinigen Zweck, ein Betriebssystem zu starten
- Beispiele:
- Bootloader, die lediglich anzeigen sollen, dass ein eingelegtes Medium nicht startfähig ist, z. B
- bei Disketten die Textausgabe „Vorlage:Lang“ (MS-DOS 5.0, FAT12/16)
- Bootloader, die auf erkannten Datenspeichern weitere Bootloader erkennen und diese starten
- Zu Zeiten von MS-DOS gab es einige Formatierungsprogramme für Disketten, die eine Auswahl eines zu startenden anderen per BIOS ansprechbaren Geräts erlaubten
- So konnte man z. B
- mit FDFORMAT oder VGA-COPY/386 einen Bootsektor auf Disketten schreiben, der wahlweise oder automatisch von der Festplatte starten konnte
- Auch ist dies z. B
- bei Windows-Installations-CDs der Fall: Wenn auf einer erkannten Festplatte (oder SSD) ein bereits installiertes Betriebssystem erkannt wird, booten diese nur dann von CD, wenn eine beliebige Taste gedrückt wird, ansonsten wird von der lokalen Festplatte gebootet
- So kann das Installationsprogramm nach erfolgreicher Installation den Rechner sofort neustarten
- Das Booten erfolgt zwar wieder von CD, aber nachdem nun keine Taste gedrückt wird, ruft sich das Installationsprogramm nicht erneut selbst auf, sondern übergibt die Kontrolle an die neue Installation
- Bootloader, die gleich ein Anwendungsprogramm starten
- Einige Programme, beispielsweise Memtest86, können direkt und ohne Dateisystem von einer Diskette gestartet werden
- In den 1980er Jahren gab es bei IBM-kompatiblen PCs sogenannte Vorlage:Lang, meist Computerspiele, die direkt und ohne Betriebssystem von der Diskette starteten
- Bootloader, die fehlende oder falsche Funktionen des BIOS bei PC-kompatiblen Rechnern in Software (statt in Firmware) abändern
- Das wurde früher benutzt, um BIOS-Funktionen zu erweitern, damit der Speicher von Festplatten mit mehr als 512 MiB, 8 GiB, 32 GiB oder 128 GiB vollständig erreichbar ist, wie z. B
- EZ-Drive oder OnTrack Disk Manager
- Auch Bootviren sind Bootloader, und in dieser speziellen Form Computerviren, die schon beim Rechner-Start aktiviert werden
- Bootmanager sind Bootloader, die z. B
- auf einem bestimmten Betriebssystem als Dienstprogramm installiert werden können
- Sie bieten meist gegenüber dem vom Betriebssystem bereitgestellten Bootloader erweiterte Konfigurationsmöglichkeiten, etwa ein Bootmenü für Multi-Boot-Konfigurationen
- Beispiele: GRUB auf IBM-kompatiblen PCs mit BIOS oder UEFI (GRUB2 auch auf weiteren Architekturen und Plattformen, etwa Open Firmware auf PowerPC), rEFIt und rEFInd auf x86-UEFI-PCs
- Bootloader, die eine andere Firmware laden
- So kann beispielsweise Tianocore EDK2 (UEFI) von einem, auch wechselbaren, Datenspeicher auf einem PC mit BIOS gestartet werden, welches anschließend ein modernes Betriebssystem, das UEFI voraussetzt, starten kann
- Ebenso kann z. B
- Open Firmware oder Coreboot per Bootloader gestartet werden
Liste von Bootloadern
Name | Bemerkung |
---|---|
ADAM2 | Bootloader von Texas Instruments AR7 |
AiRBoot | benötigt keine primäre Partition, kann von verschiedenen Betriebssystemen aus installiert werden |
Arcboot | Advanced Risc Console (Bootloader früherer DEC-Alpha-Systeme) |
Akernelloader | x86 bootloader |
Amiboot | Von AmigaOS aus ausführbarer Linux-Loader auf Amiga-Computern; wird von AmigaOS aus konfiguriert |
barebox | Modularer, universeller Bootloader für Eingebettete Systeme (ehemals u-boot-v2) |
BootEasy | FreeBSD-Bootmanager |
bootman | Bootloader, verwendet unter BeOS, ZETA und Haiku |
Bootmgr | Bootloader aller Windows-Systeme ab Windows Vista |
BootStar | Universeller Bootmanager |
Boot-US | Universeller Bootmanager |
BootX | Bootloader für Mac OS X auf der PowerPC-Plattform mit Open Firmware; /System/Library/CoreServices/BootX
|
BootX | Von klassischem Mac OS ab Mac OS 8 aus fungierender Linux-Bootloader auf Macintosh-Computern mit „Old World“-PowerPC-Architektur, der eine Startauswahl zwischen Mac OS und Linux bietet
|
burg | Basiert auf Grub. (vergleichbar mit grub24dos) |
Clover | Der „Clover EFI bootloader“, manchmal auch CloverEFI, ist ein Bootloader mit Fokus auf Multi-Boot-Systeme und macOS mit zahlreichen Möglichkeiten zur Konfiguration
|
Colilo | Ein LILO-Derivat für die Coldfire-Prozessorfamilie von Motorola |
EasyBCD | Wird zum Konfigurieren und Anpassen des von Microsoft entwickelten Bootloaders Bootmgr verwendet |
elilo | Bootloader für Linux auf der Itanium-Architektur (IA-64), EFI-basiert |
EMILE (Early Macintosh Image LoadEr) | Bootloader für Linux auf einem m68k-Macintosh |
eXtended FDisk | DOS-Dienstprogramm zur Bootmanager-Einrichtung und Festplatten-Partitionierung, als Ersatz für fdisk entwickelt, belegt selbst keine Partition und unterstützt versteckte Partitionen, GPL |
EXTlinux | Im Softwarepaket von SYSLINUX mit enthalten |
FILO | |
GAG (Gestor de Arranque Grafico) | Dateisystem-agnostischer Bootloader. Freie Software (GPL), mehrsprachig (unter anderem deutsch) |
GRUB (Grand Unified Bootloader) | Freie Software (GPL), der Bootloader des GNU Projekts (englisch) – offizielle Entwickler-Webseite |
Grand Unified Bootloader for DOS (GRUB4DOS) | Freie Software (GPL), basiert auf Grub |
Grub24Dos | Grub2-Derivat vergleichbar mit burg |
Gummiboot | Linux-Bootloader für UEFI-basierte Hardware, der von den Red-Hat-Entwicklern Kay Sievers und Harald Hoyer als Alternative zu GRUB geschaffen wurde
(Gummiboot benötigt mindestens Linux-Kernel 3.3.0 und läuft nicht auf IBM-PC-kompatiblen Systemen mit „Legacy-BIOS“.) 2015 wurde Gummiboot in systemd integriert |
iBoot | Bootloader der iOS-basierten iDevices von Apple (z. B. iPad, iPhone, iPod) |
ISOlinux | Im Softwarepaket von SYSLINUX mit enthalten |
Linux Loader (LILO) | Dateisystem-agnostischer Bootloader für Linux und andere Systeme, benötigt Initialisierungsaufruf nach Kerneländerung, BSD-Lizenz |
Loadlin | Von Windows 3.x/9x oder PC-kompatiblem DOS aus ausführbarer Bootloader für Linux, der auch von Windows aus konfiguriert werden kann |
NeoGRUB | Eingebunden in die Bootwerkzeug-Software EasyBCD |
NT-Loader (NTLDR) | Bootloader aller Windows-NT-Systeme von NT 3.1 bis XP/2003 |
OpenBIOS | freie Implementierung des Open-Firmware-Standards |
PALO | Bootloader für die PA-RISC-Architektur-Prozessorhardware von Hewlett Packard |
Penguin | Von System 6, System 7 und Mac OS 8 aus ausführbarer Linux-Loader auf m68k-Macintoshs (klassisches Mac OS, Versionen 6.0–8.1); wird von Mac OS aus konfiguriert |
PLoP | Ein Bootloader, der auch mit älteren PCs ohne BIOS-Unterstützung von CDROM bzw |
PXElinux | Im Softwarepaket von SYSLINUX mit enthalten |
Redboot | Bootloader für Embedded Systeme wie auf Atheros basierende WLAN-Router |
Quik | Bootloader für Linux auf einem Old-World-PowerPC-Macintosh mit Open Firmware |
rEFInd | Erbe von rEFIt
|
rEFIt | Inoffizieller Bootloader für Macs, der ein Auswahlmenü für die einfachere Multi-Boot-Konfiguration für Windows, welches einen Hybrid-MBR nutzt, erleichtert
|
ROM-Monitor | Die Firmware für Ciscos Netzwerkgeräte |
Sparc Improved Loader (SILO) | |
Smart BootManager | Bootloader von SPBLinux |
SmartFirmware | Bootloader des Pegasos |
SyMon Bootmanager | Universeller Bootmanager |
SYSLINUX | Ein Paket mit einem ganzen Bündel von Bootloadern: EXTlinux für das Booten vom ext2-, vom ext3-, vom ext4- sowie vom btrfs-Dateisystem aus, etwa auf Linux, des Weiteren ISOlinux für das Booten vom iso-Dateisystem aus, meist residierend auf optischen Disks wie CDs bzw
|
Vorlage:Nowrap (auch: Vorlage:Nowrap) | In systemd integrierter einfacher UEFI-Bootmanager und Weiterentwicklung von Gummiboot |
Das U-Boot (ehemals PPCBoot) | Universeller Bootloader, vor allem für Eingebettete Systeme |
VAMOS | Kommerzieller Bootloader, läuft auf MS-DOS-Systemen, Entwicklung eingestellt |
Yaboot | Bootloader für Linux auf einem New-World-PowerPC-Macintosh und anderen PowerPC-Systemen |
XOSL | Universalbootloader mit grafischer Oberfläche, GPL |
ZBOOT |