Linux Second-Stage-Bootloader
Second-Stage-Bootloader wie GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR oder iBoot sind selbst keine Betriebssysteme, können aber ein Betriebssystem ordnungsgemäß laden und die Ausführung an dieses übertragen; das Betriebssystem initialisiert sich anschließend selbst und kann zusätzliche Gerätetreiber laden. Der Second-Stage-Bootloader benötigt für seinen eigenen Betrieb keine Treiber, sondern kann stattdessen generische Speicherzugriffsmethoden verwenden, die von der Systemfirmware wie dem BIOS oder der Open Firmware bereitgestellt werden, allerdings in der Regel mit eingeschränkter Hardwarefunktionalität und geringerer Leistung.

Viele Bootloader können so konfiguriert werden, dass sie dem Benutzer mehrere Bootmöglichkeiten bieten. Dazu gehören verschiedene Betriebssysteme (für Dual- oder Multiboot von verschiedenen Partitionen oder Laufwerken), verschiedene Versionen desselben Betriebssystems (für den Fall, dass eine neue Version unerwartete Probleme aufweist), verschiedene Optionen zum Laden des Betriebssystems (z. B, (z. B. Booten in einen Rettungs- oder abgesicherten Modus) und einige eigenständige Programme, die ohne Betriebssystem funktionieren, wie z. B. Speichertester (z. B. memtest86+), eine einfache Shell (wie in GNU GRUB) oder sogar Spiele (siehe Liste der PC-Boot-Spiele).Einige Bootloader können auch andere Bootloader laden; GRUB lädt z. B. BOOTMGR, anstatt Windows direkt zu laden. In der Regel wird eine Standardauswahl mit einer Zeitverzögerung vorgewählt, während der der Benutzer eine Taste drücken kann, um die Auswahl zu ändern; nach dieser Verzögerung wird die Standardauswahl automatisch ausgeführt, sodass der normale Bootvorgang ohne Interaktion stattfinden kann.

Der Bootvorgang kann als abgeschlossen betrachtet werden, wenn der Computer bereit ist, mit dem Benutzer zu interagieren, oder das Betriebssystem in der Lage ist, System- oder Anwendungsprogramme auszuführen.

Viele eingebettete Systeme müssen sofort booten. Zum Beispiel ist es in der Regel nicht akzeptabel, eine Minute zu warten, bis ein digitales Fernsehgerät oder ein GPS-Navigationsgerät startet. Deshalb haben solche Geräte Softwaresysteme im ROM oder Flash-Speicher, damit das Gerät sofort funktionieren kann. Es ist nur wenig oder gar kein Laden notwendig, weil das Laden vorberechnet und im ROM gespeichert werden kann, wenn das Gerät hergestellt wird.

Große und komplexe Systeme können Boot-Prozeduren haben, die in mehreren Phasen ablaufen, bis schließlich das Betriebssystem und andere Programme geladen und zur Ausführung bereit sind. Da Betriebssysteme so konzipiert sind, dass sie nie starten oder stoppen, kann ein Bootloader das Betriebssystem laden, sich selbst als reinen Prozess innerhalb dieses Systems konfigurieren und dann die Kontrolle unwiderruflich an das Betriebssystem übergeben. Der Bootloader wird dann ganz normal beendet, wie jeder andere Prozess auch.
Ein zweistufiger Bootloader besteht eigentlich aus zwei Bootloadern hintereinander. Der erste ist klein und hat nur den Zweck, den zweiten zu laden. Der zweite kann dann den gesamten Code enthalten, der zum Laden des Kernels benötigt wird. GRUB verwendet zwei (oder wohl eher drei) Stufen.
Linux Second-stage boot loader
Second-stage boot loaders, such as GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR or iBoot, are not themselves operating systems, but are able to load an operating system properly and transfer execution to it; the operating system subsequently initializes itself and may load extra device drivers. The second-stage boot loader does not need drivers for its own operation, but may instead use generic storage access methods provided by system firmware such as the BIOS or Open Firmware, though typically with restricted hardware functionality and lower performance.

Many boot loaders can be configured to give the user multiple booting choices. These choices can include different operating systems (for dual or multi-booting from different partitions or drives), different versions of the same operating system (in case a new version has unexpected problems), different operating system loading options (e.g., booting into a rescue or safe mode), and some standalone programs that can function without an operating system, such as memory testers (e.g., memtest86+), a basic shell (as in GNU GRUB), or even games (see List of PC Booter games).Some boot loaders can also load other boot loaders; for example, GRUB loads BOOTMGR instead of loading Windows directly. Usually, a default choice is preselected with a time delay during which a user can press a key to change the choice; after this delay, the default choice is automatically run so normal booting can occur without interaction.

The boot process can be considered complete when the computer is ready to interact with the user, or the operating system is capable of running system programs or application programs.

Many embedded systems must boot immediately. For example, waiting a minute for a digital television or a GPS navigation device to start is generally unacceptable. Therefore, such devices have software systems in ROM or flash memory so the device can begin functioning immediately; little or no loading is necessary, because the loading can be precomputed and stored on the ROM when the device is made.

Large and complex systems may have boot procedures that proceed in multiple phases until finally the operating system and other programs are loaded and ready to execute. Because operating systems are designed as if they never start or stop, a boot loader might load the operating system, configure itself as a mere process within that system, and then irrevocably transfer control to the operating system. The boot loader then terminates normally as any other process would.
A two-stage bootloader actually consists of two bootloaders after each other. The first being small with the sole purpose of loading the second one. The second one can then contain all the code needed for loading the kernel. GRUB uses two (or arguably, three) stages.