Linux的引导流程
1、系统启动的引导流程
首先系统开机自检,然后是计算机开机后访问硬盘并读取首个扇区的MBR(即主引导目录),(备注:主引导扇区内部结构,其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的结束标志(55AA)。主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。)读取MBR记录后,这时进入系统选择界面,选择好某个操作系统后,则开始加载内核,接着从INIT进程获得系统控制权,即进入初始化过程,之后则读相应的配置文件,具体引导过程如下:
系统初始化进程及文件简单介绍
1)、INIT进程与配置文件:
INIT进程:由Linux内核加载运行/sbin/init程序,是系统中第一个进程,也是内核加载的第一个程序,PID(进程标识符)永远是1;配置文件是:/etc/inittab
INIT进程启动后会启动其它程序,生成新的进程,这些由init启动的进程称之为init进程的子进程,而init进程是这些进程的父进程
2)、inittab文件结构:
查看一下/etc/inittab配置文件的内容:
[root@localhost ~]# grep -v "^#" /etc/inittab | grep -v "^$" ==>查看这个文件时过滤掉注释行和空行 id:5:initdefault: si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 ca::ctrlaltdel:/sbin/shutdown -t3 -r now pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 x:5:respawn:/etc/X11/prefdm -nodaemon [root@localhost ~]#
各字段的含义:
id |
用于在inittab文件中唯一标识一个配置记录 |
runlevels |
用于指定该记录在哪些运行级别中运行 |
action |
用于描述记录将执行哪种类型的动作 |
process |
用于设置启动进程所执行的命令 |
id,也称标记字段,由1~4个字符组成,用以区别于其他行的配置,所以id标记字段必须是唯一的
runlevels,运行级别字段,用于指定该记录在哪些运行级别中运行,取值数字0~6,后面会对其进行详细解释
action ,动作类型字段,动作类型字段描述了该行配置所对应的操作类别,一般为固定值,较常用的类型如下:
initdefault:设置初始化系统后默认进入的运行级别
sysinit:设置系统初始化的操作脚本
wait:init进程将等待该行配置所对应的脚本操作完成后,再继续执行其他操作
ctrlaltdel:设置当用户按下Ctrl+Alt+Delete组合键后的操作
powerfail:设置当系统收到断电信号(使用不间断电源)时采取何种动作
powerokwait:设置当系统收到恢复供电信号时采取何种动作
respawn:一旦该行配置所对应的进程被终止,则重新启动该进程
process,程序或脚本字段,此字段用于指定该行配置所对应的实际操作,可以是具体的命令、脚本程序等
3)、其它系统初始化文件简介
/etc/rc.d/rc.sysinit
由init进程调用执行
完成设置网络、主机名、加载文件系统设置时钟等初始化工作(例如检查并启用磁盘配额功能就是在该脚本中完成的)。
/etc/rc.d/rc脚本文件
由init进程调用执行
rc脚本通过指定不同的级别参数分别加载及终止不同的系统服务,进入到相应的系统运行级别。
/etc/rc.local脚本文件
由rc脚本调用执行
rc.local脚本通常由rc脚本在最后进行加载,其作用主要是为管理员自行设置启动命令提供一种途径,通常都将一些需要随系统启动的命令和脚本添加到该文件中。(保存用户定义的需开机后自动执行的命令)
2、Linux系统的运行级别
1)、运行级别是指运行Linux系统的不同模式,每种模式对应不同的服务程序组合。
默认的7种运行级别
0:关机状态
1:单用户模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的完整多用户模式
4:未分配使用
5:图形界面的多用户模式
6:重新启动
(解释:Linux系统在运行时,采用的每一种服务搭配称之为“运行级别”,运行级别类似于Windows系统中的正常启动、安全模式、带网络支持的安全模式……等概念,不同的运行级别使用了不同的服务程序组合,如“套餐”的概念,动感地带手机资费的10元短信套餐、15元音乐套餐)
2)、调整默认运行级别
修改/etc/inittab 文件中的 initdefault 配置,一般对于普通用户来说,runlevel设置为5,即为图像化操作,但是对于服务器来说,默认是设置为3,即字符界面,对于服务器来说,加载图形化界面是非常耗资源的,影响服务器性能。
[root@localhost ~]# vi /etc/inittab
进入之后有这样一行:
id:5:initdefault: ==>这个5的意思就是设置开机后自动进入图形模式
3)、查看运行级别——runlevel
runlevel:能显示切换前的运行级别和当前运行级别
若临时切换运行级别,则使用init命令结合0-6的运行级别参数
[root@localhost ~]# runlevel ==>查看当前运行级别 N 5 ==>第一个字符“N”表示之前未切换过运行级别 [root@localhost ~]# init 3 ==>将运行级别改为3 [root@localhost ~]# runlevel ==>显示之前和改后的级别 5 3 [root@localhost ~]# init 6 ==>重启(这里我按了ctrl + C ,不然系统要重启了) [root@localhost ~]# init 0 ==>系统关机
3、系统服务的启动控制
1)、查看系统服务的启动状态 chkconfig --list [服务名称]
如查看network这个服务的启动状态,则使用:chkconfig --list network
2)、服务脚本位置:/etc/init.d ——> /etc/rc.d/init.d
(/etc/init.d是一个符号链接,目标为 /etc/rc.d/init.d,通过这两个目录都可以找到系统服务对应的脚本文件)
3)、设置系统服务的启动状态 chkconfig --level 级别列表 服务名 on|off
(解释:运行级别列表:可以是235、 35、5等等形式;服务名称:注意名称要正确,如果忘记了可查看/etc/init.d/目录下的脚本名 ;On|off: 启动或关闭启动状态)
如设置network服务在2345级别下为启动状态:chkconfig --level 2345 network on
再次查看它的服务时则可以看到network这个服务在各个模式下的启用状态
4)、ntsysv系统服务管理工具——ntsysv [--level 级别列表]
此命令进入类似图形化的界面,可以集中对所有的系统服务进行设置
使用和chkconfig命令和ntsysv命令跳转服务启动状态的对比说明:
1)当需要设置个别服务在不同运行级别的启动状态时,选择使用chkconfig命令要更有效率
2)当需要同时设置大量服务的启动状态时,选择使用ntsysv配置工具要更加适合
RHCE7认证学习笔记:网络端口安全
[红帽认证辅导]2016年2月19日Linux笔试面试常见题目
[红帽认证试题]2016年2月14日RHCE学习笔记:如何设置和测试静态网络路由
[红帽认证辅导]2016年1月19日红旗Linux用户基础教程其他实用命令汇总
[红旗认证辅导]2015年5月11日红帽RHCE认证133网络管理汇总
[红帽认证辅导]2015年5月11日