Home Tutorials Linux Boot Process: Explained Step by Step for Beginners

Linux Boot Process: Explained Step by Step for Beginners

Booting a computer is the very first step to use the system. No matter which operating system you chose to run your system, you need to know how to boot the system. In Linux, the necessary steps for booting a computer is a very straightforward process. If you use a personal computer (PC), you might find the CPU power switch. On the other hand, if you are using a notebook or a laptop, you would find the power button right above the keyboard. Nowadays, some notebook manufacturing companies are often placing the power button along with the keyboard to make the system compact.

However, a Linux system’s booting procedure is an effortless and uncomplicated task, but knowing tiny detailed information about the Linux boot process might help you if you fall into any troubles while booting the system.

Linux Boot Process


In Linux, the login page is handled by the GNOME Display Manager (GDM) or the LightDM. When you press the power button, an electrical signal passes through your system’s motherboard and awakens the entire hardware system. As we all know, the Linux kernel works in a very different method than the traditional booting system. In Linux, the boot process includes a few steps.

Linux’s boot process activates the kernel user mode that activates the BIOS, MBR, boot menu, GRUB, and the login page. To cover the entire method of the Linux booting process, we will also discuss the power supply, hardware setup, hardware virtualization, storage system, RAM, complementary MOS (CMOS) battery, and all the other booting related topics.

1. Power Supply: The Ignition Switch of A PC


Of course, the power supply is the vital hardware part that powers your entire Linux system. If you are a notebook user, apparently, you don’t need to worry about the power supply unit (PSU). Laptop and notebooks come with a certain arrangement of the power supply unit. You need to plug in the battery to power your system.

On the other hand, if you are a desktop user, you have to select the right power supply unit for your Linux system. Sometimes a power supply with a low strength can be the reason for an unsuccessful booting. It has been seen that the hefty GPU and other extended USB accessories consume more power than a regular system. If you want to avoid the risk of an unsuccessful booting, you must use a good PSU.

When you press the power button, the electric signal activates the entire system of your computer. As previously, I have recommended getting a robust power supply; I must mention that a high-power GPU and CPU require more power at the booting stage, and Linux consumes a little bit extra more power than the Windows system.

2. BIOS: The Firmware of the Computer


The BIOS stands for the basic input-output system. It is the most crucial segment of a computer that allows the user to communicate with the hardware. BIOS is also known as the computer’s firmware that can initialize the booting process of your Linux system. When you press the power button, it powers up the BIOS, and then the BIOS starts looking for a boot device to run the operating system.

If all the process of powering the BIOS and finding the booting device goes right, the computer generates a single beep sound that reffed as the system is ready to load the OS. This whole process is called the Power On Self Test (POST).

You can use the function keys (F1-F12) at the BIOS mode to set the boot priority, configuration the hardware, and enter the system recovery. Inside the BIOS menu, you will find the BIOS version, BIOS vendor, UUID number, type of your processor, and other detailed pieces of information about your system.

The BIOS menu or the configuration settings may vary from vendor to vendor. But the basic BIOS settings will be the same. If by any accident you cant load the BIOS option, there is a chance that your BIOS has crashed. In that case, you need to download the BIOS file and flash it on your computer. Otherwise, you won’t be able to enter the boot process of your Linux system.

3. MBR: Master Boot Record on Linux


If you’re thinking about switching from Windows to Linux, there is a chance that you have already heard the term MBR vs. GPT. Master boot record or in the shot MBR is well known among Linux enthusiasts because it is maintainable from the BIOS system. Basically, the MBR partition holds the boot records and the booting related files.

In the Linux system’s boot process, the MBR partition also stores the data about all the other storage drives and how they will be acting on your Linux system. If you mess up with the MBR partition, your Linux system is in trouble.

It only requires 4096 Bits of storage to store the GRUB and Linux booting files inside the MBR partition. Though the MBR partition is found in Linux distributions, the GPT partitioning scheme replaces the MBR table in the modern era. Actually, using the GPT scheme is safer than using the MBR scheme for multiple booting.

4. Boot Menu: Select the Device to Load the OS


