Process of Booting and Shutting Down

Booting is the initial set of operations that computer systems when electrical power to the CPU is switched on or when the computer is reset.  The operating system's normal facilities are not available during the startup process, so the computer must pull itself up by it's own bootstrapping.

Two types of booting;
Cold Booting: When the computer is started after having been switched off (A cold boot will clear everything from the computer's memory (RAM))
Warm Booting: When the operating system alone is restarted after a system crash or freeze (A warm boot will not necessarily clear everything from the computer's memory (RAM))
  • Power on Self (POST) will conduct make BIOS Ready 
  • Basic Input/Output System (BIOS) executes MBR
  • Master Boot Record (MBR) executed GRUB or LILO
  • Grand Unified Bootloader (GRUB) will executes Kernel and kernel will get uncompressed.
  • Kernel execute /sbin/init 
  • Init executes runlevel programs
  • Command Line Interface (CLI)/Graphical Use Interface (GUI) will prompted  
Once system bootedup there is 6CLI and 1 GUI, normally on newer versions automatically GUI will come. We can swift the terminal using CTRL + ALT + F1 to F7.
In CLI #prompt for root user and $ for normal user.

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 (normally F12 or F2 or DEL) 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 or LILO

Two boot loader are used in Linux, GRUB and LILO, it's diffrence and features discussed later,here discuss about GRUB because LILO is rapidly being eclisped by GRUB

  • GRUB stands for Grand Unified Boot loader.
  • 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).
  • 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.
  • 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 – shutdown
    • 1 – Maintanance / Rescue mode
    • 2 – Multiuser
    • 3 – Multiuser
    • 4 – Multiuser
    • 5 – Multiuser
    • 6 – reboot
  • Init identifies the default initlevel from /etc/inittab and uses that to load all appropriate program.
  • Typically set the default run level to either 3 or 5.
6. Runlevel programs
  • When the Linux system is booting up, 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 run level.
  • Depending on 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. (All the runlevel's services located in /etc/init.d a softlink to that available in /etc/rc*.d (* is the runlevel number). All runlevels (1, 2,3,4,5) common services script softlink located in /etc/rcS.d).
  • Under the /etc/rc.d/rc*.d/ directories, 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. 

    Rebooting and Shutting Down

    Linux file system buffer changes in memory and write them back to disk only sporadically. Improper shutdown can result in anything from subtle, insidious problems to a major catastrophe.

    Whenever modify a startup script, reboot just to make sure that the system comes up sucsessfully. 

    Even on a desktop system, turning off the power is not a good way to shutdown, maybe lose potential data or corrupt the file system. 

    #init 0 or #shutdown To Shutsown system

    #init 6 To Reboot system

    #shutdown -h {time} To Shutdown the pc in sheduled time.

    time = either in 24hr time or +minutes eg: #shutdown -h 07:20 or #shutdown -h +50

No comments:

Post a Comment