shiniei
shiniei
发布于 2025-11-06 / 3 阅读
0
0

GRUB 安装失败(`grub-install dummy`)成因与解决方案

💻 GRUB 安装失败(grub-install dummy)成因与解决方案

🚀 一、错误概述与主要原因

错误现象: 安装 Linux 系统(如 Debian, Ubuntu)时,在安装引导加载程序(GRUB)步骤失败,提示类似 "Executing 'grub-install dummy' failed. This is a fatal error."(执行 'grub-install dummy' 失败,这是一个致命错误)。

核心原因: 安装程序无法确定或访问应该写入 GRUB 的实际设备(如 /dev/sda),或被 UEFI/固件的安全设置阻止写入启动信息。


🛡️ 二、常见原因与修复方案

原因类别具体问题描述快速修复方法(BIOS/UEFI 设置)
UEFI/固件锁定安全启动(Secure Boot) 开启,阻止未认证的 GRUB 写入 NVRAM。禁用 Secure Boot(通常在 BIOS/UEFI 的 SecurityBoot 菜单)。
UEFI 配置写入保护 开启(可能是用户为了固定启动顺序而设置)。检查 I/O 接口安全性Firmware Write Protection 等选项,确保其处于禁用状态
管理员密码 锁定 UEFI 配置。在 BIOS/UEFI 的 Security 菜单中,移除或清除管理员(Supervisor)密码
启动模式不匹配安装介质的启动模式(Legacy/BIOS vs. UEFI)与目标系统不一致。确保安装 U 盘是以目标系统模式(推荐 UEFI 模式)启动的。
分区配置错误缺少或错误的 EFI 系统分区(ESP)确保存在一个 FAT32 格式、挂载点为 /boot/efi 的分区(通常 100-512MB)。
未设置 BIOS Boot 分区(在使用 GPT 分区表的 Legacy 模式)。创建一个 1MB 左右、未格式化的分区,并设置 bios_grub 标志。

🛠️ 三、手动高级修复(适用于安装失败后)

如果安装程序反复失败,可以先选择跳过 GRUB 安装,完成文件系统安装,然后使用 Live USB 进入系统环境进行手动修复。

步骤 1: 挂载文件系统

启动进入 Live USB 环境,打开终端。

Bash

# 假设根分区在 /dev/sda2,EFI 分区在 /dev/sda1
# 1. 挂载根分区 (/)
sudo mount /dev/sda2 /mnt

# 2. 挂载 EFI 分区
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda1 /mnt/boot/efi

步骤 2: 绑定伪文件系统

挂载运行系统所需的伪文件系统,为 chroot 准备环境。

Bash

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

步骤 3: 切换到新系统环境(Chroot)

进入您已安装的系统环境。

Bash

sudo chroot /mnt

步骤 4: 重新安装 GRUB

在 Chroot 环境中,运行 grub-install 命令,将 GRUB 写入硬盘。

Bash

# 针对 UEFI 系统
# 注意:只需指定设备,不要指定分区编号(如 sda,而不是 sda2)
grub-install /dev/sda

# 针对 Legacy/BIOS 系统 (较少用,但作为参考)
# grub-install --target=i386-pc /dev/sda

步骤 5: 更新 GRUB 配置

生成新的 GRUB 配置文件。

Bash

update-grub

步骤 6: 退出并重启

Bash

exit
sudo umount -R /mnt
reboot

⭐ 关键提醒: 在执行任何手动修复前,请务必优先检查和修改您的 UEFI/BIOS 设置(特别是 Secure Boot 和写入保护),因为这是最常见且最容易解决的“锁定”问题。


评论