克隆包含Windows操作系统的分区后,如果克隆的分区在磁盘上的位置与原始磁盘上的位置不完全相同,则有必要修复启动配置数据。
自Windows Vista以来,Windows启动机制将其配置存储为“启动配置数据”(BCD),并且它不是通过分区号而是通过磁盘签名和扇区偏移来引用分区。磁盘签名是嵌入在主启动记录中的32位值。复制扇区0的前446个字节将复制磁盘签名。
如果克隆活动导致所克隆的磁盘分区的起始扇区地址与原始扇区地址不同(除非使用了整个磁盘克隆,否则很有可能),否则克隆很可能无法启动,直到应用了这些补救措施为止。
基本上,扇区偏移量需要更新,为此,您将需要使用故障恢复控制台(Windows 7安装DVD上提供此控制台)。确保仅连接克隆的驱动器,然后从Windows 7安装DVD引导。在第一个屏幕上,选择语言,然后单击“下一步”。在下一个屏幕(显示“立即安装”的位置)上,按SHIFT + F10可获得命令提示符。
首先,确认到位的驱动器号及其相关的分区:
diskpart
list volume
exit
另外,如果需要,请重新确认活动分区:
diskpart
select disk 0
select part 1
detail part
select part 2
detail part
... and so-on
exit
在BIOS系统上,BCD存储在文件中,X:\Boot\BCD
其中X
是活动分区的驱动器号(对于UEFI,它在EFI系统分区中)。通常是隐藏的,可以看到
dir /AH X:\Boot
可以这样备份:
bcdedit /export X:\path\to\bcd\backup
并恢复
bcdedit /import X:\path\to\bcd\backup
如果磁盘上有多个操作系统,则可能有多个BCD。活动BCD是\Boot\BCD
标记为活动分区的分区上的一个- 活动分区。列出其内容(按详细程度的升序排列:)
bcdedit
bcdedit /enum
bcdedit /enum ALL
bcdedit /enum ALL /v
要修复活动的BCD,请为正确的分区建立驱动器号并执行以下操作:
bcdedit /set {default} osdevice partition=X:
bcdedit /set {default} device partition=X:
bcdedit /set {bootmgr} device partition=X:
bcdedit /set {memdiag} device partition=X:
bcdedit /set {ntldr} device partition=X:
或者,修复另一个BCD(在这些示例中为“ X:\ boot \ bcd”):
bcdedit /store X:\boot\bcd /set {default} osdevice partition=X:
bcdedit /store X:\boot\bcd /set {default} device partition=X:
bcdedit /store X:\boot\bcd /set {bootmgr} device partition=X:
bcdedit /store X:\boot\bcd /set {memdiag} device partition=X:
bcdedit /store X:\boot\bcd /set {ntldr} device partition=X:
例如,我的系统具有XP和7,它们显示XP为on C:
且7为on D:
,活动分区为C:
。那么活动的BCD将在处c:\boot\BCD
。引导管理器位于C:\bootmgr
,内存诊断位于C:\boot\memtest.exe
,所需命令为:
bcdedit /set {ntldr} device partition=C:
bcdedit /set {memdiag} device partition=C:
bcdedit /set {bootmgr} device partition=C:
bcdedit /set {default} device partition=D:
bcdedit /set {default} osdevice partition=D:
进行了这些更改之后,重新引导计算机(按Alt-F4将实现此目的)并取出DVD,使系统能够成功引导。
进一步阅读:
(全磁盘克隆不应遭受这些问题,因为副本上的分区布局应与原始磁盘完全相同)
bcdboot
提供了一种更简便的方法来重新创建启动项,但是我不确定它是否适用于XP / W7双重启动方案。