linux启动项选择文件(grub文件)的配置和修改

发布于:2025-07-30 ⋅ 阅读:(18) ⋅ 点赞:(0)

GRUB菜单的配置文件和相关文件分布在多个位置,部分内容确实存储在EFI分区中(尤其是在UEFI启动模式下),但主要配置和核心文件位于其他目录。以下是详细说明:


1. GRUB的核心文件位置

UEFI模式(EFI分区)
  • 路径/boot/efi/EFI/ubuntu/
    (EFI分区通常挂载在/boot/efi,包含以下关键文件):
    • grubx64.efi:GRUB的UEFI可执行文件,由固件(BIOS/UEFI)直接加载。
    • shimx64.efi:安全启动(Secure Boot)所需的签名加载器。
    • grub.cfg简化的引导配置(可能只是一个链接或基础配置,指向主配置文件)。
传统BIOS模式(无EFI分区)
  • 路径/boot/grub/
    • 核心文件(如stage1stage2)直接写入磁盘的引导扇区(MBR)。

2. 主配置文件生成位置

  • 实际配置文件/boot/grub/grub.cfg

    • 这是GRUB菜单的完整配置文件,包含所有启动条目和参数。
    • 注意:此文件是自动生成的,不要直接编辑!修改后会被覆盖。
  • 用户自定义配置/etc/default/grub

    • 用户通过编辑此文件来自定义GRUB行为(如超时时间、默认启动项)。
    • 修改后需运行 sudo update-grub 生成新的grub.cfg
  • 脚本目录/etc/grub.d/

    • 包含生成grub.cfg的脚本(如10_linux30_os-prober等),用于检测系统内核和其他操作系统。

3. EFI分区的作用

  • UEFI启动必需:EFI分区(FAT32格式,通常100MB~500MB)存储:
    • 引导加载器(如grubx64.efi)。
    • 其他操作系统的EFI文件(如Windows的bootmgfw.efi)。
  • /boot/grub/的关系
    UEFI模式下,GRUB会从EFI分区加载初始文件,然后跳转到/boot/grub/grub.cfg读取完整配置。

4. 如何查看和修改?

查看EFI分区内容
# 确认EFI分区挂载点(通常为/boot/efi)
mount | grep efi

# 查看EFI分区中的GRUB文件
ls /boot/efi/EFI/ubuntu/
手动修复EFI分区中的GRUB

如果EFI分区损坏,需重新安装GRUB到EFI分区(假设磁盘为sda):

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
sudo update-grub

5. 关键区别:UEFI vs BIOS

项目 UEFI模式 传统BIOS模式
GRUB位置 EFI分区 (/boot/efi/EFI/ubuntu/) 磁盘MBR + /boot/grub/
配置文件 /boot/grub/grub.cfg /boot/grub/grub.cfg
安装命令 grub-install --target=x86_64-efi grub-install --target=i386-pc

6. 注意事项

  • 不要删除EFI分区:否则会导致系统无法启动!
  • 双系统问题:Windows更新可能覆盖EFI分区中的GRUB,需用Live USB修复(参考Ubuntu官方指南)。
  • 安全启动:若启用Secure Boot,需确保EFI分区中的shimx64.efigrubx64.efi已正确签名。

总结:GRUB菜单的完整配置在/boot/grub/grub.cfg,而UEFI启动所需的引导文件在EFI分区中。两者协同工作,确保系统正常启动。


网站公告

今日签到

点亮在社区的每一天
去签到