插件窝 干货文章 linux grub是什么

linux grub是什么

GRUB 启动 配置 分区 772    来源:    2025-05-04

GRUB(GRand Unified Bootloader)是 Linux 和其他类 Unix 操作系统中广泛使用的引导加载程序,负责在系统启动时加载内核并将控制权交给操作系统。以下是关于 GRUB 的详细说明:


1. GRUB 的核心功能

  • 多系统引导:支持在单台机器上启动多个操作系统(如 Linux、Windows、macOS)。
  • 内核选择:允许用户选择不同的内核版本或启动参数(如恢复模式)。
  • 模块化设计:支持动态加载文件系统驱动、加密模块等。
  • 交互式界面:提供命令行或图形化菜单(如 GRUB 2 的 grub.cfg 配置)。

2. GRUB 的版本

  • GRUB Legacy(0.9x):旧版,功能有限,已逐步淘汰。
  • GRUB 2(1.9x+):现代主流版本,支持更多特性(如脚本、主题、UEFI)。

3. GRUB 的关键文件与路径

  • 配置文件
    • GRUB 2: /boot/grub/grub.cfg(自动生成,不建议直接编辑)。
    • 自定义配置:/etc/default/grub/etc/grub.d/ 下的脚本。
  • 核心文件
    • /boot/grub2//boot/grub/(存放模块、主题等)。
  • 生成配置bash sudo update-grub # 或 sudo grub2-mkconfig -o /boot/grub2/grub.cfg

4. GRUB 的典型应用场景

  • 修复启动问题
    • 进入 GRUB 命令行修复损坏的引导: grub ls # 查看磁盘分区 set root=(hd0,msdos1) # 设置根分区 linux /vmlinuz root=/dev/sda1 # 指定内核和根分区 initrd /initramfs.img boot
  • 修改默认启动项: 编辑 /etc/default/grub 后更新配置: bash GRUB_DEFAULT=0 # 0表示第一个菜单项 sudo update-grub
  • UEFI/BIOS 兼容
    • UEFI 系统需确保 GRUB 安装到 ESP 分区: bash sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi

5. 常见问题与解决

  • GRUB 丢失(如安装 Windows 后覆盖): 使用 Live USB 修复: bash sudo grub-install /dev/sda # 安装到磁盘 sudo update-grub
  • 启动时进入 grub rescue>: 通常因分区变更导致,需手动指定路径: grub set prefix=(hd0,msdos1)/boot/grub insmod normal normal

6. 注意事项

  • 谨慎操作:错误的 GRUB 配置可能导致系统无法启动。
  • 备份配置:修改前备份 /etc/default/grub/boot/grub2/grub.cfg
  • 日志查看:通过 dmesg | grep -i grub 排查启动问题。

GRUB 是 Linux 系统启动的关键组件,理解其工作原理和配置方法能有效应对多数启动问题。如需更深入的功能(如加密启动、自定义主题),可参考官方文档:GNU GRUB Manual