1. The BIOS reads the Master Boot Record (MBR) and loads the primary (aka
    first stage) boot loader. The MBR contains a partition table which has a
    1 byte flag which defines the partition type. It also contains the first
    446 bytes of the boot code for the primary boot loader. Typically the
    primary boot loader will be lilo or grub . The lilo configuration file is
    /etc/lilo.conf while for grub it is /boot/grub/grub.conf . grub has a
    number of advanced features, including:
        o Allows command based pre-OS for fexibility (LILO is limited in this
          respect)
        o If the BIOS supports LBA, there is no 1024 cylinder limit for
          booting
        o Reads the configuration file at every boot so there's no need to
          rewrite the MBR if changes are made.
 2. The first stage boot loader finds the second stage boot loader, /boot/
    boot.b and executes it (because the MBR is so small, all the first stage
    boot loader can do is execute the second stage boot loader!)
 3. /boot/boot.b reads the descriptor table from /boot/map. The map file
    contains the sector the kernel can be loaded from. It then loads the
    kernel.
 4. The kernel mounts the root filesystem, loads the required modules and
    starts the init program. (If an initrd - initial ram disk - is required,
    this is loaded before the real root filesystem. The initrd may be
    required if certain modules are required to load the root filesystem and
    aren't compliled into th kernel itself, e.g. if the root filesystem type
    is reiserfs but the resierfs driver has been compiled as a module.)
 5. init reads /etc/inittab which normally tells it to start /etc/rc.d/
    rc.sysinit and then the run level scripts in /etc/rc.d . rc.sysinit
    starts swap, checks filesystems amongst other things. The inittab has a
    default run level and init will run the start scripts according to the
    run level specified. e.g. At runlevel 5 , the start scripts in /etc/rc.d/
    rc5.d are run (these are symbolic links to the real scripts in /etc/
    init.d). inittab also normally lists some gettyprograms to run and , at
    run level 5, /etc/X11/prefdm.

Recent Changes

Contribute to this wiki

Why not help others by sharing your knowledge? Contribute something to this wiki and join out hall of fame!
Contact us for a user name and password