In Linux, the boot menu is a drop-down menu where you can select your operating system. If you have had multiple Linux distributions or other operating systems installed inside your machine, you can add them to the boot menu. As Linux is a kernel-based operating system, the latest installed OS will be shown at the top of the boot menu.

In the picture below, you can see that I have installed Ubuntu, Fedora, Manjaro, and Windows operating system on my machine. As all of the operating systems are installed in the EFI (Extensible Firmware Interface) mode, I can choose whichever Linux operating system I want to boot. You can change the order of the boot menu from the boot menu under the BIOS settings.

boot process of a Linux system

In the process of Linux booting, there are two types of boot available for Linux distributions. They are known as the cold boot and the warm boot. Suppose you add multiple users in a Linux system and switch user accounts by properly powering off the Pc; that booting system is known as the cold boot. On the contrary, if you switch the user accounts by rebooting your Linux system, that booting method is the warm boot.

5. GRUB and initrd: Load the OS on the Boot Process


The Initial RAM Disk (intrd) is designed to be used as a temporary filesystem for a Linux system to find the mounted EFI boot files. You might have remembered that you have to assign a disk partition to store the bootloader files when you make a clean installing of a Linux distribution. Otherwise, you would not be able to load the operating system.

In most Linux distributions, the bootloader files are stored inside the /boot/efi directory. I must mention that the bootloader is not only used to load the operating system; you can also use the GRUB bootloader to recover the password of your Linux system.

In Linux, there two primary types of bootloader are available to load the operating system. They are known as the LILO and GRUB. The LILO stands for Linux Loader, and the GRUB stands for GNU GRUB. The LILO bootloader was seen in the earlier versions of Linux distributions. On the other hand, the GRUB bootloader is modern and can load multiple bootloaders.

When the bootloader part is done, you have to face a login stage to enter the Linux system. In Linux, two types of display managers are mostly used. They are the GNOME Display Manager (GDM) and the LightDM. On Ubuntu and other Debian distributions, the GDM is pre-installed inside the system. However, you can change and customize the display manager anytime you want.

6. Linux Kernel: Interact with the Core of your Computer


Most of the new Linux users make a common mistake while learning Linux. They use to learn that Linux is an operating system. But actually, Linux is not an operating system; It’s a kernel. The kernel is often referred to as the heart of an operating system.

However, in the boot process of Linux, the kernel plays a significant role. It makes the interaction between the core components and the OS. When the bootloader loads the OS, the kernel loads the system on the initial RAM. The kernel is located inside the /boot directory. Once the booting is done, the kernel handles all the operational works of an operating system.

If you are using an older version of PC and an outdated version of Linux distributions, you may face some hardware issues that can be the reason to fail the Linux boot process. However, you can upgrade the kernel of your Linux system to overcome those issues.

7. Runlevel State: Know the Boot Process Status of Your Compute


The runlevel state of a Linux system is defined as when your Linux system has finished the booting process and is ready to be used. Or more simply, that immediate state of a computer where the power options, user-mode option, and the entire environment can be operated is known as the runlevel state.

In the Linux boot process, the runlevel state plays an important role in warming up the system. In this state, the kernel warm-ups, the CPU start functioning, and the desktop environment loads the applications.

In the Linux boot process, the runlevel state is represented with an alphabetic and a numeric token. If you at the picture given below, you can see that my Linux computer’s current runlevel status is N 5; that means my computer has already finished the booting process, and my system has more than one user. For better understanding, you can visit this page to know the definitions of other runlevel symbols.

8. CMOS: Records the Data of the Linux Boot Process


Complementary Metal Oxide Semiconductor or, in short, the CMOS chip is an important chip that is attached to the motherboard of your computer. The CMOS chip stores the boot sequence and loads the boot directories. It also retains the time settings and the security settings of the BIOS.

In modern motherboards, the CMOS chip is integrated with the printed circuit board. The CMOS can stay alive even after you power off your computer. The CMOS is powered by a small battery named the CMOS battery.

