CentOS7基础之Linux启动过程

Linux系统启动过程

  1. 加电后系统固件(system firmware),也就是BIOS或者UEFI进行加电测试,初始化部分硬件设备。
  2. 系统固件寻找可启动设备。
  3. 系统固件从disk上读取boot loader,CentOS7中的boot loader是grub2,之后系统固件把控制权交给boot loader。
  4. boot loader从硬盘装载配置文件,向用户显示一个启动选择菜单。
  5. 用户选择启动项后,boot loader从硬盘加载选定的内核(kernel)和initramfs到内存中。initramfs中包括了在启动过程中所需的所有硬件的内核模块(modules)。它的配置文件是 /etc/dracut.conf 。
  6. boot loader把启动时传入的参数如rd.break, 还有initramfs在内存中的地址,以及系统的控制权都移交给kernel。
  7. kernel初始化所有硬件,然后从initramfs中执行 /sbin/init 把它作为PID 1. CentOS7中的init就是systemd。
  8. 来自initramfs中的systemd执行所有initrd.target中的unit。把根文件系统 / 挂载(mount)到 /sysroot.
  9. 内核的根文件系统从initramfs切换到刚才挂载的/sysroot上后,sysroot中的systemd会重新再执行一次。
  10. systemd执行default.target, 系统启动完成。

关注“一起运维”公众号获得更多信息

CentOS7基础之Linux启动过程_第1张图片

你可能感兴趣的:(CentOS7基础之Linux启动过程)