Linux boot process-min.png

只有深入了解 Linux 如何启动的,才能在启动出现故障时迅速排查问题原因。POST 加电自检、根据启动顺序(Boot Sequence)去查找 MBR 引导扇区,从而读取到 bootloader(比如 GRUB) 的第一阶段引导代码,这一部分跟操作系统关系不大(通用的流程)。然后 GRUB 会借助它的 1.5 阶段代码(比如 xfs_stage1_5)识别到存放它的第二阶段代码的分区,从而开始执行第二阶段代码,并显示引导菜单。当选择了要启动的操作系统后,加载内核并执行,可能需要借助于 initial RAM disk 去识别硬件(比如 rootfs 所在硬盘),最后由内核执行第一个用户空间程序 init,主流的 init 系统包括 SysVinit、Upstart、systemd

专题系列