If you remove the CMOS battery after shutting down your system, all the BIOS settings, boot process settings will be lost, and the BIOS will be restored in the default factory setting mode.

9. Virtualization: Enable Virtualization Technology on a Virtual Machine


The hardware virtualization is a setting that you can find inside the BIOS framework. Typically, you do not need to enable the virtualization technology to boot a regular Linux OS on your machine. But, if you are using a VMware or a virtual machine to boot the Linux system, you probably need to enable the hardware virtualization feature to accelerate your virtual machine’s efficiency.

Extra Tip: Try a Customized Bootloader on Linux


If you are a Linux enthusiast who needs to switch between OS to OS, you can use the Clover bootloader or the OpenCore bootloader instead of your system’s default bootloader. In my opinion, the OpenCore bootloader is better for those who don’t want to mess up with the BIOS system. The OpenCore bootloader doesn’t even need to configure with the ACPI (Advanced Configuration and Power Interface) of your BIOS system.

Final Words


Linux-based operating systems are very interesting to understand the filesystem hierarchy, server-level tasks, and booting processes. I have described all the possible elements that you need to know to get started with the Linux boot process in the entire post. If you are a newcomer to Linux, I hope this post will help you understand the Linux system’s boot process.

If you like this post, please share it with your friends and the Linux community. You can also write your opinions regarding this post in the comment section.

