Linux基于legacy(BIOS)引导过程
引导过程
开机自检(BISO初始化以及自检)——>MBR引导——>GRUB菜单——>加载内核Kernel——>init进程初始化
开机自检
主机开机之后根据BIOS中的设置对CPU、内存、显卡、键鼠标等设备进行初步检测,检测成功后根据预设的磁盘引导顺序移交系统控制权。(检测设备以及检测出能够引导系统的设备)
MBR引导
当从本地存储设备中启动系统时,首先根据硬盘第一个扇区(512B,常见大小)中的MBR(
主引导记录
)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录的引导信息调用启动菜单如GRUB
GRUB菜单
对于Linux操作系统来说,GRUB是使用最广泛的多系统引导器程序。系统控制器权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核(CentOS7采用的是GRUB2启动引导器,通过读取GRUB的配置文件,获取内核和镜像文件系统的设置和路径位置)
加载内核
Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将会完全掌控整个Linux操作系统的运行过程(此时将内核和镜像文件系统加载到内存中)
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