引导过程

开机自检(BISO初始化以及自检)——>MBR引导——>GRUB菜单——>加载内核Kernel——>init进程初始化
boot

  1. 开机自检

    主机开机之后根据BIOS中的设置对CPU、内存、显卡、键鼠标等设备进行初步检测,检测成功后根据预设的磁盘引导顺序移交系统控制权。(检测设备以及检测出能够引导系统的设备)

  2. MBR引导

    当从本地存储设备中启动系统时,首先根据硬盘第一个扇区(512B,常见大小)中的MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录的引导信息调用启动菜单如GRUB

  3. GRUB菜单

    对于Linux操作系统来说,GRUB是使用最广泛的多系统引导器程序。系统控制器权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核(CentOS7采用的是GRUB2启动引导器,通过读取GRUB的配置文件,获取内核和镜像文件系统的设置和路径位置)

  4. 加载内核

    Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将会完全掌控整个Linux操作系统的运行过程(此时将内核和镜像文件系统加载到内存中)

  5. init进程初始化(Systemd)

    在CentOS7以前是采用init,7以后采用Systemd

    Linux内核首先将系统中的/sbin/init程序加载到内存中运行,init进程负责完成整个系统的初始化,最后等待用户登录(内核把init进程加载到内存中运行,并加载硬件驱动以及运行一些开机自启的程序)

    init进程是系统中的第一个进程PID为1

    Systemd在CentOS7取代了init,成为内核第一个加载的程序,PID为1的初始化进程

UEFI过程

UEFI仅支持64系统以及GPT磁盘分区

UEFI初始化(硬件自检)——>加载GRUB/加载内核——>init/systemd