Linux系统启动过程(基于Systemd)全揭晓-尚文网络xUP楠哥

进Q群11372462领取专属报名福利!

#说在前面

从我2009年开始学习研究Linux系统开始,Linux系统管理进程及启动过程已经过2次变化,特别是在2016年云计算、大数据等到来,Linux系统要在数据容量上、文件系统上、进程管理上要贴合于这些改变IT行业变革的产物,势必要做出相应改变。那么Linux系统从老版本如RHEL&Centos 4.x | 5.x | 6.x的基于Sysv的init进程这种有些老迈的管理方式演变到从Linux7.x开始基于Systemd方式管理。今天我们重点再讨论下基于Systemd方式管理的Linux系统启动过程全揭晓,Let’s go !

#说明Linux8启动过程

  • 主机上电后,经过BIOS或者UEFI的方式开始主机自检(也叫POST),开始初始化部分硬件;
  • 根据BIOS或者UEFI配置的顺序,搜索磁盘的主引导记录信息(MBR);
  • 接下来从磁盘中读取启动加载器,之后将系统控制权交给启动加载器;在Linux8系统中,该启动加载器叫做GRUB,版本v2(以下简称GRUB2);通过grub2-install命令配置;
  • GRUB2会从/boot/grub2/grub.cfg这个文件中加载配置并显示对应的菜单,从中选择要启动的内容,通过grub2-mkconfig命令进行配置并生成grub.cfg文件;对于Linux8.x系统内核文件,放在了Linu系统中/boot目录下有个对应内核版本的vmlinuz-4.18.0-193.el8.x86_64文件,具体如下:
    在这里插入图片描述
    那么,当我们从重新启动Linux8系统引导选择界面的时候,如下图,之所以能够看到有如下选择,是因为在/boot/loader/entries目录下有三个conf配置文件,表明GRUB引导界面的选择,具体如下:
    在这里插入图片描述在这里插入图片描述
  • 接下来,选择内核后,从磁盘加载内核和initramfs文件并放到内存中;其中,内核文件我们已经知道了,就是/boot/vmlinuz-4.18.0-193.el8.x86_64,那么,initramfs文件又是啥呢,initramfs文件是一个存档,包括启动时所必须的硬件的内核模块、初始化脚本等;对于Linux8.x系统内核文件,放在了Linu系统中/boot目录下有个initramfs-4.18.0-193.el8.x86_64.img,具体如下:
    在这里插入图片描述
    我们可以用lsinitrd命令查看下内核里都包含什么样的文件,具体如下:
    在这里插入图片描述
  • 接下来,内核在Initramfs中找到驱动的硬件,初始化硬件并作为进程ID(PID)为1,从initramfs执行/sbin/init,指向Systemd进程;
  • 下一步,initramfs中的Systemd实例会执行initrd.target目录的单元,这其中就会包括磁盘上的root文件系统,以只读的方式挂载到/sysroot目录;
  • 此时,内核将root文件系统从initramfs进行切换到/sysroot,作为root根文件系统;
  • 最后,systemd根据默认的目标,启动符合该目标的配置,自动解决一些依赖关系,最终,进入交互式登录界面,我们就看到了一个Linux系统图形。
    在这里插入图片描述

#说在最后

相信小伙伴们已经Get到了Linux系统的启动过程,只有当我们理解了启动过程,对于一些平时运维遇到的问题会从容的进行troubleshoot排错,例如恢复用户口令、因为fstab配置文件导致正常的磁盘分区或者卷无法正常启动的解决办法。

进Q群11372462领取专属报名福利!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值