1. 问题现象
(1)电脑有两块 NVMe 固态硬盘:
nvme0n1(YMTC 1TB):预装 Windows。nvme1n1(SL7000 512GB):安装了 Ubuntu 22.04.5 LTS。
(2) 开机后进入 GRUB 菜单,但菜单中的 Ubuntu 选项实际指向第一块硬盘(可能是残留的引导),无法启动第二块硬盘上的 Ubuntu。

(3) 进入 UEFI 固件设置(BIOS),启动顺序列表中只有 Windows Boot Manager 和一个指向第一块硬盘的 ubuntu 条目,没有第二块硬盘的 Ubuntu 启动项。

2. 准备工作
准备一个 Ubuntu Live USB(与电脑上已安装的 Ubuntu 版本相同或更新),例如使用 Ventoy 制作启动盘,放入 Ubuntu 22.04 的 ISO 文件,并确保电脑网络连接正常。
3. 进入 UEFI 固件设置检查硬件
(1)重启电脑,开机时连续按 F2 (或 Fn+F2)进入 BIOS 设置。
(2)切换到存储设备列表,确认两块硬盘均被识别。
(3) 检查启动顺序,确认没有第二块硬盘的 UEFI 启动项。
(4)确保 Secure Boot 处于 Disabled (关闭)状态(已在你的界面中看到为关闭)。
(5)按 Esc 退出 BIOS(不保存更改)。
4. 从 U 盘启动进入 Ubuntu 试用环境
(1)插入 Ubuntu Live USB,重启电脑。
(2) 开机按 F12 (或其他快捷键)选择从 U 盘启动。
(3) 在 Ventoy 菜单中,找到 Ubuntu 22.04 ISO 文件,按回车启动。

(4) 在 GRUB 菜单选择 Try Ubuntu (试用 Ubuntu),进入桌面环境。

5. 安装并运行 Boot-Repair 工具
(1)打开终端(Ctrl+Alt+T)。
(2)添加 Boot-Repair 的 PPA 仓库(注意命令正确拼写):
bash
sudo add-apt-repository ppa:yannubuntu/boot-repair

按回车确认添加。
(3)更新软件源:
bash
sudo apt update
(4)安装 Boot-Repair:
bash
sudo apt install boot-repair
(5)运行 Boot-Repair:
bash
boot-repair

这里选择Yes,原因如下:
两块 NVMe 硬盘都是独立使用的(nvme0n1 装 Windows,nvme1n1 装 Ubuntu),并没有组成 RAID磁盘阵列。MD RAID 是 Linux 原生的软件 RAID 工具,两者共存时可能产生干扰。卸载 dmraid 不会影响正常启动和使用 Ubuntu。
然后按 OK。Boot-Repair 在扫描硬盘时,会检查是否存在 RAID 配置。由于我的两块 NVMe 硬盘都是独立使用的,没有组成 RAID,所以它提示"No active RAID"。这不是错误,只是告知当前没有 RAID 阵列。
6. 执行推荐修复
(1)在 Boot-Repair 主界面,点击 Recommended repair (推荐修复)。
(2)程序会自动扫描硬盘,并可能提示需要执行一些手动命令。根据屏幕提示操作。

7. 手动执行命令(根据 Boot-Repair 的提示)
提示:Boot-Repair 会弹出一个窗口,列出需要手动执行的命令。请打开一个新的终端(保持原终端不变),逐条复制粘贴执行。注意命令中的挂载路径应为
/mnt/boot-sav/nvme1n1p4(若之前挂载路径不同,需统一)。
典型命令序列如下(实际以 Boot-Repair 给出的为准 ):

第一步:打开一个新的终端窗口
在 Ubuntu 试用桌面中,按 Ctrl + Alt + T 打开一个新的终端。
保持原来的终端窗口不动(里面有这些命令),在新的终端里逐条执行下面的命令。
第二步:逐条复制粘贴执行命令
注意:每条命令执行完后,等待它完成再执行下一条。
(1)修复软件包配置
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" dpkg --configure -a
(2)修复依赖关系
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -fy
(3)安装 mdadm(RAID 管理工具,可选但按提示做)
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -y mdadm
(4)尝试组装 RAID(即使没有 RAID 也无妨)
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" mdadm --assemble --scan
(5)安装 dmraid(可能不需要,但按提示做)
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -y dmraid
激活 dmraid(如果有)
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" dmraid -ay
第三步:清除旧的 GRUB 相关包
按顺序执行以下清除命令,每执行一条都可能弹出确认对话框,需要你手动选择。
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub-pc*
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub-common*
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub2-common*
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essentia
在执行清除命令时,可能会出现以下对话框:
- "Remove GRUB 2 from /boot/grub?" → 选择
<Yes>。 - "GRUB install devices" (选择安装目标)→ 保持两个 EFI 分区(
/dev/nvme1n1p2和/dev/nvme0n1p1)都被选中,按回车确认。

