CentOS7基础之Linux启动过程
编程语言
2018-12-13 19:52:01
阅读次数: 0
Linux系统启动过程
- 加电后系统固件(system firmware),也就是BIOS或者UEFI进行加电测试,初始化部分硬件设备。
- 系统固件寻找可启动设备。
- 系统固件从disk上读取boot loader,CentOS7中的boot loader是grub2,之后系统固件把控制权交给boot loader。
- boot loader从硬盘装载配置文件,向用户显示一个启动选择菜单。
- 用户选择启动项后,boot loader从硬盘加载选定的内核(kernel)和initramfs到内存中。initramfs中包括了在启动过程中所需的所有硬件的内核模块(modules)。它的配置文件是 /etc/dracut.conf 。
- boot loader把启动时传入的参数如rd.break, 还有initramfs在内存中的地址,以及系统的控制权都移交给kernel。
- kernel初始化所有硬件,然后从initramfs中执行 /sbin/init 把它作为PID 1. CentOS7中的init就是systemd。
- 来自initramfs中的systemd执行所有initrd.target中的unit。把根文件系统 / 挂载(mount)到 /sysroot.
- 内核的根文件系统从initramfs切换到刚才挂载的/sysroot上后,sysroot中的systemd会重新再执行一次。
- systemd执行default.target, 系统启动完成。
关注“一起运维”公众号获得更多信息
转载自blog.csdn.net/Jackel_yan/article/details/84986808