Cargador de arranque de segunda etapa de Linux
Los cargadores de arranque de segunda etapa, como GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR o iBoot, no son en sí mismos sistemas operativos, pero son capaces de cargar un sistema operativo correctamente y transferirle la ejecución; posteriormente, el sistema operativo se inicializa a sí mismo y puede cargar controladores de dispositivos adicionales. El cargador de arranque de segunda etapa no necesita controladores para su propio funcionamiento, pero en su lugar puede utilizar métodos genéricos de acceso al almacenamiento proporcionados por el firmware del sistema, como la BIOS o el Firmware Abierto, aunque normalmente con una funcionalidad de hardware restringida y un rendimiento inferior.

Muchos gestores de arranque pueden configurarse para dar al usuario múltiples opciones de arranque. Estas opciones pueden incluir diferentes sistemas operativos (para el arranque dual o múltiple desde diferentes particiones o unidades), diferentes versiones del mismo sistema operativo (en caso de que una nueva versión tenga problemas inesperados), diferentes opciones de carga del sistema operativo (por ejemplo, arrancar en un modo de rescate o seguro), y algunos programas independientes que pueden funcionar sin un sistema operativo, como comprobadores de memoria (por ejemplo, memtest86+), un intérprete de comandos básico (como en GNU GRUB), o incluso juegos (ver Lista de juegos de PC Booter).Algunos gestores de arranque también pueden cargar otros gestores de arranque; por ejemplo, GRUB carga BOOTMGR en lugar de cargar Windows directamente. Normalmente, se preselecciona una opción por defecto con un retardo de tiempo durante el cual el usuario puede pulsar una tecla para cambiar la opción; después de este retardo, la opción por defecto se ejecuta automáticamente para que pueda producirse el arranque normal sin interacción.

El proceso de arranque puede considerarse completo cuando el ordenador está listo para interactuar con el usuario, o el sistema operativo es capaz de ejecutar programas de sistema o programas de aplicación.

Muchos sistemas embebidos deben arrancar inmediatamente. Por ejemplo, esperar un minuto a que se inicie una televisión digital o un dispositivo de navegación GPS suele ser inaceptable. Por lo tanto, tales dispositivos tienen sistemas de software en ROM o memoria flash para que el dispositivo pueda empezar a funcionar inmediatamente; se necesita poca o ninguna carga, porque la carga se puede precalcular y almacenar en la ROM cuando se fabrica el dispositivo.

Los sistemas grandes y complejos pueden tener procedimientos de arranque que proceden en múltiples fases hasta que finalmente el sistema operativo y otros programas se cargan y están listos para ejecutarse. Como los sistemas operativos se diseñan como si nunca se iniciaran ni se detuvieran, un gestor de arranque puede cargar el sistema operativo, configurarse como un mero proceso dentro de ese sistema y, a continuación, transferir irrevocablemente el control al sistema operativo. A continuación, el gestor de arranque termina normalmente como lo haría cualquier otro proceso.
Un gestor de arranque de dos fases consiste en realidad en dos gestores de arranque uno detrás del otro. El primero es pequeño con el único propósito de cargar el segundo. El segundo puede contener entonces todo el código necesario para cargar el núcleo. GRUB utiliza dos (o podría decirse que tres) etapas.
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.