Understanding Booting Process in LINUX

The Booting process is the first process that is executed when you start a Linux system. 
This process is executed in the following steps: 
 
1. The processor searches for the Basic Input/Output System (BIOS) program in the 
memory and executes it. BIOS is a program that provides the lowest level interface to 
the devices, such as the hard disk, monitor, and mouse, of the system.  
 
2. BIOS runs the Power-On Self Test (POST) program, which checks the system 
hardware by verifying the hardware configuration information. The program does this 
to ensure that all the required hardware devices are present and functioning properly.  
 
3. BIOS checks the system memory for errors and searches for a bootable device. The 
bootable device may either be the hard disk or other bootable devices, such as a CD-
ROM or a diskette drive. The sequence in which BIOS searches for the various 
devices for the boot record is called the booting sequence
You can specify the booting sequence by editing the booting sequence information in the 
BIOS setup program. To enter the BIOS setup program, you need to press the or 
key on the first boot up screen. The boot sequence can be specified as CD-
ROM, C, A, where C represents the hard drive and A represents the diskette drive. In the 
preceding boot sequence, BIOS will first search the CD-ROM for the boot record, then 
search the hard drive and in the end search the diskette. The following list describes the 
sequence in which the boot loader is invoked and loaded: 
 
4. BIOS checks the bootable device for the presence of the Master Boot Record (MBR), 
which is the first sector of the bootable device. The MBR is 512 bytes in size and 
consists of a boot loader and a partition table. The boot loader contains instructions in 
the form of machine code for booting the system. The partition table contains 
information about the various partitions of the storage devices, such as the size of the 
various partitions and the names of the partitions.  
 
5. BIOS locates and invokes the boot loader by passing the control of the system to the 
Initial Program Loader (IPL), also called the first stage of the boot loader, which is 
present in the MBR.  
 
6. IPL loads the boot loader in the system memory.  


The boot loader takes the control of the system from the IPL when it is loaded into the 

memory of the system.


GRUB Configuration File 
 
The GRUB configuration file specifies the various commands that are used to set the 
global preferences of the system. The global preferences are the parameters that are not 
specific to any operating system and are applicable to the entire menu interface of GRUB. 
These preferences are followed by the commands specific to each operating system listed 
on the menu interface.  
 
The default location of grub.conf in the filesystem is /boot/grub/grub.conf. A sample 
grub.conf file of a system having RHEL5 is shown below: 

 
default=0 
timeout=5 
splashimage=(hd0,0)/grub/splash.xpm.gz 
hiddenmenu 
title Red Hat Enterprise Linux ES (2.6.18-5.EL5) 
  root (hd0,0) 
  kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/ rhgb quiet 
  initrd /initrd-2.6.18-5.EL5.img 
 
A sample grub.conf file of a system having RHEL5 and Windows XP operating systems 
is shown below:
 

default=0 
timeout=5 
splashimage=(hd0,0)/grub/splash.xpm.gz 
hiddenmenu 
title Red Hat Enterprise Linux ES (2.6.18-5.EL5) 
  root (hd0,0) 
  kernel /vmlinuz-2.6.18-5.EL5  ro root=LABEL=/ rhgb quiet 
  initrd /initrd-2.6.18-5.EL5.img 
title Windows  
rootnoverify (hd0,0) 
chainloader +1 


In the preceding grub.conf file the various configuration directives are: 
 
· default: Specifies default operating system to load 
· timeout: Specifies the time interval, in seconds, GRUB waits for user to select an 
operating system from GRUB menu 
· splashimage: Specifies the absolute path of the image shown by GRUB on screen at bootup 
· hiddenmenu: Specifies GRUB to hide the menu until user presses a key 
· title: Specifies the OS name shown in GRUB menu  
· root: Specifies the partition where grub is installed 
· kernel: Specifies the absolute path of the kernel file to load and label of root partition 
· initrd: Specifies the absolute path of the initial RAM disk
· rootnoverify: Specifies the root partition to be used by GRUB but does not mount the partition 
· chainloader: Specifies GRUB to load the file as a chain loader 

Created By Amit Maheshwari 
 
Top
Maintained By Amit Maheshwari