SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
6 Stages of Linux Boot Process (Startup Sequence)
by RA MESH N AT ARA JAN on FEBRUARY 7, 2011


Press the power button on your system, and after few
moments you see the Linux login prompt.

Have you ever wondered what happens behind the scenes
from the time you press the power button until the Linux login
prompt appears?

The following are the 6 high level stages of a typical Linux
boot process.




1. BIOS
     BIOS stands for Basic Input/Output System
     Performs some system integrity checks
     Searches, loads, and executes the boot loader program.
     It looks for boot loader in floppy, cd-rom, or hard drive.
    You can press a key (typically F12 of F2, but it depends on
your system) during the BIOS startup to change the boot
    sequence.
      Once the boot loader program is detected and loaded
    into the memory, BIOS gives the control to it.
      So, in simple terms BIOS loads and executes the MBR
    boot loader.

2. MBR
      MBR stands for Master Boot Record.
      It is located in the 1st sector of the bootable disk.
    Typically /dev/hda, or /dev/sda
      MBR is less than 512 bytes in size. This has three
    components 1) primary boot loader info in 1st 446 bytes 2)
    partition table info in next 64 bytes 3) mbr validation check
    in last 2 bytes.
      It contains information about GRUB (or LILO in old
    systems).
      So, in simple terms MBR loads and executes the GRUB
    boot loader.

3. GRUB
      GRUB stands for Grand Unified Bootloader.
      If you have multiple kernel images installed on your
    system, you can choose which one to be executed.
      GRUB displays a splash screen, waits for few seconds, if
    you don’t enter anything, it loads the default kernel image
    as specified in the grub configuration file.
      GRUB has the knowledge of the filesystem (the older
    Linux loader LILO didn’t understand filesystem).
      Grub configuration file is /boot/grub/grub.conf
    (/etc/grub.conf is a link to this). The following is sample
    grub.conf of CentOS.
#boot=/dev/sda

    default=0

    timeout=5

    splashimage=(hd0,0)/boot/grub/splash.xpm.gz

    hiddenmenu

    title CentOS (2.6.18-194.el5PAE)

                 root (hd0,0)

              kernel /boot/vmlinuz-2.6.18-194.el5PAE ro
    root=LABEL=/

                 initrd /boot/initrd-2.6.18-194.el5PAE.img


      As you notice from the above info, it contains kernel and
    initrd image.
      So, in simple terms GRUB just loads and executes
    Kernel and initrd images.

4. Kernel
      Mounts the root file system as specified in the “root=” in
    grub.conf
      Kernel executes the /sbin/init program
      Since init was the 1st program to be executed by Linux
    Kernel, it has the process id (PID) of 1. Do a ‘ps -ef | grep
    init’ and check the pid.
     initrd stands for Initial RAM Disk.
     initrd is used by kernel as temporary root file system until
    kernel is booted and the real root file system is mounted. It
    also contains necessary drivers compiled inside, which
    helps it to access the hard drive partitions, and other
    hardware.

5. Init
      Looks at the /etc/inittab file to decide the Linux run level.
      Following are the available run levels
             0 – halt
             1 – Single user mode
             2 – Multiuser, without NFS
             3 – Full multiuser mode
             4 – unused
             5 – X11
             6 – reboot
      Init identifies the default initlevel from /etc/inittab and
    uses that to load all appropriate program.
      Execute ‘grep initdefault /etc/inittab’ on your system to
    identify the default run level
      If you want to get into trouble, you can set the default run
    level to 0 or 6. Since you know what 0 and 6 means,
    probably you might not do that.
      Typically you would set the default run level to either 3 or
    5.

6. Runlevel programs
      When the Linux system is booting up, you might see
    various services getting started. For example, it might say
    “starting sendmail …. OK”. Those are the runlevel
programs, executed from the run level directory as defined
  by your run level.
    Depending on your default init level setting, the system
  will execute the programs from one of the following
  directories.
         Run level 0 – /etc/rc.d/rc0.d/
         Run level 1 – /etc/rc.d/rc1.d/
         Run level 2 – /etc/rc.d/rc2.d/
         Run level 3 – /etc/rc.d/rc3.d/
         Run level 4 – /etc/rc.d/rc4.d/
         Run level 5 – /etc/rc.d/rc5.d/
         Run level 6 – /etc/rc.d/rc6.d/
    Please note that there are also symbolic links available
  for these directory under /etc directly. So, /etc/rc0.d is
  linked to /etc/rc.d/rc0.d.
    Under the /etc/rc.d/rc*.d/ directories, you would see
  programs that start with S and K.
    Programs starts with S are used during startup. S for
  startup.
    Programs starts with K are used during shutdown. K for
  kill.
    There are numbers right next to S and K in the program
  names. Those are the sequence number in which the
  programs should be started or killed.
    For example, S12syslog is to start the syslog deamon,
  which has the sequence number of 12. S80sendmail is to
  start the sendmail daemon, which has the sequence
  number of 80. So, syslog program will be started before
  sendmail.
