
启动阶段
主要内容
关键功能
学习提示/备注
1. 按下电源按钮
电源供应器启动,CPU重置
为启动提供电力,初始化CPU
了解硬件启动的基础工作
2. 电源自检 (POST)
主板检测硬件(CPU、内存、键盘等)
检查硬件健康状态,报告错误
蜂鸣声或错误代码指示问题
3. BIOS / UEFI
固件启动,初始化硬件
加载启动设备(硬盘、光驱等)
BIOS适用于MBR,UEFI适用于GPT
4. MBR加载
从硬盘的MBR加载Bootloader代码
MBR包含分区表和引导代码
MBR(512字节)启动分区信息
5. Bootloader
启动引导程序 (GRUB等)
选择操作系统内核,传递参数给内核
常见引导程序:GRUB2、LILO
6. 内核加载 (Kernel)
内核加载到内存,初始化硬件与文件系统
初始化CPU、设备驱动,挂载根文件系统
initrd/initramfs 解决驱动加载问题
7. init进程
启动第一个用户空间进程 (PID=1)
读取配置文件,启动系统服务
Systemd 是现代系统管理的主流工具
8. 服务/守护进程
启动网络、日志、SSH等系统服务
完成系统环境初始化,进入用户界面
观察 systemctl 命令管理服务
9. 用户空间准备
启动图形界面或命令行界面
提供用户登录的环境
进入Linux使用环境(TTY或GUI)
1. POST
- 全称:Power On Self Test(上电自检)
- 是什么:这是计算机开机时的硬件自检过程,检查电脑各个部件是否正常,比如内存、CPU、硬盘、键盘等。
- 来源:最早来源于计算机硬件设计的需求,确保硬件没有问题才能继续启动。
- 命名起源:Power On(开机) + Self Test(自我测试),简单直接地描述了它的功能。
- 用来干什么:检查硬件是否正常工作,如果有问题会通过蜂鸣声或屏幕上的错误提示代码报告问题。
- 举个例子:开机时,如果内存条没插好,你可能听到“滴滴滴”的蜂鸣声,就是POST检测到问题了。
2. BIOS / UEFI
名称
BIOS
UEFI
全称
Basic Input/Output System
Unified Extensible Firmware Interface
是什么
传统的固件程序,存储在主板上的芯片中
现代化的固件接口,替代BIOS
来源
1975年IBM公司提出
Intel主导开发,2005年推出
命名起源
基本输入输出系统,形象描述它的作用
统一可扩展固件接口,更强调“统一”和“可扩展”
用来干什么
- 初始化硬件 - 加载启动引导程序
- 更强大的硬件初始化 - 支持大容量硬盘
区别
- 只支持MBR分区表 - 2TB硬盘限制
- 支持GPT分区表 - 图形界面更友好
CentOS中的体现
在老旧机器上加载BIOS
现代主板上直接加载UEFI,进入EFI分区
举例:
- 开机时按 Del 或 F2 键,可以进入BIOS或UEFI设置界面,调整启动顺序。
- 在CentOS中,UEFI会使用一个专门的EFI分区来存放启动文件。
3. MBR加载
- 全称:Master Boot Record(主引导记录)
- 是什么:位于硬盘的第一个扇区(512字节)的引导区域,包含分区表和引导加载程序。
- 来源:最早用于IBM PC兼容机,用来管理磁盘分区。
- 命名起源:Master(主)+ Boot(启动)+ Record(记录),意指主启动记录。
- 用来干什么:
- 存储分区表信息(硬盘如何被划分)。
- 加载Bootloader,比如GRUB或LILO。
- CentOS中的体现:
- 可以使用
fdisk -l命令查看MBR分区表。 - 早期的MBR模式分区只能支持最多2TB大小的硬盘。
- 可以使用
4. GPT
- 全称:GUID Partition Table(全局唯一标识分区表)
- 是什么:MBR的升级版,用来管理大容量硬盘的分区。
- 来源:随着硬盘容量增大,MBR的2TB限制无法满足需求,GPT作为UEFI的一部分被引入。
- 命名起源:GUID(Global Unique Identifier,全局唯一标识)+ Partition Table(分区表)。
- 用来干什么:
- 支持超过2TB的大硬盘。
- 分区数量没有限制(MBR只能有4个主分区)。
- CentOS中的体现:
- 可以使用
parted或gdisk命令查看和管理GPT分区表。
- 可以使用
5. GRUB2
- 全称:GNU GRand Unified Bootloader version 2
- 是什么:Linux系统的主流引导加载程序,用于加载操作系统内核。
- 来源:由GNU项目开发,是GRUB的第二个版本。
- 命名起源:GRand Unified(大统一) Bootloader(引导加载器),强调统一管理多个系统的能力。
- 用来干什么:
- 提供启动菜单,选择不同的内核或操作系统。
- 加载Linux内核并传递启动参数。
- CentOS中的体现:
- GRUB2的配置文件在
/boot/grub2/grub.cfg。 - 使用
grub2-mkconfig命令更新配置。
- GRUB2的配置文件在
6. LILO
- 全称:Linux Loader
- 是什么:早期的Linux引导加载程序,功能比GRUB弱,现已很少使用。
- 来源:1990年代为Linux开发的简单引导程序。
- 命名起源:Linux的引导加载器(Loader)。
- 用来干什么:引导Linux内核,但不支持复杂的配置。
- 学习提示:LILO虽然历史悠久,但已被GRUB完全取代。
7. initrd / initramfs
名称
initrd
initramfs
全称
Initial RAM Disk
Initial RAM File System
是什么
一个临时根文件系统,用于内核初始化
initrd的升级版,更高效、轻量
来源
解决内核无法直接访问根文件系统的问题
从initrd演变而来
命名起源
RAM Disk(内存磁盘)
RAM File System(内存文件系统)
用来干什么
提供驱动模块,帮助内核挂载根文件系统
同样功能,但性能更好
CentOS中的体现
文件存放于 /boot 目录下,如 initramfs.img
使用 lsinitrd 命令查看内容
8. TTY
- 全称:Teletypewriter(电传打字机)
- 是什么:Linux的虚拟终端接口,用户可以通过命令行访问系统。
- 来源:名字来自早期的电传打字机,这是一种通过键盘和打印机通信的设备。
- 命名起源:模拟物理打字机终端的功能,因此命名为TTY。
- 用来干什么:提供纯文本的命令行界面,用户可以登录并执行操作。
- CentOS中的体现:
- 使用
Ctrl + Alt + F1到Ctrl + Alt + F6可以切换不同的TTY终端。 tty命令可以查看当前终端信息。
- 使用
总结:白话串联
- POST:硬件自检,开机时的“健康检查”。
- BIOS/UEFI:加载启动设备的固件。
- MBR/GPT:分区管理,MBR老旧、GPT现代支持大硬盘。
- GRUB2/LILO:引导加载程序,LILO落伍,GRUB2主流。
- initrd/initramfs:帮助内核加载驱动,挂载根文件系统的临时工具。
- TTY:命令行终端的“窗口”,提供用户登录操作。
希望通过表格和白话讲解,这些复杂名词变得易懂!你可以在CentOS系统中实践这些概念,逐步加深理解。如果有具体操作上的问题,随时告诉我!
#linux #启动