21
Linux Startup By: Amin Hashemi AmirKabir University of technology Computer Engineering & Information Technology Department

Linux startup

Embed Size (px)

DESCRIPTION

this presentation is about linux startup and describe the 6 high level stages of a typical Linux boot process.

Citation preview

Page 1: Linux startup

Linux StartupBy: Amin Hashemi AmirKabir University of technologyComputer Engineering & Information Technology Department

Page 2: Linux startup

Contents System startup Services Controlling boot services References

Page 3: Linux startup

System startup

Page 4: Linux startup

System startup- 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 (typically F12 of F2, but it depends on your system) 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.

Page 5: Linux startup

System startup- 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.

Page 6: Linux startup

System startup- GRUB GRUB stands for Grand Unified Bootloader. 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).

Page 7: Linux startup

System startup- Kernel Mounts the root file system as specified in the “root=” in

grub.conf Kernel executes the /usr/src/linux/init/main.c program Since init was the 1st program to be executed by Linux

Kernel, it has the process id (PID) of 1. Do a ‘ps -ef | grep init’ and check the pid.

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.

Page 8: Linux startup

System startup- Kernel (cont.)Details about the specific sequence of events or

what happens when the Linux kernel is loaded. Recognize, set up and initialize the CPU(s). Set up kernel memory and process handling. Initialize configured system devices. Start memory handling (paging, …). Set up and mount the file system. Start the init command.

Page 9: Linux startup

System startup- init After the kernel has detected computer’s hardware and load

the correct device driver, init is started. The last step of kernel booting.

It s the parent of all processes. PID = 1

init role: The primary role of init is to create processes from a script stored

in /etc/inittab. Running scripts in /etc/rc.d.

Page 10: Linux startup

System startup- init- /etc/inittab This file describes how the init process should setup the

system in a certain run level. /etc/inittab format:

Id:run-level:action:process Id: a unique 1-4 character which identifies an entry in inittab. Run-level: run level number. Action: which action should be taken (wait, boot, initdefault, …) Process: the process to be executed.

Page 11: Linux startup

System startup- init- /etc/rc.d rc

Performs master control of which scripts to execute.

rc.sysinit The system initialization script

rc.local Used for local initialization

/etc/rc.d/inid.d/ A number of scripts used to start and stop services

/etc/rc.d/rc*.d/ (* : 0–6) Each file is merely a soft link to a script under init.d

Page 12: Linux startup

System startup- init- rc.sysinit This file is interpreted by init once at boot time. It contains bash shell script logic to perform some the

following: Sets the system hostname Reads in network configuration data Prints welcome banner for login Configures the kernel Sets up the system time Sets the console and keyboard mapping …

Page 13: Linux startup

System startup- Run levels A run-level is a software configuration of the system which

allows only a selected group of processes to exist. When the Linux system is booting up, you 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 your run level.

Page 14: Linux startup

System startup- Run levels (cont.) Depending on your default init level setting, the system will execute the

programs from one of the following directories: Run level 0 – halt (/etc/rc.d/rc0.d/) : Shuts down the system. Run level 1 – single user mode (/etc/rc.d/rc1.d/) :Mode for administrative tasks. Run level 2 – multiuser, without NFS (/etc/rc.d/rc2.d/) :Does not configure

network interfaces and does not export networks services. Run level 3 – full multiuser mode (/etc/rc.d/rc3.d/) : Starts the system normally. Run level 4 – unused (/etc/rc.d/rc4.d/) :For special purposes. Run level 5 – Multi-User mode, with display manager as well as console

logins(X11) (/etc/rc.d/rc5.d/) :As runlevel 3 + display manager. Run level 6 – reboot (/etc/rc.d/rc6.d/) :Reboots the system.

Page 15: Linux startup

Services /etc/rc.d/init.d/

A number of scripts used to start and stop services

Page 16: Linux startup

Run Level and Services The scripts (in /etc/rc.d/rc*.d/) are actually symbolic links to system

service scripts under the /etc/rc.d/init.d/ directory. So, /etc/rc0.d is linked to /etc/rc.d/rc0.d.

Under the /etc/rc.d/rc*.d/ directories, you 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.

Example: K12mysql S12syslog S10network S80sendmail

Page 17: Linux startup

Controlling Boot Services Manually rename Scripts

Rename K to S and vice versa Change the number followed by K/S

Manually start and stop services {start | stop | restart | status} /etc/rc.d/init.d/network start service network start

Through graphical tool ntsysv

Page 18: Linux startup

Controlling Boot Services Changing Run Levels

The telinit command is used to change run-levels on-the-fly on a running Linux system. telinit 5

Page 20: Linux startup
Page 21: Linux startup

Website: Http://www.AminHashemi.com E-mail: Amin [at] aminhashemi [dot] com

Thank you