Let’s describe Linux Boot Process:
Basic INPUT/OUTPUT System.
Master Boot Record
Grand Unified Bootloader
Executes Run level programs
|Run Level||Run Level Programs are executed from /etc/rc.d/rc*.d/|
- As power comes up the BIOS is given control
- BIOS runs self tests, usually including cursory memory tests.
- The BIOS then loads the first sector of the disk to be used for booting and transfers control to it.
- The MBR code varies. One version will chain to the code in the first sector of the boot partition (Windows), another will load a bootloader. Windows boot proceeds from code and information in the boot partition.
- The bootloader chooses kernel location and version
- The bootloader prepares kernel and initrd image in memory, transfers control to kernel
- Loading kernel modules
- Discovering hardware and load additional kernel modules to support it
- Looking for disks
- R/O mount of / partition so that it can potentially be checked and repaired
- init process spawn
- /etc/inittab read and executing
- Mounting all FSes from /etc/fstab
- runlevels running (based on default runlevel in /etc/inittab) or another init method such as systemd or upstart
- login prompt