简单总结centos系统的启动流程
这里以centos7为例说明:
1、设备加电自检;
2、依照bios的启动顺序依次启动设备,会对安装有bootloader设备进行启动;
3、bootloader启动后,将kernal与ramdisk加载到内存当中;
4、ramdisk帮助kernal识别硬盘、构建文件系统;
5、kernal以只读方式挂根,并掌控设备后会启动第一个用户空间程序systemd,之后的系统启动工作将由systemd完成。
补充
bootloader
1、以MBR为例,作为常用的硬盘分区模式中的MBR模式,MBR引导分区大小为512byte;前446byte是bootloader,64byte是分区表,一个分区是16byte,2byte为魔术字,表明bootloader是否可用;
2、bootloader有多种类型,其中centos7用的bootloader,称为grub;
3、grub在启动过程中分为3个阶段,分别是:
1阶段,在MBR中进行;
1.5阶段,紧邻MBR的分区中进行,主要加载2阶段识别文件系统的驱动,1.5阶段是安装系统时生成;
2阶段,在硬盘的其他区中进行,突破MBR大小的限制,可以加载更多启动过程中必要文件;
ramdisk
与内核一起,被bootloader加载的内存当中,代替内核先接管系统,主要是帮助内核识别硬盘,构建根文件系统;添加ramdisk的目的是为了简化内核,保证内核简单高效;
kernal只读挂根
为防止内核存在bug导致误删除文件,所以在启动时内核第一次会以只读方式挂根文件系统,待系统用户空间程序启动完毕,会重新以读写方式挂根;