Linux Boot Process Explained Step by Step in Detail

In this article I will give you an step by step overview of Linux boot process with some flowchart diagrams which can help you understand better.

step by step linux boot process explained in detail

 

Stages of Linux Boot Process (flowchart)

  • BIOS Stage
  • Boot Loader Stage
  • Kernel Stage

Linux Boot Process Explained Step by Step in Detail

 

1. BIOS Stage

  • When the machine is powered on BIOS is the first one to be called to verify if the hardware is present in the machine and if it is functioning.
  • This is done by performing a Power On Self Test (POST)
  • After a successful test, BIOS checks the MBR (Master Boot Record) in the hard disk to check if it refers to the location of the boot loader.

 

Linux boot process explained in detail

 

2. Boot Loader Stage

The boot loader will be installed if an operating system is installed on the system.

Two of the most common boot loaders are

  • The boot loader will present the user with a list of menu entries, each of which corresponds to different operating system
  • The boot loader will then start to boot the operating system
  • When you select the the option to start Linux, it decompresses the Linux kernel in memory
  • After that Linux kernel (which you selected to boot from) loads initrd (Initial ramdisk)
  • The initrd is used by the Linux kernel as a temporary filesystem in the memory
  • It contains tools and kernel modules which will continue the boot process including mounting a virtual root file system temporarily.
  • Instead of using initrd, some Linux filesystem will also use initramfs.
  • It serves the same purpose of initrd, it is just that it is a successor of initrd
  • linuxrc is an executable file that is next spawn, it probes the mass storage hardware and finds a suitable kernel module to drive the mass storage hardware
  • This is required to prepare the real root filesystem to be mounted by the Linux kernel

 

Linux boot process explained in detail

3. Kernel Stage

  • In the kernel stage of the Linux boot sequence, the Linux kernel based on the result of linuxrc can then mount the real root file system
  • The real root file system in Linux is referenced as "/" and it is where all other sub directory and files visible when Linux is running exist
  • The kernel will then spawn the init process, this process always has the process identifier (PID) as "1" because it is the first background process or daemon started by the kernel upon boot
  • All other background daemons are spawned from the init process
  • So the init process will load other system daemons depending upon the configuration of different runlevel

For example:

IMPORTANT NOTE:

Run level 3 refers to multi-user.target

Linux boot process explained in detail

 

Lastly I hope the Linux Boot process explained using flowchart in this article was helpful. So, let me know your suggestions and feedback using the comment section.

 

5 thoughts on “Linux Boot Process Explained Step by Step in Detail”

  1. Is the arrow from bootloader to initrd correct? You say "After that Linux kernel creates initrd"
    So the arrow should go from kernel to initrd, shouldn't it?

    Reply
    • Thank you for highlighting, the text can be little confusing here so I reworded it. The flow chart is correct. The Linux kernel doesnot creates initrd, instead initrd is part of kernel whichcontains important binaries to load virtual file system and detect the hardware to proceed with the boot up.

      Reply

Leave a Comment

Please use shortcodes <pre class=comments>your code</pre> for syntax highlighting when adding code.