Linux Boot Process Explained Step by Step in Detail

Written by - Deepak Prasad

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:

Run level 3 refers to

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.


Deepak Prasad

He is the founder of GoLinuxCloud and brings over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels in various domains, from development to DevOps, Networking, and Security, ensuring robust and efficient solutions for diverse projects. You can reach out to him on his LinkedIn profile or join on Facebook page.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to

Thank You for your support!!

6 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?

    • 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.


Leave a Comment