Proceso de arranque en Linux
Determinadas BIOS pueden cargar y pasar el control a Linux sin hacer uso del cargador.Para los dispositivos con arranque mediante UEFI, el cargador de arranque se almacena como ejecutable EFI en la partición ESP. EFISTUB es una característica del núcleo Linux que permite ejecutarse a sí mismo mediante la incrustación de código que lo convierte en un ejecutable EFI; los parámetros son pasados al núcleo mediante variables EFI, y este debe ser capaz de encontrar y cargar el archivo initrd.El espacio de usuario temprano se utiliza en las versiones más recientes del núcleo Linux para sustituir tantas funciones como sea posible que originalmente se harían en el núcleo durante el proceso de inicio.Un cargador de arranque (boot loader en inglés) es un programa diseñado exclusivamente para cargar un sistema operativo en memoria.Bajo LILO, esto se hace a través del mapa instalado que lee el archivo de configuración /etc/lilo.conf para identificar los sistemas disponibles.Incluye datos como la partición de arranque y la localización del kernel para cada uno, así como las opciones personalizadas en su caso.Por lo tanto todos los cambios en su configuración deben ser escritos en el MBR y luego reiniciar el sistema.Un error en la configuración puede dejar el disco inservible para el proceso de arranque hasta tal grado, que sea necesario usar otro dispositivo (disquete, etc) que contenga un programa capaz de arreglar el error.Otro caso es cuando Linux se encuentra en un dispositivo que el BIOS no lo tiene disponible para el arranque.El kernel es cargado normalmente como un archivo imagen, comprimido dentro de otro con zlib como zImage o bzImage.Contiene una cabecera de programa que hace una cantidad mínima de instalación del hardware, descomprime la imagen completamente en la memoria alta, teniendo en cuenta cualquier disco RAM si está configurado.Durante el arranque del sistema, se verifica si existe un nivel de ejecución predeterminado en el archivo /etc/inittab, si no, se debe introducir por medio de la consola del sistema.Después se procede a ejecutar todos los scripts relativos al nivel de ejecución especificado.