Linux引导流程

来源:互联网 发布:淘宝客qq群拉人技巧 编辑:程序博客网 时间:2024/06/09 23:04

Linux引导流程

Linux运行级别

Linux启动服务管理

GRUB配置与应用

启动故障分析与解决


固件firmware(CMOS/BIOS)——POST加电自检(hwclock)


自举程序BootLoader(CRUB)——载入内核


载入内核Kernel——驱动硬件


启动进程init


读取执行配置文件/etc/inittab


init启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。它的PID恒为1,但它也必须向一个更高级的功能负责。

PID为0的是内核调度器。


运行级别:

0   halt

1 Single uer mode

2 Multiuser without NFS

3 Full multiuser mode

4 unused

5 x11 

6 重启


grep -v "^#" /etc/inittab | more


inittab文件剖析

id:run-levels:actio:process

id: 标识

run-levels :指定运行级别

action:指定运行状态

process:指定运行的脚本命令


action常用取值:

initdefault:

sysinit: 系统启动执行process中的命令

/etc/rc.d/rc.sysinit  :启动脚本/etc/rc.d/rc.sysint,完成系统服务程序启动,如系统环境变量设置,设置时钟,加载字体,检查加载文件系统,生成系统启动信息日志文件。

wait: 执行process中指定的命令,并等待其结束再运行其他命令

once:执行process中指定的命令,并 不等其结束

ctrl alt delete :shutdown

respawn:


/etc/rc.d/rc 


S12syslog


S-start

K-kill

数字:启动顺序

脚本名称:


firmware

BootLoader

Kernel

init

/etc/inittab

initdefault

/etc/rc.d/rc.sysinit

/etc/rc.d/rc

/etc/rc.d/rcN.d

username

password


手工启动、关闭服务


设置自启动程序


default 定义缺省启动系统

timeout 定义缺省等待时间

splashimage GRUB启动图片 (hd0, 0)

hd0,0 第一块硬盘的第一个分区

,1 第一个硬盘的第二个分区



在旧式的System V initialization中, /etc/inittab是个相当重要的文件。init进程启动后第一时间找的就是它。inittab负责初始化系统,设置系统runlevel及进入各runlevel对应要执行的命令。假设当前inittab中设置的runlevel是5,则init会运行/etc/init.d/rc 5命令,该命令会根据系统服务的依赖关系遍历执行/etc/rc5.d中的脚本程序。进入/etc/rc5.d目录可以发现里面的文件都是/etc/init.d下对应的脚本程序的软连接。


System V initialization是以runlevel为核心。

Upstart job,runlevel虽说对于服务的启动也有影响但已不是关键所在。Upstart job是事件驱动的,系统服务的启动,停止等等均是由事件决定的。

/etc/init里,均是系统服务的配置文件,或者说,是job definition files。

不仅仅在系统启动初期,在系统运转的任何时期都可以通过发送事件来启动或终止服务。


/etc/init/etc/init.d/etc/rc${runlevel}.d


System V-style的服务是存放于/etc/rc${runlevel}.d目录中的,(而/etc/rc${runlevel}.d下的文件时到/etc/init.d的软连接).


切换运行级别:

init [0123456Ss]  init 0是关机, init 6重新启动


0 0
原创粉丝点击