我安装了双启动。我首先将 Windows 7 安装在其自己的磁盘 (C:) 上,并断开辅助驱动器。我这样做是因为我知道 Windows 倾向于与其他驱动器混淆。然后我连接了辅助驱动器并创建了一个数据分区 (D:),并在第三个分区中安装了 Linux。
总结:
- 磁盘 1:Windows 分区 (C:)
- 磁盘 2:数据(D:)、Linux(由于文件系统,在 Windows 中不可见)、交换。
当 Linux 自行安装时,它还会在第二个磁盘(BIOS,而不是 UEFI)中安装 GRUB。因此,Windows 引导加载程序安装在 C:,没有使用。但如果在紧急情况下我断开了第二个磁盘或它发生故障,Windows 7 引导加载程序仍然可以工作。
多年来一直运行良好。
现在作为本月 Windows 更新的一部分,我推测它与那个提醒你支持终止消息和可能升级到 Windows 10 的更新有关,Windows 7 已将其自己的引导加载程序从 C: 移至辅助磁盘 (D:) 中的数据分区。现在 D: 中有一个bootmgr.exe
和一个Boot
文件夹,而 C: 中没有。
虽然通过 GRUB 进行双启动仍然运行良好,但我希望 Windows 自己的引导程序保留在它所属的 C: 中。将 bootmngr.exe 和 Boot 文件夹复制回 C: 是否足够,还是我应该使用 Windows 安装 DVD 来“修复”Windows 安装?如果我单独修复该磁盘,辅助磁盘中的 GRUB 是否还能工作?
更新:(2019 年 12 月)又发生了!我安装了一个安全累积包,但 Windows 显然认为安装它的 SSD 不好用,于是将自己移到了另一个硬盘上。
答案1
更新 我断开了第二个磁盘,重新启动,Windows 启动进入修复模式,而不是正常启动。我选择了“启动修复”,但它不起作用。它说 Windows 无法自动修复。显示的错误详细信息类似于“NoOsLoader”。我插入了原始 Windows 安装 DVD 并重新启动了 PC。在 BIOS 中,它说“按任意键从 DVD 启动”,所以我照做了,并从 DVD 启动。选择时区和键盘,然后再次选择“启动修复”,它修复了丢失的引导加载程序,而无需执行完全重新安装。现在 Windows 再次重新启动,这次它可以正常从 C: 启动。在此期间,辅助硬盘驱动器被断开(电源线和数据线),以防 Windows 修复实用程序决定弄乱这个磁盘。确认修复成功后,我再次连接另一个硬盘驱动器并启动到 Linux。我检查了 D: 分区,发现了一些以前不存在的文件,这些文件是 Windows 最近创建的:
/boot
bootmgr.exe
所以这肯定是问题的根源。Windows 已将其自己的引导程序移至他选择的分区。
我删除了这些文件,因为它们已经重新安装到它们所属的 C: 中。
现在为了防止这种情况再次发生我有两个选择:
- 永远不要再安装“安全”更新,因为它们显然会干扰引导加载程序。
- 在 Windows 中禁用 D:分区。
答案2
这是我大约一年前遇到的一个问题,当时我试图在第二个驱动器上安装 Windows,以便将数据从旧 HDD 迁移到新 SSD。在安装过程中,无论是错误还是设计使然,Windows 都会检测其他磁盘上的引导加载程序并自行安装在那里。无论如何,我都无法将引导加载程序安装到正确的磁盘上,所有补救措施都遇到了蓝屏或整洁的“未找到操作系统”消息。
最好的办法是尝试使用安装磁盘/USB 修复 Windows,同时断开 Linux 磁盘的连接。虽然可能可以移动文件,但我不建议这样做,因为 Microsoft 喜欢创建关联,这可能会让您的生活变得痛苦。
答案3
这个问题很微妙,因为 Windows 7 的启动过程非常脆弱。
理论上,可以将包含 Boot 文件夹的系统保留分区从 D 复制到 C,但也存在一些问题:
Windows 7 分区必须保留在其确切的扇区地址,否则启动过程将无法进行。如果您为了释放磁盘空间而移动它,它可能无法启动。
将System Reserved分区从D复制到C后,设置BCD的命令是:
bcdboot c:\windows /s c:
并且它必须从 Windows 内部发出,因此您必须从 grub 启动,并且不清楚哪个 BCD 存储将更新。如果它是 D 上的那个,那么您可能需要从 USB 启动 Windows 7 进入命令提示符,并使用正确的卷号并在断开 Linux 磁盘的情况下发出此命令。
在开始之前,我建议采取一些预防措施:
进行备份,包括 C 的系统映像。使用第三方产品,例如AOMEI Backupper 免费软件并创建其 启动媒体 并进行测试。这将为您提供将磁盘恢复到其工作状态的方法。
准备与安装服务包级别相同的 Windows 7 启动介质,因为你可能需要执行 启动修复 或者,如果这不起作用, 执行修复安装以修复 Windows 7。
您也许能够绕过上述一些预防措施,但是您需要有一些运气。