如何在不可启动的 NVMe 驱动器上安装 Windows 10?

如何在不可启动的 NVMe 驱动器上安装 Windows 10?

一切始于我尝试对我的可靠计算机(华硕 A88XM-Plus、AMD A10、256 + 128 个 Sata SSD)进行小幅升级。我需要更多空间,因此我在 PCIe 适配器上添加了一个三星 NVMe 驱动器。我的目的是将 Windows 10 安装移动到 NVMe,同时保留一个 SSD 用于启动和一个 Linux Mint 系统。

首先,事情的发展并不像我预期的那样。我无法扩展 Windows 分区,因为 Windows 创建分区的方式。我无法启动 Windows,因为不知何故启动信息消失了(不过它确实启动过一次……一次)。我一直收到 0x00..00e 错误。我无法使用 Windows 修复工具,因为没有可启动的 Windows,我无法创建 Windows USB 密钥。我最终借助另一台 Linux 机器上的旧 vm 成功了,但这也没用。一些工具(bootrec /fixmbr)可以工作,而一些工具(bootrec /RebuildCDB)无法工作,因为未找到“请求的系统设备”。所以在花了整整 3 天时间试图解决这个问题后,我放弃了,并接受了重新安装所有东西的需要。

我的 LinuxMint 很新并且可以运行,所以我专注于 Windows。我使用 Windows 10 USB 密钥来安装 Windows:盒子里只有 NVMe 驱动器。CSM 已禁用。安全启动已禁用。然后在安装程序的自定义安装菜单中删除 NVMe 驱动器上的所有分区。选择空白处启动安装首次重启时,我关闭计算机以移除 USB 记忆棒并插入带有 Linux 的 SSD,这样我就有一个可启动的驱动器。启动 Linux 系统更新 grub 重启现在我在 Grub 菜单中有一个 Windows 系统的条目,我可以启动它......或者我是这样认为的。Grub 一直告诉我没有这样的设备。我检查了驱动器的 UUID,它是正确的。通过列出分区(ls),我意识到 Grub 似乎没有看到/加载 NVMe 驱动器。

在阅读更多内容后,我发现如果在安装时找到现有的 EFI 分区,Windows 实际上可以使用它。所以我重新开始,但这次,我将 SSD 与 Linux 放在一起,以便 Windows 安装程序可以使用其上的 EFI 分区。删除 NVMe 中的所有分区并选择空白空间进行安装的过程相同。它似乎有效。Windows 管理器仅在 NVMe 上创建了 2 个分区,显然将数据放在了 SSD 的 EFI 分区中。计算机重新启动,在 BIOS 中,我可以看到一个名为“Windows 启动管理器”的 UEFI 条目。太好了,我选择它继续安装……或者我是这样认为的。Windows 向我发出了完全相同的 0x00...00e 错误,告诉我我的系统需要修复。

这让我想到 Windows 在启动时也不会加载 NVMe,因此无法找到实际的系统分区。

有没有什么办法可以解决这个问题?

答案1

解决这个问题的方法有很多,但我强烈建议将操作系统安装在连接到主板的磁盘上。这是因为 Windows 必须加载驱动程序才能运行 PCIe 卡,而这很脆弱,这可能是 Windows 无法启动的原因。我们曾经有一个系统,当时 Windows 运行良好,直到更新导致它无法初始化 PCIe 磁盘卡,我们不得不从恢复磁盘启动。

最好将 Linux 和 Windows 安装在 SATA SSD 上的不同分区中,并在 NVMe 上为它们创建两个分区以存储数据。在系统磁盘上,您应该拥有启动两个系统所需的一切以及 NVMe 上的额外数据(主页、用户、媒体等),这也将使两个系统的性能得到提升!

关键是,即使你设法让它工作,它也可能损坏,修复起来很麻烦。如果你让两个操作系统上的启动过程都很简单,这将省去很多麻烦。我能想到另一种方法,但我没有尝试过,那就是在以 NVMe 作为物理磁盘的 VM 下运行 Windows。这样,驱动器访问将由 VM 层模拟,Windows 不会知道它在 PCIe 卡上。当然,这会产生虚拟化的开销,所以这取决于你使用 Windows 做什么。

答案2

据我所知,要启动 PCIe 设备上的 NVMe 驱动器,您必须启动 UEFI BIOS,因为非 UEFI BIOS 在启动时无法识别 NVMe 驱动器。此外,我认为 BIOS 要求所有驱动器都是 GPT 才能更改为 UEFI。如果我错了,希望有人能纠正我。

相关内容