一、Linux系统的启动过程
Linux的启动过程大体分为五个阶段:
1.计算机主机加电后,CPU初始化自身,接着在硬件固定位置执行一条指令。这条指令跳转到BIOS,BIOS找到启动设备并获取MBR,该MBR指向LILO或GRUB。
2.2.BIOS装载并把控制权转交给LILO或GRUB,并且用户选择启动Linux,LILO或GRUB从/boot分区读取并装载压缩内核,压缩内核自解压并把控制权转交给解压的内核,初始化系统硬件和设备。(CPU装载BIOS,BIOS装载LILO,LILO装载压缩内核,压缩内核装载解压内核 )
3.内核启动的第一个进程是init进程,该进程将根据/etc/inittab文件中的设置来执行相应的启动程序,引导系统启动所需的程序并进入指定的运行级别。init进程是Linux系统中所有进程的祖先进程,进程号是1。
4.根据不同的运行级别,系统启动相应的服务程序。
5.login进程等待用户登录。
二、Linux系统的运行级别
运行级别是一种状态或模式,是操作系统当前正在运行的功能级别,类似Window操作系统的安全模式、命令模式、正常模式等运行级别。Linux为了适应不同用户对服务的启动配置要求,设置了七种不同的运行级别。分别从0到6,不同的运行级别具有不同的功能。
类比Windows中,有安全模式,正常模式。
Linux功能强大,为了适应不同用户对服务的启动配置要求,Linux提供了运行级别。
- 运行级别0:停机。
- 运行级别1:单用户模式,仅用于root用户对系统进行维护时。
- 运行级别2:用户定义运行级别,默认等同于运行级别3。
- 运行级别3:完全多用户模式,即多用户文本界面模式,是标准的运行级别。
- 运行级别4:域特定运行级别,默认等同于运行级别3。
- 运行级别5:X11,Linux系统的图形界面运行级别。
- 运行级别6:重新启动。
每个运行级别都有属于自己的target文件,这些target文件都是链接文件,它们保存在/lib/system/system目录中,运行级别的设置由/etc/system/system/default.target文件来控制。default.target指向哪个运行级别的文件就启动哪个级别。
CentOS Linux 7预定义了一些target,和之前的运行级别或多或少有些不同。为了兼容,systemd也提供一些target映射为运行级别,由于系统有7个运行级别,因此应该有7个target格式的文件。
由于不同的级别将要启动的服务不尽相同,所以,为了合理的管理各个运行级别的服务程序,系统为每一个级别在/etc/rc.d目录下定制一个目录,用于存放各自的服务程序,命名规则为rcn.d(n代表0~6七种运行级别)如图所示。在系统启动某运行级别时,就初始化其对应目录下的文件即可。
在运行级别对应的目录中,所有文件的命名规则是 Knnxxxx和Snnxxxx。其中以“S”开头的文件是系统启动时调用的服务进程,以“K”开头的文件是系统终止时调用的服务程序。nn是00-99之间的一个整数,数字nn的大小决定程序执行的先后顺序。xxxx是服务程序的名称。
由于各个运行级别中的服务程序集合有可能存在交集,所以为了节省硬盘空间和便于更新服务程序,在rcn.d目录中存放的只是各个服务程序的链接文件,而所有服务程序的脚本文件都存放在/etc/rc.d/init.d目录下。
三、系统运行级别之间的切换
系统的图形界面运行级别是5,文本界面的运行级别是3,由于系统的运行级别是通过链接文件的方式,而不是由/etc/inittab文件中的参数来进行设置,因此,在更改系统的运行级别时相对复杂一些,因为这个更改过程会涉及文件的删除和二次链接。
确定系统使用的是哪种运行级别
将系统的运行级别5设置成运行级别3。
重新设置链接文件
systemctl命令
〖例1〗将系统的默认运行级别修改成5。
#systemctl set-default graphical.target
#reboot
四、重启后观察系统的运行级别
关闭Ctrl+Alt+Del功能键的功能
在/usr/lib/systemd/system/ctrl-alt-del.target中配置。
全部注释/usr/lib/systemd/system/ctrl-alt-del.target文件中的内容
保存退出,执行init q重新reload配置文件。
此时,Ctrl+Alt+Del三键组合可以关闭重启功能。
项目一: Linux系统启动配置与快捷键设置
操作过程:
#systemctl set-default multi-user.target
#reboot
#vim /usr/lib/systemd/system/ctrl-alt-del.target
#init q