在另一块硬盘上安装 Windows 10 和 Ubuntu 18.04

在另一块硬盘上安装 Windows 10 和 Ubuntu 18.04

我目前运行的是 Ubuntu 作为我的操作系统,但我想安装 Windows 作为我的辅助操作系统,以便玩一些我错过的游戏。我的 256gb SSD 上安装了 Ubuntu,还有一个 2tb HDD,我想知道我是否可以在不破坏我当前的操作系统或加载程序(我认为是 grub)的情况下将 Windows 10 安装到该驱动器上。我没有找到任何关于此的文章(可能是因为我搜索错了。我不知道),所以如果有人可以给我一篇文章的链接或直接在评论中告诉我,我将不胜感激。提前谢谢,抱歉我的英语不好,我是芬兰人。

答案1

在任何具有多个磁盘的系统上安装 Windows 10 时的当前建议似乎是暂时断开除您计划安装 Windows 的磁盘之外的所有磁盘,并仅在安装完成后重新连接它们。

这是因为 Windows 的现代版本将使用多个分区,尽管安装程序会询问 Windows C: 驱动器使用哪个磁盘/分区,但它不一定对其他分区使用相同的磁盘(并且不会专门询问其他分区)。断开其他磁盘的连接将消除不可预测性。安装完成后,您应该在 UEFI/BIOS 设置中检查启动顺序,并根据需要进行调整。

在 Linux 中运行sudo update-grub可能足以让 Ubuntu 检测到 Windows 的存在并将其添加为 GRUB 中的菜单项。

如果使用 UEFI 启动方案

如果您的系统使用 UEFI,Windows 安装程序将在系统 NVRAM 中注册一个新的引导加载程序设置,通常Windows Boot Manager将其命名为引导顺序中的第一个。如果您的系统固件自动删除任何引用不存在磁盘的引导条目,则断开 Ubuntu 系统磁盘的连接将导致从系统 NVRAM 中删除它的引导加载程序注册。

在将第二个操作系统安装到当前以 UEFI 模式启动 Linux 的双启动系统之前,您应该熟悉该efibootmgr命令,记录 Linux 使用的当前 UEFI 引导加载程序条目(运行efibootmgr -v并保存输出!),并确保您有一个实时 Linux 媒体,或者一个可用于在救援模式下启动系统的 Linux 安装媒体,在 UEFI 模式下。这样,如果您的系统固件在 Linux 系统磁盘断开连接以进行 Windows 安装时删除了 Ubuntu 的引导加载程序注册,您可以通过从外部媒体启动并使用efibootmgr恢复引导注册轻松恢复它。所需的命令类似于以下内容:

efibootmgr -c -d /dev/sda -L "Ubuntu Linux" -l \\EFI\\Ubuntu\\grubx64.efi

(NVRAM 中的引导加载程序注册基于 GPT 分区 UUID,因此,如果从外部媒体启动时未使用相同的设备名称检测到您的 Linux 系统磁盘,则不会出现问题。只需告知efibootmgr包含您的 UEFI 引导加载程序的设备是什么目前被称为,它就能正确地完成工作。)

但那是最糟糕的情况。在最好的情况下,固件不会自动删除启动项,在安装 Windows 并重新连接另一个磁盘后,您唯一需要做的就是访问固件设置(“BIOS 设置”)并将“Ubuntu”启动项翻转回第一优先级插槽。

答案2

首先使用 ESP 在单独的驱动器上安装 Windows(如果您的系统有 UEFI 固件),然后在 grub 中添加一个条目以链接加载 Windows 的 BOOTMGR efi 文件

安装带有 ESP 的 Windows 后,在 grub 提示符下执行以下操作:

ls #它将返回一些驱动器,例如 (hd0) (hd0,gpt1) (hd0,gpt2) (hd1) (hd2) (hd2,gpt1) (hd2,gpt2)

现在 (hdx,gpt2) 可能是 Windows 的 ESP,让我们假设它的 (hd2,gpt2)

在 Linux 中写入 /etc/default/grub.d/40_custom 文件

菜单项“Windows 启动”{设置 root=(hd2,gpt2) chainloader /EFI/Microsoft/Boot/bootmgfw.efi}

并保存文件然后执行

sudo grub-mkconfig -o /boot/grub/grub.cfg 重新启动,你应该会看到一个“Windows Boot”条目

相关内容