CentOS作为一款广泛使用的Linux发行版,其启动流程是一个复杂而精密的过程。本文将带你从系统引导开始,深入探讨CentOS的启动流程,包括BIOS、MBR、GRUB、内核加载、init进程以及服务运行等关键环节。

一、硬件启动与BIOS

  1. 硬件启动:当计算机接通电源后,硬件开始工作,CPU开始执行固件代码。
  2. BIOS:BIOS(基本输入输出系统)程序会自动检测硬件设备,包括CPU、内存、硬盘等,并确定第一个启动设备。

二、POST加电自检

  1. POST(Power-On Self-Test):BIOS执行完硬件检测后,会进行POST自检,确保硬件正常工作。
  2. 确定启动设备:根据BIOS设置,系统会从第一个启动设备读取启动代码。

三、MBR与GRUB

  1. MBR(主引导记录):启动设备中的MBR区域包含启动程序和分区表信息。
  2. GRUB:MBR中的GRUB(GRand Unified Bootloader)引导程序读取启动设备上的/boot目录中的grub.conf文件,根据配置加载内核。

四、内核加载与初始化

  1. 内核加载:GRUB将内核文件(如vmlinuz)加载到内存中,并执行。
  2. 内核初始化:内核初始化硬件设备,并调用/sbin/init程序。

五、init进程与运行级别

  1. init进程/sbin/init程序是系统初始化的入口点,负责启动各种系统服务。
  2. 运行级别init程序根据/etc/inittab/etc/systemd/system/default.target文件确定系统运行级别。

六、系统初始化与服务运行

  1. 系统初始化init程序调用/etc/rc.d/rc.sysinit脚本进行系统初始化,包括挂载根文件系统、加载内核模块等。
  2. 服务运行:根据系统运行级别,init程序执行/etc/rc.d/rc脚本,启动对应级别的服务。

七、终端登录与Shell环境

  1. 终端登录init程序执行/sbin/mingetty启动终端,提供用户登录界面。
  2. Shell环境:用户登录后,系统进入Shell环境,可以执行各种命令。

八、CentOS 7之后版本启动顺序

  1. UEFI或BIOS:CentOS 7及以后版本支持UEFI(统一可扩展固件接口)启动。
  2. 引导加载程序:UEFI或BIOS加载GRUB引导程序。
  3. 内核加载与初始化:GRUB加载内核,执行内核初始化。
  4. init进程与运行级别:内核初始化完成后,调用/sbin/init程序,确定系统运行级别。

总结

CentOS启动流程是一个复杂的过程,涉及多个环节和组件。了解启动流程有助于我们更好地排查故障、优化系统性能。通过本文的介绍,相信你已经对CentOS启动流程有了更深入的了解。