系统的启动流程

初始化系统

在rhel7之前使用init初始化系统,在rhel7之后使用systemd初始化系统

init和systemd的区别

  1. init是从上到下依次启动,如果一个点出现问题,那么它后面的点都不会启动
  2. systemd是并行启动,按需启动,可以一次性同步启动多个服务
  3. systemd会自动解决依赖问题(例如,启动hfs就会先启动rpc-bind和mountd

系统的启动目标

指的是启动时的操作页面

启动流程

  1. 开机
  2. bios开启自检并加载硬件
  3. bios根据启动顺序选择对应的启动设备(硬盘,cdrom,网络等等)
  4. 从硬盘去加载引导代码(引导程序)
    • 引导代码 > 引导程序 > grub2
    • 存放在硬盘的前446字节的位置(mbr分区的最前面)
  5. 引导程序加载启动引导分区中的配置文件(引导配置文件 /boot/grub2/grub2.cfg
  6. grub2会加载内核 > 要挂载的根文件系统,然后执行systemd来初始化(启动服务,根据启动目标获得操作页面)
    grub2会加载initramfs,目的是为了帮助内核挂载根文件系统,提供文件系统的驱动以及硬件驱动
    内核不能够挂载根文件系统,想挂载根文件系统是需要对应的文件系统驱动(xfs,ext4等等)
  7. initramfs会执行自己的sysytemd并且将磁盘上的根文件系统挂载到/sysroot(简单来说就是,将自己的根文件系统挂载到/sysroot)
  8. 内核会将initramfs的假根切换为/sysroot(真正的根),然后执行systemd,进行初始化系统。
  9. systemd通过启动目标来获得操作页面(字符页面,图形化页面)
posted on 2024-05-05 10:50  代码你敲我不敲  阅读(3)  评论(0编辑  收藏  举报

返回顶端