The Linux boot process differs depending on whether you’re booting directly from hardware (bare metal), or booting a virtualized machine.
This is a term used to indicate you have direct hardware access. In other words, your machine is not running in a virtualized environment.
The boot process on bare metal starts with BIOS.
BIOS stands for “Basic Input/Output System”. It is a very small piece of code contained on a chip on a computer’s motherboard (or system board).
When you start your computer, BIOS is the first software that runs.
Its function is to identify your computer’s hardware, configure, test, and connect it to the OS for further instruction.
To proceed with the boot process, BIOS then checks for a Master Boot Record (MBR).
Master boot record (MBR)
The MBR is (usually) the first 512 bytes of the first sector of a disk. It contains a partition table (which explains how the hard disk is to be partitioned) and the boot loader.
The BIOS checks the MBR for the boot loader and loads it into memory.
A boot loader is the first software that runs when a computer starts. The boot loader loads the kernel, which will take over booting the operating system.
GRUB (GRand Unified Boot Loader) is the most common boot loader for Linux distributions.
The kernel is the core program of an operating system. It is the first program loaded during the boot process.
The kernel’s job during boot (among other things) is to:
- Handles the rest of the start-up process
- Detect the system hardware
- Detect network interfaces and their MAC addresses
- Mount the root disk in read only mode