HOW MOST *NIX SYSTEM BOOTS ..

BIOS -> GRUB -> INIT

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 .

2 thoughts on “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