There you have it. That is what happens during the Linux boot
process.

More Related Content

PDF
Linux Internals - Interview essentials - 1.0
PPT
Storage Management in Linux OS.ppt
PPT
BITS: Introduction to linux, distributions and installation
DOCX
6 stages of linux boot process
PPTX
Linux watchdog timer
PPTX
Staring into the eBPF Abyss
PPTX
Linux Boot Process
PPTX
Kernel. Operating System
Linux Internals - Interview essentials - 1.0
Storage Management in Linux OS.ppt
BITS: Introduction to linux, distributions and installation
6 stages of linux boot process
Linux watchdog timer
Staring into the eBPF Abyss
Linux Boot Process
Kernel. Operating System

What's hot (20)

PDF
Linux boot process
PPT
Linux file system
PPT
OPERATING SYSTEMS - INTRODUCTION
PDF
Kdump and the kernel crash dump analysis
PDF
Embedded Linux Kernel - Build your custom kernel
PDF
Kernel Module Programming
PPTX
Linux Memory Management with CMA (Contiguous Memory Allocator)
PDF
Linux boot process – explained
PPTX
Booting process by Amar singh
PDF
Building Embedded Linux Full Tutorial for ARM
PPTX
Linux file system
PPTX
Network and System Administration Power Point
PDF
Course 102: Lecture 22: Package Management
PPT
PDF
Boot process: BIOS vs UEFI
PPTX
Multithreading
PPT
Linux command ppt
PDF
PPTX
Linux booting Process
PDF
Linux-Internals-and-Networking
Linux boot process
Linux file system
OPERATING SYSTEMS - INTRODUCTION
Kdump and the kernel crash dump analysis
Embedded Linux Kernel - Build your custom kernel
Kernel Module Programming
Linux Memory Management with CMA (Contiguous Memory Allocator)
Linux boot process – explained
Booting process by Amar singh
Building Embedded Linux Full Tutorial for ARM
Linux file system
Network and System Administration Power Point
Course 102: Lecture 22: Package Management
Boot process: BIOS vs UEFI
Multithreading
Linux command ppt
Linux booting Process
Linux-Internals-and-Networking
Ad

Viewers also liked (6)

PPTX
PPT
PPTX
Linux Kernel Tour
PPTX
FOSS_GNU/Linux
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PPTX
A general Overview of linux !!
Linux Kernel Tour
FOSS_GNU/Linux
Bootstrap process of u boot (NDS32 RISC CPU)
A general Overview of linux !!
Ad

Similar to 6 stages of linux boot process (20)

DOCX
6 stages of linux boot process
DOCX
6 stages of linux boot process
PPTX
Order of boot process in Linux
PPTX
Linux startup
PPTX
Introduction to Operating Systems.pptx
PPTX
Bootloader and bootloading
PPT
Linux Booting Process
PPT
101 1.2 boot the system
PPTX
Linux basics
PPT
Linux Booting Procedure system and networking.ppt
PPTX
Linux basics
PPT
Unix Administration 2
PPTX
An Insight into the Linux Booting Process
PPT
Linux booting procedure
PPTX
Linux boot process
PDF
Linux booting procedure
PDF
Recipe of a linux Live CD (archived)
PPTX
introduction to computer Linux essential.pptx
PPTX
Linux booting process!!
PPT
Linux Booting Steps
6 stages of linux boot process
6 stages of linux boot process
Order of boot process in Linux
Linux startup
Introduction to Operating Systems.pptx
Bootloader and bootloading
Linux Booting Process
101 1.2 boot the system
Linux basics
Linux Booting Procedure system and networking.ppt
Linux basics
Unix Administration 2
An Insight into the Linux Booting Process
Linux booting procedure
Linux boot process
Linux booting procedure
Recipe of a linux Live CD (archived)
introduction to computer Linux essential.pptx
Linux booting process!!
Linux Booting Steps

