补充说明
grub2-install 是 GRUB 2 的安装命令在 RHEL/CentOS/Fedora 等发行版中的命名,功能与参数和上游的 grub-install 完全一致;这些发行版把 GRUB 工具统一加上 2 前缀,以便与 GRUB Legacy 区分。其他发行版(Debian/Ubuntu)使用 grub-install。
它把 GRUB 核心镜像写入引导位置:BIOS 系统写入磁盘 MBR 与 /boot/grub2,UEFI 系统把 EFI 程序写入 ESP 并注册 NVRAM 条目。BIOS 下需要指定整块磁盘(如 /dev/sda),不能写分区号。
操作前确认启动模式,并确保 /boot 或 ESP 已正确挂载。安装只写入引导程序,不生成菜单;菜单由 grub2-mkconfig -o /boot/grub2/grub.cfg 生成。
语法
grub2-install [选项] [设备]
选项
--target=目标:i386-pc(BIOS)或x86_64-efi(UEFI)--efi-directory=目录:ESP 挂载点,RHEL 通常为/boot/efi--boot-directory=目录:默认/boot,GRUB 文件位于/boot/grub2--bootloader-id=名称:EFI 启动项名称--recheck:重新探测设备--removable:按可移动介质方式安装--no-nvram:不写 NVRAM 启动项--force:强制安装--modules=模块:预加载模块
实例
# 确认启动模式
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
# BIOS:安装到第一块磁盘
sudo grub2-install /dev/sda
# UEFI:安装到 ESP
sudo grub2-install --target=x86_64-efi --efi-directory=/boot/efi \
--bootloader-id=centos
# 安装后重新生成菜单
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# 查看 NVRAM 启动项
sudo efibootmgr -v
# 确认 GRUB 文件位置
ls /boot/grub2/
在 rescue 模式修复时,先挂载根分区和 /boot/efi,绑定 /dev、/proc、/sys 后再执行安装。若固件为 UEFI 而系统以 BIOS 方式安装,需要先切换启动模式,不能混用。