回车直接ok。

选择:Yes
原因:这个操作是在重新安装 GRUB 之前清理旧的引导文件,是正常的修复流程的一部分。选择 Yes 后,旧的 GRUB 文件会被删除,然后新的 GRUB 文件会立即被写入(因为 Boot-Repair 正在后台继续安装)。之前已经执行过清除 grub-pc 等软件包的命令,这个对话框是软件包配置过程中的二次确认,保持选择 Yes 即可。
8. 继续自动修复
(1) 手动命令执行完毕后,回到 Boot-Repair 窗口,点击 Next (图中右下角)。

(2)Boot-Repair 可能会再次要求执行一条命令,例如:
bash
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -y grub-efi

在终端中执行该命令。然后再点击Next (图中右下角)。
(3)等待软件包安装完成,期间可能会再次出现设备选择对话框,保持默认并确认。


选择No,不上传报告。

(4)最后 Boot-Repair 会显示 "Boot successfully repaired" ,并提示重启。

点击OK。
9. 重启并调整 BIOS 启动顺序
(1)关闭所有窗口,在终端执行:
bash
sudo reboot
(2)在重启过程中拔掉 U 盘 ,让电脑从硬盘启动。
(3) 如果直接进入黑屏且左上角光标闪烁,说明启动顺序仍不正确。此时长按电源键强制关机 。
(4)再次开机,连续按 F2 进入 BIOS 设置。
(5)进入启动顺序(Boot Order)列表,应该能看到一个新的 ubuntu 启动项(可能对应第二块硬盘 SL7000)。使用 F5/F6 将其移动到第一位。
10. 验证启动
(1)重启后应出现 GRUB 菜单,显示 Ubuntu 和 Windows 的启动选项。
(2) 选择 Ubuntu 进入系统,检查是否能正常登录。
(3) 如果仍无法启动或 GRUB 菜单不出现,可能需进一步排查(见下文"故障排除")。
11. 故障排除(如果仍无法启动)
情况 A:重启后直接进入 Windows
-
再次进入 BIOS,确认 Ubuntu 启动项是否在第一位。
-
如果 BIOS 无法调整顺序,可以在 Windows 中以管理员身份打开命令提示符,执行:
cmdbcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
情况 B:黑屏光标闪烁
-
重新从 U 盘启动进入试用环境。
-
挂载 Ubuntu 的根分区和 EFI 分区:
bashsudo mount /dev/nvme1n1p4 /mnt sudo mount /dev/nvme1n1p2 /mnt/boot/efi -
检查 EFI 分区中是否有 GRUB 文件:
bashls /mnt/boot/efi/EFI/ubuntu/应看到
grubx64.efi、shimx64.efi等文件。如果缺失,重新安装 GRUB:bashsudo grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --bootloader-id=ubuntu --recheck sudo update-grub -
重启并再次调整 BIOS 启动顺序。
情况 C:出现 GRUB 菜单但无法进入 Ubuntu
- 在 GRUB 菜单选择 Ubuntu 启动项后,如果出现错误,可以按
e编辑启动参数,检查root=参数是否正确(应为/dev/nvme1n1p4或UUID=...)。 - 若无法解决,可考虑在 Ubuntu Live 环境下重新安装 GRUB 或使用 Boot-Repair 再次修复。
重要提示
- 整个修复过程中,确保网络连接稳定,以便下载必要的软件包。
- 执行清除 GRUB 包的命令时,务必仔细阅读对话框提示,避免误操作。
- 如果遇到任何未预期的对话框或错误信息,建议截图保存,以便进一步分析。
通过以上步骤,应该能够成功修复双硬盘双系统的引导,并正常启动 Ubuntu 22.04。