我正在尝试将 32 位 Vista 安装移到更大的硬盘上。我尝试使用常规方法执行此操作:
- 将系统启动到 Ubuntu Live CD
- 使用以下方法备份 MBR:
dd if=/dev/sda of=/some/backup/place bs=512 count=1
- 将整个分区备份
dd
到临时的外部 USB 驱动器。(此系统仅能安装一个硬盘) - 关闭并安装新的驱动器。
- 再次启动 Ubuntu Live CD。
- 使用 从备份将 MBR 恢复到新驱动器上
dd if=/some/backup/place of=/dev/sda bs=512 count=1
。 - 用于
fdisk
删除作为 MBR 的一部分恢复的分区,并创建一个与要恢复的分区大小相同的新分区,记得将其标记为可启动。(这样做的原因是旧驱动器有其他分区,我不想移动它们。) - 使用 恢复整个分区
dd
,并检查是否可以挂载新的分区。 - 重新启动进入新驱动器并检查 Windows 是否仍然正常运行。运行磁盘检查以确保其完整性。
我已经在各种版本的 Windows 上使用过这种方法数十次,而且效果一直很好。这是我第一次在 Vista 上尝试这种方法,但我发现它不能正常工作。系统无法从新驱动器启动。当我尝试从新驱动器启动时,只看到一个闪烁的光标,没有其他任何内容。
我尝试过的事情:
- 使用上述方法,我从 备份
/dev/sda3
并恢复到/dev/sda1
。我担心移动分区号可能会混淆 Vista 引导加载程序,因此我尝试将新分区再次命名为sda3
(只需在fdisk
上述阶段指定正确的主分区号即可完成)。这并没有解决无法启动的问题。 - 我也尝试过使用“ ”从头创建新的 MBR(不参考备份)
dd if=/dev/zero of=/dev/sda bs=512 count=1 && lilo -M /dev/sda mbr
,然后从上面的第 7 步继续。但这并没有解决问题。
我现在确信分区本身已正确恢复。我的 Ubuntu Live CD 可以正常安装该分区。我唯一剩下的问题就是让系统从新驱动器启动。
有谁知道 Vista 引导加载程序与 Windows XP 有何不同,以便我可以调试为什么上述方法不起作用?
答案1
引导加载程序与 XP 有很大不同,因此我建议从 Windows 光盘进行修复。它应该会检测分区并修复引导扇区,然后您就可以(如果您是双引导)使用 LiveCD 进行 GRUB 刷新。
答案2
我终于解决了这个问题。
我决定复制整个驱动器,而不仅仅是我想要的一个分区。
- 启动 Ubuntu Live CD。
- 备份全部
/dev/sda
使用dd
。 - 关机,放入新驱动器,重新启动 Ubuntu Live CD。
- 将备份恢复到新的
/dev/sda
使用中dd
,包括不需要的分区。 - 重新启动进入新驱动器,并检查 Vista 是否正常运行。
- 根据需要重新调整分区。
我不知道我的第一个方法出了什么问题,但现在已经解决了。:)