6 stages of linux boot process

  • 1. 6 Stages of Linux Boot Process (Startup Sequence) by RA MESH N AT ARA JAN on FEBRUARY 7, 2011 Press the power button on your system, and after few moments you see the Linux login prompt. Have you ever wondered what happens behind the scenes from the time you press the power button until the Linux login prompt appears? The following are the 6 high level stages of a typical Linux boot process. 1. BIOS  BIOS stands for Basic Input/Output System  Performs some system integrity checks  Searches, loads, and executes the boot loader program.  It looks for boot loader in floppy, cd-rom, or hard drive. You can press a key (typically F12 of F2, but it depends on
  • 2. your system) during the BIOS startup to change the boot sequence.  Once the boot loader program is detected and loaded into the memory, BIOS gives the control to it.  So, in simple terms BIOS loads and executes the MBR boot loader. 2. MBR  MBR stands for Master Boot Record.  It is located in the 1st sector of the bootable disk. Typically /dev/hda, or /dev/sda  MBR is less than 512 bytes in size. This has three components 1) primary boot loader info in 1st 446 bytes 2) partition table info in next 64 bytes 3) mbr validation check in last 2 bytes.  It contains information about GRUB (or LILO in old systems).  So, in simple terms MBR loads and executes the GRUB boot loader. 3. GRUB  GRUB stands for Grand Unified Bootloader.  If you have multiple kernel images installed on your system, you can choose which one to be executed.  GRUB displays a splash screen, waits for few seconds, if you don’t enter anything, it loads the default kernel image as specified in the grub configuration file.  GRUB has the knowledge of the filesystem (the older Linux loader LILO didn’t understand filesystem).  Grub configuration file is /boot/grub/grub.conf (/etc/grub.conf is a link to this). The following is sample grub.conf of CentOS.
  • 3. #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.el5PAE.img  As you notice from the above info, it contains kernel and initrd image.  So, in simple terms GRUB just loads and executes Kernel and initrd images. 4. Kernel  Mounts the root file system as specified in the “root=” in grub.conf  Kernel executes the /sbin/init program  Since init was the 1st program to be executed by Linux Kernel, it has the process id (PID) of 1. Do a ‘ps -ef | grep init’ and check the pid.
  • 4. initrd stands for Initial RAM Disk.  initrd is used by kernel as temporary root file system until kernel is booted and the real root file system is mounted. It also contains necessary drivers compiled inside, which helps it to access the hard drive partitions, and other hardware. 5. Init  Looks at the /etc/inittab file to decide the Linux run level.  Following are the available run levels  0 – halt  1 – Single user mode  2 – Multiuser, without NFS  3 – Full multiuser mode  4 – unused  5 – X11  6 – reboot  Init identifies the default initlevel from /etc/inittab and uses that to load all appropriate program.  Execute ‘grep initdefault /etc/inittab’ on your system to identify the default run level  If you want to get into trouble, you can set the default run level to 0 or 6. Since you know what 0 and 6 means, probably you might not do that.  Typically you would set the default run level to either 3 or 5. 6. Runlevel programs  When the Linux system is booting up, you might see various services getting started. For example, it might say “starting sendmail …. OK”. Those are the runlevel
  • 5. programs, executed from the run level directory as defined by your run level.  Depending on your default init level setting, the system will execute the programs from one of the following directories.  Run level 0 – /etc/rc.d/rc0.d/  Run level 1 – /etc/rc.d/rc1.d/  Run level 2 – /etc/rc.d/rc2.d/  Run level 3 – /etc/rc.d/rc3.d/  Run level 4 – /etc/rc.d/rc4.d/  Run level 5 – /etc/rc.d/rc5.d/  Run level 6 – /etc/rc.d/rc6.d/  Please note that there are also symbolic links available for these directory under /etc directly. So, /etc/rc0.d is linked to /etc/rc.d/rc0.d.  Under the /etc/rc.d/rc*.d/ directories, you would see programs that start with S and K.  Programs starts with S are used during startup. S for startup.  Programs starts with K are used during shutdown. K for kill.  There are numbers right next to S and K in the program names. Those are the sequence number in which the programs should be started or killed.  For example, S12syslog is to start the syslog deamon, which has the sequence number of 12. S80sendmail is to start the sendmail daemon, which has the sequence number of 80. So, syslog program will be started before sendmail. There you have it. That is what happens during the Linux boot process.