GRUB 详解:Linux 系统的引导加载程序
GRUB(GRand Unified Bootloader)是 Linux 和其他类 Unix 系统中最常用的 引导加载程序(Bootloader),负责在计算机启动时加载操作系统内核并将控制权交给内核。以下是其核心要点:
1. GRUB 的作用
- 硬件初始化后:BIOS/UEFI 完成自检后,GRUB 作为第一个被执行的软件。
 - 多系统引导:支持选择不同操作系统(如 Linux、Windows)或同一系统的多个内核版本。
 - 内核加载:读取配置文件,加载指定的 Linux 内核和 initramfs(初始内存文件系统)。
 - 传递参数:向内核传递启动参数(如 
root=,quiet等)。 
2. GRUB 的版本
| 版本 | 适用固件 | 特点 | 
|---|---|---|
| GRUB Legacy | BIOS | 旧版,功能有限,已停止维护。 | 
| GRUB2 | BIOS/UEFI | 当前主流版本,支持模块化、脚本化、主题和多架构(如 x86_64、ARM)。 | 
📌 现代 Linux 发行版默认使用 GRUB2。
3. GRUB2 的核心组件
grub-install:将 GRUB 安装到磁盘的引导扇区(如/dev/sda)。/boot/grub/grub.cfg:主配置文件(通常由update-grub/grub-mkconfig生成)。- 模块化设计:按需加载文件系统、加密等模块(存储在 
/boot/grub/<arch>/)。 
4. GRUB2 启动流程
- Stage 1:BIOS/UEFI → MBR/GPT ESP → 
core.img(极小化的核心代码)。 - Stage 1.5*(仅 BIOS)*:加载文件系统驱动以识别 
/boot。 - Stage 2:读取 
/boot/grub/grub.cfg,显示菜单并加载内核。 
flowchart TB
    A[BIOS/UEFI] --> B[MBR: boot.img]
    B --> C[Core Image: core.img]
    C --> D[Stage2: /boot/grub/i386-pc/*]
    D --> E[Load Kernel vmlinuz & initramfs]
5. GRUB2 常见操作
(1)修改默认启动项
编辑 /etc/default/grub,然后更新配置:
# Ubuntu/Debian
sudo update-grub
# RHEL/CentOS
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
(2)手动编辑启动参数
在 GRUB 菜单界面按 e,临时修改内核参数(如修复根文件系统错误):
linux /vmlinuz root=/dev/sda3 ro quiet splash
(3)救援模式
若系统无法启动,通过 Live CD/USB chroot后重装 GRUB:
# BIOS (MBR)
sudo grub-install --target=i386-pc /dev/sda
# UEFI (GPT)
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
6. UEFI vs BIOS下的区别
| BIOS + MBR | UEFI + GPT | |
|---|---|---|
| GRUB安装位置 | MBR + /boot/grub | 
ESP分区 (/boot/efi) | 
| 配置文件路径 | /boot/grub/grub.cfg | 
/boot/efi/EFI/<distro>/grub.cfg | 
| 工具命令 | grub-install --target=i386-pc | 
grub-install --target=x86_64-efi | 
7.故障排查技巧
- 日志查看:
sudo cat /var/log/boot.log # Systemd日志 sudo journalctl -b # UEFI相关日志 - 重建GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg 
✅总结
GRUB是Linux生态中不可或缺的引导工具,掌握其配置和修复方法对系统管理员至关重要。遇到启动问题时,优先检查:
/etc/default/grub/boot分区是否正常挂载- UEFI是否关闭Secure Boot
内容由零声教学AI助手提供,问题来源于学员提问 


        
        
        
        
        
        
        
        
        
                
                
                
                
                
                
                