2.6. From boot to bash

We can now attempt to go through each stage of the booting process.

2.6.1. Boot Loader stage

If the bootloader is successful it will start its second stage which displays a prompt or a splash image with a list of operating systems or kernels to boot

If an initial ram disk is specified it is loaded here.

The kernel is loaded into memory

2.6.2. Kernel Stage

The kernel is loaded from the medium, specified in the lilo.conf or grub.conf configuration file. As it loads it is decompressed. If an initial ramdisk is loaded, extra modules are loaded here

The kernel will scan the hardware in the system: CPU, RAM, PCI bus, etc

The kernel then mounts the root device as read-only

From here on programs in /bin and /sbin are made available.

The kernel then loads /sbin/init - the first 'userspace' process.

2.6.3. The INIT stage

init reads /etc/inittab and follows the instructions.

  • the default runlevel is read

  • the rc.sysinit is run

    • all local filesystems are mounted or, if needed, an integrity check (fsck) is performed in accordance with entries in /etc/fstab

    • the current kernel logs are dumped to a file

       dmesg > /var/log/dmesg 
    • quotas are started, etc ...

    • the kernel and system logger service is started. The system log file is /var/log/messages

  • next init goes into the default runlevel /etc/rc.d/rc N

  • the gettys start and the boot process is over

[Note] /var/log/dmesg and /var/log/messages

Make sure you have noted the difference between these two files from the description above

The prompt to login is now managed by the gettys on the ttys. After the user has typed in their username and pressed return /bin/login is started.

The user is prompted by /bin/login for the password. The user enters a password and presses return.

The password entered by the user is compared to the password in /etc/passwd or /etc/shadow.

Figure 2.3. Graphical overview of the booting process

Graphical overview of the booting process