CentOS 启动详情
CentOS 启动流程概述

CentOS 作为一款流行的开源Linux发行版,其启动流程主要包括以下几个阶段:
- 加载引导程序
- 加载内核
- 初始化ramdisk
- 执行init进程
- 系统初始化
- 运行用户空间服务
加载引导程序
MBR(Master Boot Record):引导程序首先读取硬盘的MBR分区,MBR分区包含引导加载程序,负责加载操作系统的内核。
GRUB(GRand Unified Bootloader):CentOS默认使用GRUB作为引导加载程序,GRUB会读取其配置文件(通常是/boot/grub/grub.conf),根据配置文件中的信息加载内核。
加载内核
内核加载:GRUB根据配置文件中的内核路径和参数加载内核。
内核参数:内核参数可以通过GRUB配置文件中的“linux”和“initrd”行指定,
linux /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/vg_root-lv_root ro initrd /initramfs-3.10.0-514.el7.x86_64.img/vmlinuz-3.10.0-514.el7.x86_64是内核文件路径,root=/dev/mapper/vg_root-lv_root是根文件系统的挂载点,ro表示只读模式。
初始化ramdisk

ramdisk:在内核加载完成后,会初始化一个ramdisk,用于挂载必要的文件系统,如/proc、/sys、/dev等。
initramfs:initramfs是一个包含基本文件系统的压缩文件,用于在启动过程中提供必要的文件系统支持。
执行init进程
init进程:init进程是系统初始化的第一步,它负责启动系统中的所有其他进程。
init进程的运行级别:init进程根据运行级别启动不同的服务,CentOS中的运行级别如下:
- 0:关机
- 1:单用户模式
- 2:多用户模式,不使用NFS
- 3:多用户模式,使用NFS
- 4:自定义运行级别
- 5:图形界面模式
- 6:重启
系统初始化
系统初始化:init进程会根据运行级别启动相应的服务,如网络服务、SSH服务、系统日志服务等。
系统服务管理:CentOS使用systemd作为系统和服务管理器,负责启动、停止、重启和状态检查等操作。
运行用户空间服务

用户空间服务:在系统初始化完成后,用户空间服务将根据需要启动,如Apache、Nginx、MySQL等。
服务管理:用户可以通过systemctl命令管理用户空间服务。
FAQs
Q1:如何查看CentOS的启动日志?
A1: 可以使用以下命令查看CentOS的启动日志:
dmesg | less 或者使用journalctl命令查看:
journalctl -b Q2:如何修改CentOS的GRUB配置文件?
A2: GRUB配置文件通常位于/boot/grub/grub.conf,可以使用以下命令打开并编辑该文件:
sudo nano /boot/grub/grub.conf 编辑完成后,保存并退出,可以使用以下命令更新GRUB:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg 
