补充说明
grub-install 负责把 GRUB 的核心镜像写入引导位置:BIOS 系统写入磁盘的 MBR 引导区与 /boot/grub 目录,UEFI 系统则把 grubx64.efi 等文件安装到 EFI 系统分区(ESP),并注册 NVRAM 启动项。
安装位置取决于启动方式。传统 BIOS 需要指定磁盘设备(如 /dev/sda,注意不是分区);UEFI 需要用 --target 与 --efi-directory 指明 ESP 挂载点,通常不需要设备参数。装错目标可能导致系统无法启动,操作前应确认当前启动模式:[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS。
常见场景包括新装系统、更换硬盘后恢复引导、修复被 Windows 覆盖的 MBR。安装完成后还需要生成配置文件(grub-mkconfig -o /boot/grub/grub.cfg),两者职责不同。RHEL 系中对应命令名为 grub2-install。
语法
grub-install [选项] [设备]
选项
--target=目标:安装平台,如i386-pc(BIOS)、x86_64-efi、arm64-efi--efi-directory=目录:ESP 挂载点,常见/boot/efi--boot-directory=目录:GRUB 文件所在目录,默认/boot--bootloader-id=名称:EFI 启动项名称,默认GRUB(Debian 为debian)--recheck:重新探测设备,设备名变化后使用--removable:按可移动介质方式安装到EFI/BOOT/BOOTX64.EFI--no-nvram:不写入主板 NVRAM 启动项--modules=模块:额外预加载 GRUB 模块--force:强制安装,即使存在风险提示--disable-shim-lock:禁用 shim 锁(启用 Secure Boot 时需谨慎)
实例
# 确认当前是 BIOS 还是 UEFI 启动
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
# BIOS 系统:安装到第一块磁盘
sudo grub-install /dev/sda
# UEFI 系统:安装到 ESP,并指定启动项名称
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi \
--bootloader-id=GRUB
# 可移动 U 盘:使用 removable 方式
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --removable
# 安装后重新生成配置文件
sudo grub-mkconfig -o /boot/grub/grub.cfg
# 查看已注册的 EFI 启动项
sudo efibootmgr -v
在 chroot 救援环境中修复引导时,应先挂载根分区与 ESP,并绑定 /dev、/proc、/sys,再执行 grub-install。