我正在尝试将我的 Windows 7 分区 (~80GB) 移动到 120 GB 的 SSD 上。目前,我在 500GB 的 HDD 上双启动 Windows 7 和 Ubuntu 12.04,该硬盘预装了 Win7。我从其他地方读到的信息得知,当我在 Windows 旁边安装 Ubuntu 时,它会覆盖 Windows 主引导记录并使用 GRUB 进行引导。这意味着 Windows 无法在没有 GRUB 的情况下启动。
基本上,我想知道如何恢复 Windows MBR 并从新的 SSD 成功启动。
这是我尝试过的:
使用 AOMEI 备份程序将 Win7 分区克隆到 SSD
结果:完全无法启动
使用 Windows 修复盘/Windows 可启动 USB 修复 MBR。我尝试过自动修复和 BootRec。
结果:均未成功。有趣的是,BootRec/ScanOs 未检测到 Windows,但 Recovery Environment 本身检测到了它。
从本机映像软件制作的 Windows 系统映像恢复。
结果:恢复失败。我尝试过多次。有时我会收到“活动驱动器太小,无法恢复”。这应该没关系,因为映像恢复无论如何都应该格式化磁盘。我还被告知“参数不正确”。我不知道这是什么意思。
答案1
假设 Windows 引导加载程序位于实际安装的 Windows 7 分区上,这是一个简单的修复。
只需将分区复制到 SSD 上,然后在 Ubuntu 中获取一个名为“ms-sys”的 Linux 工具。您需要从头开始编译它,因为它不是以二进制形式分发的。您可以在此处获取它:http://ms-sys.sourceforge.net
构建完成后,导航到构建输出(如果我没记错的话,它只是标记为“bin”)。然后运行以下命令:
ms-sys -w /dev/sda
这会将 MBR 写入指定设备(显然,将“sda”更改为您的 SSD 所在的设备)。请注意,没有要写入的特定分区,而是写入通用设备本身。这是因为 MBR 只是指向引导加载程序所在的位置。ms-sys 只是假设引导加载程序位于磁盘的第一个分区上,因此 Windows 7 分区必须位于那里。
现在您可以尝试启动 Windows,如果一切按计划进行,您应该会看到启动动画。
但是,如果这对您不起作用或者您曾经有一个系统保留分区,请不要担心,因为还有一个选项。
回到 ms-sys,转到 Ubuntu 终端并向 ms-sys 执行以下命令:
ms-sys -w /dev/sda1
ms-sys -p /dev/sda1
这些将实际的引导加载程序以及分区信息写入 Windows 7 分区。
如果这些方法都不起作用,使用 ms-sys 会非常有用,就像我将 Linux 安装移到 VM 并出于兼容性原因删除 GRUB 时一样。每个类似的情况在这一点上都可能截然不同,所以只需尝试一些不同的方法即可。如果真的到了这一步,您可以随时备份所有重要信息并从全新安装开始,尽管这通常是最后的手段。
我希望这有帮助!