centos7变化之启动流程

2019-07-14 01:43发布

第一阶段BIOS初始化----------开启电源                                      ----------BISO       ----------初始化硬件                                                                    ----------查找启动设备                                                                       ----------cd-dvd -------Kernel&Initrd                                                                       ----------PXE                                                                       ----------USB                                                                       ----------HDD    ----------MBR                                       ----------MBR        446B boot.img 在启动时装在core.img                                                                     64B   partition table 选项                                                                     2B     magic nuber
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二阶段GRUB2 启动引导----------boot.img 装载core.img                                                ----------core.img  GRUB2的核心映像文件                                                ---------- *.mod 可以动态加载的模块                                                ----------grub.cfg ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
第三阶段内核引导----------/boot/vmlinuz  Linux内核映像及内核参数传递                                 ----------/boot/intramfs 首先再内存中释放供内核使用的根文件系统(/boot/initramfs)然后挂载真正的根文件系统,最后执行/usr/lib/systemd/systemd
              
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
加载BIOS,通过BIOS加载CMOS信息,取得主机硬件配置信息,包括启动设备的搜寻顺序,各接口设备的I/O地址以及与CPU沟通的IRQ中断等。取得这些信息后BIOS会开机自检,执行硬件设备的初始化,设定PnP设备(即插即用),定义出可开机的设备顺序,读取开机设备顺序,读取并执行第一个开机设备内的MBR的BOOTLOAD。 GRUB2的boot.img在MBR或启动分区中,boot.img将读取core.img的第一个扇区以用来读取core.img后面的部分,完成读取后,core.img会读取默认的配置文件和其他需要的模块,/boot/grub2/i386-pc/目录中的内容。 /boot/中文件作用:config-3.10.0-121.el7.x86_64 系统Kernel的配置文件,内核编译完成后保存的就是这个配置文件(内核编译偷懒可以复制这个过去,然后加上需要添加的功能模块就可以了,反正我是这么偷懒的)。grub2启动相关。initramfs-3.10.-121.el7.x86_64.img,虚拟文件系统文件,初始化内存镜像盘,为系统提供内核映像无法提供的模块,bootloader将其加载在内存中,该文件被解压后在内存中仿真成一个根目录,提供一个可执行程序,通过该程序加载开机过程中所需要的内核模块。vmlinuz-3.10.0-121.e7.x86_64,用于启动的压缩内核镜像文件(以下是我听马哥说的,该内核自解压,前一段代码提供解压功能,解压后一段真正的内核代码)。 内核接管BIOS后的工作,将根分区以只读方式挂载,接着载入初始进程systemd (/usr/lib/systemd/systemd),之前版本/etc/inittab作废。