多个驱动器上的 Grub?

Ape*_*shi 6 partitioning boot grub2 dual-boot external-hdd

我的笔记本电脑(华硕 ROG G752)有 2 个 SSD。

首先,我在更小、更快的 256GB (NVMe) 上安装了 Windows (BIOS),
并使用更大的 512GB(SATA) 来运行游戏和程序。

最近我得到了一个外置硬盘,我想尝试一下 Ubuntu :D,
所以把它安装在那里,想着我会开始更多地使用它并延长我的 SSD 的使用寿命。

好吧,现在我的 Windows 系统在没有外部驱动器的情况下无法启动,因为 grub 就在那里

我不希望我的整个系统明显依赖于该驱动器。

我在网上搜索了一下,发现我要么必须在主驱动器上安装 grub,要么必须在主驱动器上安装 grub。或使用 Windows 恢复光盘修复 MBR。
这两个答案都让我感到困惑,因为我要么有 2 个 grub,这没有意义,要么当我进行 Windows 修复操作时,当我的硬盘已连接时,我会失去启动进入 Ubuntu 的选项。

我是不是搞错了什么?

TL;DR:当我没有连接外部驱动器时,我希望能够在主 SSD 上启动到 Windows,并且当我连接外部驱动器时仍然能够启动到 Ubuntu。我不是一个十足的菜鸟,但我对网上获得的信息没有信心继续进行。任何帮助表示赞赏!

old*_*red 2

如果系统确实是 UEFI(所有较新的系统都是 UEFI)并且 Windows 以 UEFI 启动模式安装,则这些说明将不适用。

安装时,如果是 BIOS,您应该使用 Something Else 安装选项并选择将 grub 安装到哪个驱动器的 MBR 中。您只希望它位于外部驱动器上,然后将外部驱动器设置为 BIOS 驱动器启动顺序中的第一个,然后如果未找到,则应默认为驱动器启动顺序中的下一个。

要修复它,现在,您需要将 grub 安装到外部驱动器的 MBR,并将 Windows 引导加载程序安装到内部驱动器。并且 BIOS 设置为首先启动外部驱动器。

您可以使用引导修复将 Windows 类型的引导加载程序安装到 Windows 驱动器。不要使用 Boot-Repair 运行自动修复,因为这会在各处安装 grub。或者使用 Windows 修复磁盘并运行 Windows 修复程序 (fixMBR) 将 Windows 引导加载程序恢复到 MBR。

如果启动到 Ubuntu,您可以直接将 grub 安装到外部驱动器的 MBR。或者您可以使用引导修复的高级选项并选择安装和驱动器来安装引导加载程序。

从工作系统(不是 liveCD/DVD/USB)重新安装 - 首先找到 Ubuntu 驱动器(示例是驱动器 sdb,但使用您的驱动器而不是分区):

sudo parted -l
Run Code Online (Sandbox Code Playgroud)

如果它是“/dev/sdb”那么只需运行:

sudo grub-install /dev/sdb
sudo update-grub
Run Code Online (Sandbox Code Playgroud)

https://help.ubuntu.com/community/Boot-Repair

最好还有 Windows 修复盘,以便在需要时修复 Windows,因为引导修复主要针对 Linux,只能对 Windows 进行一些小修复。