Boot sequence is the main part of our computer bcz it tacial the responsiblity of whole system and if it is damaged or corrupted thn you must know the whole process of booting the system so than you can easily recover it.
So, here is the whole Boot sequences with Installing a new KERNEL with LILO...
Boot sequence summary
- BIOS
- Master Boot Record (MBR)
- Kernel
- init
BIOS
Load boot sector from one of:
- Floppy
- CDROM
- SCSI drive
- IDE drive
Master Boot Record
- MBR (loaded from /dev/hda or /dev/sda) contains:
- lilo
- load kernel (image=), or
- load partition boot sector (other=)
- DOS
- load "bootable" partition boot sector (set with fdisk)
- partition boot sector (eg /dev/hda2) contains:
- DOS
- loadlin
- lilo
- kernel
LILO
One minute guide to installing a newkernel
- edit /etc/lilo.conf
- duplicate image= section, eg:
o image=/bzImage-2.2.12
o label=12
o read-only
- man lilo.conf for details
- run /sbin/lilo
- (copy modules)
- reboot to test
Kernel
- initialise devices
- (optionally loads initrd, see below)
- mount root FS
- specified by lilo or loadin
- kernel prints:
- VFS: Mounted root (ext2 filesystem) readonly.
- run /sbin/init, PID 1
- can be changed with boot=
- init prints:
- INIT: version 2.76 booting
initrd
Allows setup to be performed beforeroot FS is mounted
- lilo or loadlin loads ram disk image
- kernel runs /linuxrc
- load modules
- initialise devices
- /linuxrc exits
- "real" root is mounted
- kernel runs /sbin/init
Details in /usr/src/linux/Documentation/initrd.txt
/sbin/init
- reads /etc/inittab
- runs script defined by this line:
- si::sysinit:/etc/init.d/rcS
- switches to runlevel defined by
- id:3:initdefault:
sysinit
- debian: /etc/init.d/rcS which runs
- /etc/rcS.d/S* scripts
- symlinks to /etc/init.d/*
- /etc/rc.boot/* (depreciated)
- redhat: /etc/rc.d/rc.sysinit script which
- load modules
- check root FS and mount RW
- mount local FS
- setup network
- mount remote FS
Example Debian /etc/rcS.d/ directory
README
S05keymaps-lct.sh-> ../init.d/keymaps-lct.sh
S10checkroot.sh-> ../init.d/checkroot.sh
S20modutils-> ../init.d/modutils
S30checkfs.sh-> ../init.d/checkfs.sh
S35devpts.sh-> ../init.d/devpts.sh
S35mountall.sh-> ../init.d/mountall.sh
S35umsdos-> ../init.d/umsdos
S40hostname.sh-> ../init.d/hostname.sh
S40network-> ../init.d/network
S41ipmasq-> ../init.d/ipmasq
S45mountnfs.sh-> ../init.d/mountnfs.sh
S48console-screen.sh-> ../init.d/console-screen.sh
S50hwclock.sh-> ../init.d/hwclock.sh
S55bootmisc.sh-> ../init.d/bootmisc.sh
S55urandom-> ../init.d/urandom
Run Levels
- 0 halt
- 1 single user
- 2-4 user defined
- 5 X11
- 6 Reboot
- Default in /etc/inittab, eg
- id:3:initdefault:
- Change using /sbin/telinit
Run Level programs
- Run programs for specified run level
- /etc/inittab lines:
- 1:2345:respawn:/sbin/getty 9600 tty1
- Always running in runlevels 2, 3, 4, or 5
- Displays login on console (tty1)
- 2:234:respawn:/sbin/getty 9600 tty2
- Always running in runlevels 2, 3, or 4
- Displays login on console (tty2)
- l3:3:wait:/etc/init.d/rc 3
- Run once when switching to runlevel 3.
- Uses scripts stored in /etc/rc3.d/
- ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
- Run when control-alt-delete is pressed
Typical /etc/rc3.d/ directory
When changing runlevels /etc/init.d/rc 3:
- Kills K##scripts
- Starts S##scripts
K25nfs-server-< ../init.d/nfs-server
K99xdm-< ../init.d/xdm
S10sysklogd-< ../init.d/sysklogd
S12kerneld-< ../init.d/kerneld
S15netstd_init-< ../init.d/netstd_init
S18netbase-< ../init.d/netbase
S20acct-< ../init.d/acct
S20anacron-< ../init.d/anacron
S20gpm-< ../init.d/gpm
S20postfix-< ../init.d/postfix
S20ppp-< ../init.d/ppp
S20ssh-< ../init.d/ssh
S20xfs-< ../init.d/xfs
S20xfstt-< ../init.d/xfstt
S20xntp3-< ../init.d/xntp3
S89atd-< ../init.d/atd
S89cron-< ../init.d/cron
S99rmnologin-< ../init.d/rmnologin
Boot Summary
- lilo
- /etc/lilo.conf
- debian runs
- /etc/rcS.d/S* and /etc/rc.boot/
- /etc/rc3.d/S* scripts
- redhat runs
- /etc/rc.d/rc.sysinit
- /etc/rc.d/rc3.d/S* scripts
1 comments:
is this right : kernel installation method
Post a Comment