1. 问题现象

  • 电脑有两块 NVMe 固态硬盘:

    • nvme0n1(YMTC 1TB):预装 Windows。
    • nvme1n1(SL7000 512GB):安装了 Ubuntu 22.04.5 LTS。
  • 开机后进入 GRUB 菜单,但菜单中的 Ubuntu 选项实际指向第一块硬盘(可能是残留的引导),无法启动第二块硬盘上的 Ubuntu。
    在这里插入图片描述

  • 进入 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. 切换到存储设备列表,确认两块硬盘均被识别:
    • 第一块:YMTC
    • 第二块:SL7000 PCIe4.0 512G
  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 工具

  • 打开终端(Ctrl+Alt+T)。

  • 添加 Boot-Repair 的 PPA 仓库(注意命令正确拼写):

    sudo add-apt-repository ppa:yannubuntu/boot-repair
    

    在这里插入图片描述

    按回车确认添加。

  • 更新软件源:

    sudo apt update
    
  • 安装 Boot-Repair:

    sudo apt install boot-repair
    
  • 运行 Boot-Repair:

    boot-repair
    

在这里插入图片描述
这里选择Yes,原因如下:

  • 两块 NVMe 硬盘都是独立使用的(nvme0n1 装 Windows,nvme1n1 装 Ubuntu),并没有组成 RAID磁盘阵列。
  • dmraid 的作用:dmraid 主要用于管理“假 RAID”(主板 BIOS 层级的 RAID),而你并没有这种 RAID
    配置。
  • MD 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 打开一个新的终端。
保持原来的终端窗口不动(里面有这些命令),在新的终端里逐条执行下面的命令。

第二步:逐条复制粘贴执行命令
注意:每条命令执行完后,等待它完成再执行下一条。

修复软件包配置

sudo chroot "/mnt/boot-sav/nvme1n1p4" dpkg --configure -a

修复依赖关系

sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -fy

安装 mdadm(RAID 管理工具,可选但按提示做)

sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -y mdadm

尝试组装 RAID(即使没有 RAID 也无妨)

sudo chroot "/mnt/boot-sav/nvme1n1p4" mdadm --assemble --scan

安装 dmraid(可能不需要,但按提示做)
注意原图写的是 dmaid 是笔误,应为 dmraid。

sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get install -y dmraid

激活 dmraid(如果有)

sudo chroot "/mnt/boot-sav/nvme1n1p4" dmraid -ay

第三步:清除旧的 GRUB 相关包(关键步骤)
按顺序执行以下清除命令,每执行一条都可能弹出确认对话框,需要你手动选择。

sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub-pc*
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub-common*
sudo chroot "/mnt/boot-sav/nvme1n1p4" apt-get purge --allow-remove-essential -y grub2-common*
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 可能会再次要求执行一条命令,例如:

    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. 关闭所有窗口,在终端执行:
    sudo reboot
    
  2. 在重启过程中拔掉 U 盘,让电脑从硬盘启动。
  3. 如果直接进入黑屏且左上角光标闪烁,说明启动顺序仍不正确。此时长按电源键强制关机
  4. 再次开机,连续按 F2 进入 BIOS 设置。
  5. 进入启动顺序(Boot Order)列表,应该能看到一个新的 ubuntu 启动项(可能对应第二块硬盘 SL7000)。使用 F5/F6 将其移动到第一位。
  6. 如果启动项列表中没有 ubuntu,则需手动添加:
    • 选择类似 “Boot from file” 的选项。
    • 浏览到第二块硬盘(SL7000)的 EFI 分区(通常显示为硬盘型号),进入 \EFI\ubuntu\ 目录,选择 grubx64.efi 文件。
    • 保存为一个新的启动项,命名为 ubuntu,并将其设为第一启动项。
  7. F10 保存并退出。

10. 验证启动

  • 重启后应出现 GRUB 菜单,显示 Ubuntu 和 Windows 的启动选项。
  • 选择 Ubuntu 进入系统,检查是否能正常登录。
  • 如果仍无法启动或 GRUB 菜单不出现,可能需进一步排查(见下文“故障排除”)。

11. 故障排除(如果仍无法启动)

情况 A:重启后直接进入 Windows
  • 再次进入 BIOS,确认 Ubuntu 启动项是否在第一位。
  • 如果 BIOS 无法调整顺序,可以在 Windows 中以管理员身份打开命令提示符,执行:
    bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
    
情况 B:黑屏光标闪烁
  • 重新从 U 盘启动进入试用环境。
  • 挂载 Ubuntu 的根分区和 EFI 分区:
    sudo mount /dev/nvme1n1p4 /mnt
    sudo mount /dev/nvme1n1p2 /mnt/boot/efi
    
  • 检查 EFI 分区中是否有 GRUB 文件:
    ls /mnt/boot/efi/EFI/ubuntu/
    
    应看到 grubx64.efishimx64.efi 等文件。如果缺失,重新安装 GRUB:
    sudo 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/nvme1n1p4UUID=...)。
  • 若无法解决,可考虑在 Ubuntu Live 环境下重新安装 GRUB 或使用 Boot-Repair 再次修复。

重要提示

  • 整个修复过程中,确保网络连接稳定,以便下载必要的软件包。
  • 执行清除 GRUB 包的命令时,务必仔细阅读对话框提示,避免误操作。
  • 如果遇到任何未预期的对话框或错误信息,建议截图保存,以便进一步分析。

通过以上步骤,应该能够成功修复双硬盘双系统的引导,并正常启动 Ubuntu 22.04。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