0% found this document useful (0 votes)
59 views

Linux Boot Sequence

The Linux boot sequence begins with the BIOS loading the master boot record from the hard drive. The MBR then loads either LILO or GRUB, which loads the Linux kernel. The kernel initializes devices and mounts the root filesystem. It then executes Init which reads /etc/inittab to determine the runlevel. Based on the runlevel, Init runs scripts that mount filesystems, start services, and launch programs needed for that runlevel.

Uploaded by

Sushil Andre
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Linux Boot Sequence

The Linux boot sequence begins with the BIOS loading the master boot record from the hard drive. The MBR then loads either LILO or GRUB, which loads the Linux kernel. The kernel initializes devices and mounts the root filesystem. It then executes Init which reads /etc/inittab to determine the runlevel. Based on the runlevel, Init runs scripts that mount filesystems, start services, and launch programs needed for that runlevel.

Uploaded by

Sushil Andre
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

Linux Boot Sequence

 BIOS
 Master Boot Record (MBR)
 LILO or GRUB
 Kernel
 Init
 Run Level’s

BIOS

Load boot sector from one of:

 Floppy
 CDROM
 Hard Drive

The boot order can be changed from within the BIOS. BIOS setup can be entered by
pressing a key during boot up. The exact key depends varies, but is often one
of Del, F1, F2, or F10.

(DOS) Master Boot Record (MBR)

 BIOS loads and execute the first 512 bytes off the disk (/dev/sda)
 Standard DOS MBR will:
o look for a primary partition (/dev/sda1-4) marked bootable
o load and execute first 512 bytes of this partition

LILO

 does not understand filesystems


 code and kernel image to be loaded is stored as raw disk offsets

Loading sequence:

 load menu code, typically /boot/boot.b


 prompt for (or timeout to default) partition or kernel
 for “image=” (ie. Linux) option load kernel image
 for “other=” (ie. DOS) option load first 512 bytes of the partition

Reconfiguring LILO

One minute guide to installing a new kernel

 copy kernel image (bzImage) and modules to /boot and /lib/modules


 edit /etc/lilo.conf
 duplicate image= section, eg:

 image=/bzImage-2.4.14
 label=14
 read-only

 man lilo.conf for details

 run /sbin/lilo

 reboot to test

GRUB

 Understands file systems


 config lives in /boot/grub/menu.lst or /boot/boot/menu.lst

Kernel

 initialize devices
 (optionally loads initrd)
 mounts root filesystem
o specified by lilo or loadin with root= parameter
o kernel prints: VFS: Mounted root (ext2 filesystem) readonly.
 runs /sbin/init which is process number 1 (PID=1)

init prints: INIT: version 2.76 booting

initrd

Allows setup to be performed before root FS is mounted

 lilo or loadlin loads ram disk image


 kernel runs /linuxrc
o load modules
o initialize devices
o /linuxrc exits
 “real” root is mounted
 kernel runs /sbin/init

/sbin/init

 reads /etc/inittab (see man inittab which specifies the scripts below
o Run boot scripts:
 redhat: /etc/rc.d/rc.sysinit script which: loads modules, check root
FS and mount RW, mount local FS, setup network, and mount
remote FS
o switches to default runlevel eg 3.
 run programs specified in /etc/inittab

Run Levels

 0 halt
 1 single user
 2-4 user defined
 5 X11 only
 6 Reboot
 Default is defined in /etc/inittab, eg:
o id:3:initdefault:

 The current runlevel can be changed by running /sbin/telinit # where # is the new
runlevel, eg typing telinit 6 will reboot.

You might also like