删除引导分区后将 Windows 分区添加到 GRUB

删除引导分区后将 Windows 分区添加到 GRUB

我有一个非常特殊的问题,我找不到解决方案。那么让我们开始吧。

我有两个并行运行的操作系统。一台用于工作的 Ubuntu 20.04,一台用于 Windows 10 和私人用途。我在 Windows 之后安装了 Ubuntu 分区,因此配置 GRUB 非常简单。

现在,我安装了另一个硬盘驱动器,上面又安装了一个 Windows 10,用于我刚刚完成的另一项工作,一切都变得混乱了。

作为概述,我有三个硬盘驱动器和三个不同的操作系统。

  • sda
    • 用于工作的 Ubuntu 20.04。根分区已加密,因此我在其上有一个单独的启动分区
  • SDDC
    • Windows 10 供私人使用。
  • NVME0N1
    • Windows 10 的第二份工作

因此,通过在 nvme0n1 上安装第二个 Windows 10,Windows 安装程序似乎覆盖了 sda 上的启动分区。我现在唯一能启动的就是 Windows 启动管理器,它只显示两个 Windows 安装。所以我从 Ubuntu Live Stick 启动并尝试重新安装 grub2。这已经花了我很长时间。我删除了启动分区,从 sda 挂载了加密的根分区,进入 chroot 环境后,我能够重新安装 GRUB,这样我就可以再次启动到 Ubuntu 20.04。但现在我无法启动到 Windows 分区。它们没有列在 GRUB 启动菜单中,还有类似的东西

sudo os-prober

sudo update-grub

无法找到 Windows 安装。当我尝试在BIOS中直接选择其中一个硬盘作为启动介质时,它显示没有安装操作系统。因此,我认为通过删除 Windows 启动管理器分区,我也丢失了有关 Windows 安装的所有信息。我已经看到有一些方法可以从 Windows 安装中重新安装 Windows 启动管理器,但我担心它只会再次覆盖 sda 上的启动分区,而我最终会回到最初开始的地方。

我还尝试手动将 Windows 启动条目集成到/etc/grub.d/40_custom看起来像这样:

menuentry "Windows 10 - Job" --class windows --class os {
           insmod ntfs
           search --no-floppy --set=root --fs-uuid 3600AB6100AB2739 
           ntldr /bootmgr
}
menuentry "Windows 10 - Home" --class windows --class os {
           insmod ntfs
           search --no-floppy --set=root --fs-uuid 84EC4785EC47710A 
           ntldr /bootmgr
}

这些条目显示在 GRUB 菜单中,但不幸的是我收到错误grub 无效的 efi 文件路径。所以,我不知道下一步该做什么...

答案1

我认为大约一周前 Arch linux 也遇到了同样的问题,修复如下:

  1. 我确保 os-prober 已安装(可能是)
  2. 安装ntfs-3g重要的
  3. sudo 更新 grub

相关内容