Linux CentOS7 系统启动原理及故障排除

启动过程及相关配置文件

引导顺序:

(1)UEFI 或 BIOS 初始化,运行 POST 开机自检;

(2)选择启动设备

(3)引导装载程序,CentOS7 是 grub2;

(4)加载装载程序的配置文件;

         (/etc/grub.d/ 根据此目录下文件设置 grub.cfg;/etc/default/grub 根据此文件设置 grub.cfg;/boot/grub2/grub.cfg)

(5)加载内核选项;

(6)加载 initramfs 初始化伪文件系统

         (虚拟文件系统,/boot/initramfs 能通过 boot loader 加载到内存中,用于提供启动过程中的重要内核模块)

(7)内核初始化,CentOS7 使用 systemd 代替 init;

(8)执行 initrd.target 所有单元,包括挂载 /etc/fstab;

(9)从 initramfs 根文件系统切换到磁盘根目录;

(10)systemd 执行默认 target 配置,配置文件为 /etc/systemd/system/default.target;

(11)systemd 执行 sysinit.target 初始化系统及 basic.target 准备操作系统;

(12)systemd 启动 multi-user.target 下的本机与服务器服务;

(13)systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local;

(14)systemd 执行 multi-user.target 下的 getty.target 及登录服务;

(15)systemd 执行 graphical 需要的服务。

启动过程:

Systemd 运行原理: 

Systemd 概述:

Systemd 即为 System daemon 守护进程,是 linux 下的一种 init 软件,开发目标是系统服务间的依赖关系,并依次实现系统初始化时服务的并行启动,同时达到降低 Shell 的系统开销的效果,最终代替现在常用的 System V 和 BSD 风格 init 程序。与多数发行版使用的 System V 风格 init 相比,Systemd 采用了以下新技术:(1)采用 Socket 激活式与总线激活式服务,以提高相互依赖的各服务的并行运行功能;(2)用 Cgroups 代替 PID 来追踪进程,以此即使是两次 fork 之后生成的守护进程也不会脱离 Systemd 的控制。

unit 对象:

unit 表示不同类型的 Systemd 对象,通过配置文件进行标识和配置;文件中主要包括了系统服务、监听 Socket、保存的系统快照以及其它与 init 相关的信息。

配置文件:/usr/lib/systemd/systemd/   # 这个目录存储每个服务的启动脚本,类似于之前的 /etc/init.d/

                 /run/systemd/system/   # 系统执行过程中所产生的服务脚本,比上面的目录优先运行

                 /etc/systemd/system/   # 管理员建立的执行脚本,类似于 /etc/rc.d/rcN.d/Sxx 类的功能,比上面的目录优先运行

注意:对于新创建的 unit 文件,或者修改了的 unit 文件,要通知 systemd 重载此配置文件,而后可以选择重启

CentOS5 CentOS6 CentOS7 启动过程:

管理系统服务:

  CentOS6 CentOS7
启动 service name start systemctl start name.service
停止 service name stop systemctl stop name.service
重启 service name restart systemctl restart name.service
状态 service name status systemctl status name.service
重载或重启服务(先加载再启动) - systemctl reload-or-restart name.service
  CentOS6 CentOS7
设置某服务开机启动 chkconfig name on systemctl enable name.service
设置某服务禁止开机启动

chkconfig name off

systemctl disable name.service
查看所有服务的开机自启状态 chkconfig --list systemctl list-unit-files --type service 
用来列出该服务在哪些运行级别下启动和禁用 chkconfig sshd --list ls /etc/systemd/system/*.wants/sshd.service
查看服务是否开机自启 - systemctl is-enabled name.service
查看服务状态 systemctl list-unit-files
状态分类  
loaded Unit 配置文件已处理
active(running) 一次或多次持续处理的运行
active(exited) 成功完成一次性的配置
active(waiting) 运行中,等待一个事件
inactive 不运行
enabled 开机启动
disabled 开机不启动
static 开机不启动,但可被另一个启用的服务激活
发布了69 篇原创文章 · 获赞 370 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/maergaiyun/article/details/82557250