1. System powered on and BIOS starts
2. BIOS checks the h/w components RAM,Keyboard,Mouse,HDD etc are connected and properly configured
3. BIOS sets up the environment and then checks the 1st bootable media (CDROM/LAN/HDD etc.)
4. BIOS searches for MBR (Master Boot Record ) in the bootable media

MBR – is of size 512 bytes which stores the bootable code with the partition table and then sets up the menu

5. BOOTCODE is  checked – STAGE 1 of GRUB

GRUB – Grand Unified Bootloader -The default boot loader in *NIX based systems

6. Grub stage 1.5 is consulted presenting the Grub menuto user

7. From the menu the OS is selected to boot

Q . Where the menu is stored ? ( /boot/grub/grub.conf)

FACTS : The boot files are stored in /boot/grub

Stage 1 file present here with 512 bytes which sits in bootable mediawhich consults with stage 1.5

Stage 1.5 sets up the appropriate file system i.e. wheather to boot from the

CDROM using iso9660 i.e. iso9660_stage1.5  or from the

FAT file system using fat_stage1.5 or from the

XFS file system using XFS_stage1.5 or from the

EXT2FS /EXT3FS using e2fs_stage1.5

Stage 1.5 provides the  drive information which is consulted with from stage 1 to access the File System

8. Grub stage 2 now sets up the environment and calls the INIT process ,which is present in the /sbin (System Binary )

INIT – A special process which sets up the linux environment

The parent process which starts first in a *NIX system with PID 1 and forks other processes .

9.  INIT reads a special file /etc/inittab (A Table file ) , which contains system initialization entries

INITTAB –  contains initdefault and runlevel entries , details here

10. Now INIT sets up and boot appropriate runlevel as defined in inittab file .


About Divyashree - The GNULINUX Guy

I am a Linux and Opensource enthusiast. I started working on Linux early in 2007 while I was doing my Masters in Computer Science and passed out in 2010. Currently working as a DevOps in in Public/Private cloud domain. my @github : my @nagiosexchange : my @linkedin :☁-a9415615
This entry was posted in ARTICLES. Bookmark the permalink.

2 Responses to HOW MOST *NIX SYSTEM BOOTS ..

  1. Xeleema says:

    “How A *NIX System Boots?”
    Odd, my SPARC-based Solaris systems don’t use GRUB, nor do my PA-RISC-based HP-UX systems.
    In fact, my x86_64-based SlackWare Linux boxes don’t use GRUB either.

    Which UNIX or Linux distribution(s) are you referring to?

  2. TobiSGD says:

    I have some corrections for that:
    At first, Grub is not the default bootloader for *NIX systems. It is the default bootloader for many Linux distributions, but not for all. The developers of a particular distro decide which one is the default for their distro (for example LILO on Slackware, isolinux for many Live-systems). Also not all *NIX systems are Linux, the BSDs for example use their own bootloader.

    Point 8.: Grub does not call the init process. grub loads the kernel (and if needed/specified in the configuration file) the initial ramdisk (initrd) into RAM and then hands control over to the kernel. The kernel will initialize the hardware (drivers compiled into the kernel) and then call the init process, either from the initial ramdisk (mostly used to load drivers that are compiled as modules and initialize RAID arrays) or from the specified root-filesystem.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s