Linux 引导顺序与 /boot 目录
Linux 的引导顺序是系统从启动到进入操作系统的完整过程,与 /boot
目录密切相关。
1. 引导顺序概述
引导过程分为以下阶段:
- BIOS/UEFI 阶段:初始化硬件并加载引导加载程序。
- 引导加载程序阶段:加载 Linux 内核和初始 RAM 磁盘。
- 内核加载阶段:内核初始化硬件并挂载根文件系统。
- 初始化系统阶段:启动初始化系统(如
systemd
)。 - 用户空间启动阶段:启动用户空间服务并挂载文件系统。
- 用户登录阶段:提供登录界面。
2. /boot 目录的作用
/boot
目录存储系统启动所需的关键文件,包括内核、初始 RAM 磁盘和引导加载程序配置。
示例结构:
/boot/
├── config-* # 内核配置文件
├── efi/ # EFI 分区挂载点
│ ├── EFI/
│ │ ├── Boot/ # 通用引导文件
│ │ ├── Microsoft/ # Windows 引导文件
│ │ ├── ubuntu/ # Ubuntu 引导文件
│ │ └── refind/ # rEFInd 引导管理器
├── grub/ # GRUB 配置和模块
│ ├── grub.cfg # GRUB 配置文件
│ └── x86_64-efi/ # GRUB 模块(UEFI 模式)
├── initrd.img-* # 初始 RAM 磁盘映像
├── System.map-* # 内核符号表
├── vmlinuz-* # Linux 内核文件
::: tip 双系统引导
将其他系统的引导文件复制到 /boot/efi/EFI/
下。如上所示。
:::
3. 各阶段与 /boot 的关系
BIOS/UEFI 阶段
- BIOS:从 MBR 加载 GRUB。
- UEFI:从 EFI 分区加载引导文件(如
bootx64.efi
)。
引导加载程序阶段
GRUB 从 /boot
加载内核(vmlinuz-*
)和初始 RAM 磁盘(initrd.img-*
)。
内核加载阶段
内核初始化硬件设备并挂载根文件系统。
初始化系统阶段
内核启动初始化系统(如 systemd
),完成引导。
4. Linux 引导顺序流程图
1. BIOS/UEFI
↓
2. 引导加载程序(GRUB/rEFInd)
↓
3. 加载内核和初始 RAM 磁盘
↓
4. 初始化系统(systemd 或 init)
↓
5. 启动用户空间服务
↓
6. 用户登录
5. 注意事项
- EFI 分区:存储引导文件,确保其挂载正确。
- GRUB 配置:修改
/etc/default/grub
后运行update-grub
。 - 修复引导:使用
grub-install
或efibootmgr
修复。 - 日志查看:通过
journalctl
查看引导日志。