3 COMMENTS

  1. Linux is a perfect example of utterly horrid design when it comes to intuitivity. You install it on a hard drive and it doesn’t even boot. There are no files there for Windows users to read to show how to get it to boot. What were they thinking? Answer: They weren’t thinking at all. This is a perfect example of not seeing the forest for the trees. For those of you living in a cave, divorced from reality, here’s a guide.
    1: It should be easy to start right off the bat, in simple form.
    2: Features can be added as needed.
    Linux will never be adapted by many people if the designers keep their head in the sand. Which is a shame because it has a lot of potential and is very secure and efficient. If there were more users there would be a lot more software to choose from which would draw ever more people in and it would just get better and better.

  2. Hey Jply,
    You have written a ‘big’ comment. You gave a lot of time into this article. I appreciate that.

    I didn’t combine the 4 and 5 because, again, when you have a multi-boot system in your device, there are some specific things that you can change from the BIOS to edit the GRUB and the Boot menu.

    Yes, you can use OpenCore bootloader for Linux. · Boot to Linux through OpenCore, you may want to use UEFI Shell to execute the EFI Application for your bootloader/manager
    Check here, https://github.com/dortania/OpenCore-Multiboot/blob/master/oc/linux.md

    And, please check here the information about the Runlevel pieces of information. The runlevel 3 and 5 are described for multi-user and unused Unused but configured the same as runlevel 3.
    You can check here, https://en.wikipedia.org/wiki/Runlevel

    I have seen that you have noted that I mentioned about what the MBR records. Well, yes, you’re right. The MBR doesn’t record normal data. If you are in a multi-boot system, and all your boot systems are in MBR, it does records how your other operating systems will behave.
    I have mentioned that, Basically, the MBR partition holds the boot records and the booting related files.

  3. tl;dr: Read at least 2 other articles on this topic after reading this one, there are too many discrepancies in this article.

    In section 3, the MBR does NOT “stores the data about all the other storage drives and how they will be acting on your Linux system.” MBR is just a boot record and stores the partition table and boot loader. The MBR of the devicxe does not know anything about other physical storage devices on the system and can only provide information on where the partitions local to that physical device are in relation to the start of the disk. ( https://en.wikipedia.org/wiki/Master_boot_record ) The boot loader uses the partition table to find the boot partition and load the OS. The boot loader then passes to the kernel where to find the files relating to other storage devices and the kernel loads the sets up storage devices and how they will be used on the system.
    In section 4, cold boot and warm boot have nothing to do with “users.” A cold boot is usually when the power is interrupted to the system, either by activating the power switch or using the power cable. As ATX and newer motherboard types do not power off the entire motherboard, this can be a little abiguous, but a cold boot should always use the BIOS (or CMOS) to reload the boot loader stored on the disk, be it Grub or LILO.
    Warm boot on the other hand does not require a power cycle. The operating system can handle a warm reboot and just reload the kernel or completely throw the system back to the BIOS to reload the boot loader and start over. This does not require the releasing of RAM or the initial power on of devices so was always faster. To be clear, the classical cold boot requires the power to be off at some point and a warm boot does not cycle the power.
    To switch users, you only need to Logout by whatever option your user interface offers.
    To switch operationg systems, you must re-boot the machine by either cold boot or warm boot.
    And you should have combined section 4 and 5 as they are both boot code. Your BIOS’s EFI (the blue and white picture) may find the different kernels on your storage device and present you a menu, but it still only loads the boot loader of the selected item and allows that boot loader to load ANY kernel on the system. The picture of GRUB in section 5 is only partially configured as GRUB can be used to identify multiple operating systems and boot loaders (I have a DVD the has more than 50 entrys in a hierarchy for kernels and other boot loaders like LILO, syslinux…). By not showing people they can set up GRUB for multiple OS’s, (and mine has 2 Linux systems, Windows 10, and Windows 7) your are limiting their ability to learn and introducing instability in their systems. People can even use GRUB to load Mac OSX onto their PC from the GRUB menu, although that is a very advance topic. And while we are in this section, although I do not remember if WinXP can use EFI, setting the BIOS to legacy and using GRUB allows you to boot Windows 10, Windows 7 and 8, and Windows XP, along with have entries for all the flavors of Linux and BSD (and any other PCcompatible OS’s) that they want to install.
    Now, the end of section 5 is mostly correct. When the boot loader is doen, it passes control to initrd and the kernel to load the system to the loging stage. I would venture that even Mac’s use the KERNEL to initiate the system and get to the login screen, although I have not seen it directly. But, be sure that the boot loader (i.e. GRUB) does not have enough code to use many peripherals but must pass operation of the computer to the kernel and drivers for your favorite GPU to function at it’s best.After the kernel takes over does the process lead you to the login. In most modern Linux distrobutions, though, this process is hidden and makes many people believe that GRUB loads everything before the log in prompt.
    Section 7: “runlevel status is N 5; that means my computer has already finished the booting process, and my system has more than one user.” The last 5 words are incorrect. Your “system is in a multi-user state.” You only show 1 users, although many, many more can log in.
    Section 8 is correct enough for beginners.
    Extra Tip: Only use Clover or OpenCore if you NEED TO use Mac OSX. The first 3 entries on DuckDuckGo when searching for “Clover Bootloader” were of issues with Clover not functioning politely with non-Mas OSX operating systems. Probably because Clover is a micro-OS to auto-magically find and load OS’s with default setting that they were unable to test on many systems. GRUB is used on billions of systems, and one is likely to be exactly lilke yours.
    OpenCore promotes it’s interoperability with Moc OSX. Hmm, seems the writer of this article is using MAC OSX on a regular basis. Mac’s are OS limited to high end peripherals unless you feel that you know enough about computers to disable that. That is why a Mac is much more expensive and why Apple will not support some PC hardware installed on a Mac even though the motherboard and CPU can support the hardware. But Mac’s are almost as stable as Linux. Kudos.
    Followin the OP’s format:
    Final words, you have not “described all the possible elements that you need to know to get started with the Linux boot process in the entire post.” Also, newcomers to Linux that have an issue before login, although rare, are going to be looking in the wrong part of their system. GRUB WORKS in almost all installs and is likely not the problem if you follow the instructions of a major Linux distribution. If there is a problem, please check the OS loading scripts in /etc before messing with any GRUB configuration scripts. Also make sure, sadly through the command line, that you have the proper kernel modules loaded if you don’t get all the way to GDM or LightDM. Linux always has a Command Line Interface you can log in to if your video card works with that distrobution.
    For beginners it is probably better and faster to first delete the Linux partitions and reinstall with default options before attempting to change GRUB configurations (other than if GRUB’s automation did not detect your Windows “kernel” (ahem, boot loader)).

LEAVE A REPLY

Please enter your comment!
Please enter your name here


Exit mobile version