![Vista 64x Enterprise 修复启动管理器](https://linux22.com/image/519536/Vista%2064x%20Enterprise%20%E4%BF%AE%E5%A4%8D%E5%90%AF%E5%8A%A8%E7%AE%A1%E7%90%86%E5%99%A8.png)
我的电脑上有两个版本的 Vista,我删除了一个,现在我无法再启动另一个 Vista 64x Enterprise。
bootsect.exe
我已尝试使用 bcd 指令来修复引导加载程序,但是由于缺少它,我无法使其工作。
有人知道我该如何修复我的启动管理器吗?
我的 Vista 分区不是主分区,这有关系吗?
如果确实如此,有什么方法可以在不格式化的情况下更改它吗?
答案1
您是否有单独的启动分区和系统分区?
bootmgr 和包含 BCD 的启动文件夹需要位于活动分区上;无论它是什么。只有主分区可以处于活动状态,并且您最多可以有 4 个主分区。
编辑:
看起来您必须将 bootmgr 和 BCD 放在恢复分区上并将其标记为活动。如果您启动计算机附带的 Windows CD,则在启动完成后,您可以按 Ctrl+F8,然后您将获得命令提示符。
从那里打开diskpart
并运行list vol
,记下当前处于活动状态的卷号以及恢复分区的编号。运行sel vol #
(其中 # 是您为恢复卷记下的编号)。act
然后运行exit
。
现在应该能够bootrec /fixboot
继续运行bootrec /rebuildbcd
,然后就可以走了。
如果出现严重问题(不太可能),您必须找一个可以深入研究该问题的人,一定要告诉他们这些变化以及您从上面记录的信息。
编辑2:(哎呀)
再次在 Windows 设置中打开命令提示符,运行cp X:\bootmgr $:
其中“$”是恢复驱动器号(如果您忘记了,磁盘部分会再次告诉您;但它可能是“C”)。
答案2
您得到的确切错误是什么?如果是 BCD 问题,我预计您会看到非常不友好的 BSOD。确切的信息可能会有所帮助。此外,如果您可以从 Windows 安装磁盘启动(如 @Chris S 所述),您可以复制并粘贴日志(如果您可以进入命令提示符,我真的忘了怎么做,因为我们使用的是 WinPE,它无论如何都在同一个基础上运行;如果您有安装程序磁盘,我相信 WAIK,您可以自己制作)。只需找出损坏分区的路径(恢复/PE 环境通常可以智能地进行自动映射,因此我假设它将是 C:,而启动 CD 的实际“分区”默认情况下将是 X: 上的 ramdisk)。从命令提示符执行此操作,然后将输出的文本文件发布在此处:
bcdedit /store "%DRIVE%\boot\bcd"
> “%USBDRIVE%\bcdoutput.log”
我很肯定它会是 C:,所以像这样(并确保 USB 驱动器正确):
bcdedit /store "C:\boot\bcd"
> “F:\exampledrive-so-check-bcdoutput.log”
如果您不这样做/store
,它只会为您提供 CD 的启动信息,因此这毫无用处。请确保您使用它。如果您在此处发布该信息,我可能会更好地了解如何帮助您。这种情况在我的实验室中经常发生,很抱歉这对您造成了不利影响。
@Chris S 有一个非常可靠的答案,这将是我的第一直觉。
答案3
好的。我本来想把这个写成评论,但写到一半就太长了。在继续之前,如果我不说这些显而易见的话,那我在道德上就是失职的:首先备份你的文件。当我这样做时,它有效,但我也在实验室机器上这样做,没有丢失任何后续数据。我现在已经警告过你了,除非完全绝望,否则请不要让你的情况变得更糟。
所以,Chris S 很好地解释了启动部分。我们使用的实用程序控制得更细粒度(因此可以帮您搞砸系统)bootsect
。据我所知,它包含在 Vista 和 7 的安装盘中。我可能错了,但您很快就会发现。所以,这就是它的工作原理。
你确实需要了解计算机中的驱动器:有多少个?两个操作系统是否都安装在不同的分区上?同一磁盘? 不同的磁盘? 这可能解释了部分问题。我假设您至少在不同的分区上安装了系统,也许是不同的磁盘,并且所有启动配置数据都存储在您删除的分区上,无论是否在同一磁盘上。底线:您需要知道要恢复的分区的驱动器号,据我所知,并且能够确认它。您应该能够通过在
explorer
该提示符中键入来打开资源管理器窗口(我认为)。如果没有,请mountvol
在命令提示符下检查以查看每个磁盘的列表和分配的字母。因此,如果资源管理器不起作用,您可以使用命令提示符中的命令浏览目录dir
。如果您不明白我的意思,请询问。找到正确的驱动器后,请
dir /ash %DRIVEHERE%\
(我再次猜测,dir C:\
除非您的系统很奇怪)查找必要的隐藏系统目录和引导加载程序本身。如果它正常运行,您应该会看到类似这样的内容。
2009 年 12 月 22 日下午 7:06 启动
2009 年 7 月 13 日 晚上 9:38 383,562 bootmgr
如果不存在这些,你应该再检查一下dir C:\Boot
,并dir C:\bootmgr
确保部分退货是文件未找到。最有可能的是你缺少了这两者,而 Chris 提到的并没有让它们达到它们需要的位置,也许只是配置错误。如果他们做存在,我会复制它们或重命名它们(move C:\bootmgr bootmgr.arc
只是move C:\Boot Boot.arc
为了安全)。
如果你已经做到了这一点,那么乐趣就从这里开始了。从安装盘复制所有启动目录。
REM # 再次,C:可能不正确,这取决于您在上面发现的内容。X:肯定是正确的。
xcopy /y /e /h X:\bootmgr C:\
xcopy /y /i /e /h X:\Boot*.* C:\Boot
更新引导扇区代码。
REM # 在显示新位置中的所有文件之后,执行以下操作。
REM # 下面的命令将强制重置磁盘本身的引导代码。MAKE
REM#确保您获得了正确的驱动器!
bootsect /nt60 C:/force
重新配置 BCD 存储,注意驱动器号。
REM # 您现在可能必须重置 BCD 存储。同样,这很有趣,但如果您不对写入分区执行此操作,则只会很糟糕。这里是
bcdedit /store C:\boot\bcd /set {memdiag} 设备分区=C:
bcdedit /store c:\boot\bcd /set {ntldr} 设备分区=C:
bcdedit /store c:\boot\bcd /set {default} 设备分区=C:
bcdedit /store c:\boot\bcd /set {默认} osdevice 分区 = C:
bcdedit /store c:\boot\bcd /set {bootmgr} osdevice 分区=C:
bcdedit /store c:\boot\bcd /set {bootmgr} 设备分区=C:
重启。
REM #这将重新启动安装程序环境
wpeutil 重新启动
现在我知道有一种 Windows 恢复盘,它使用经过修改的映像,就像安装盘一样,可以自动完成这些操作,但我相信只有拥有某些 CAL 安排的企业客户才能使用它。它被称为 WinRE。现在,话虽如此,我不确定它是否只是我提议的 GUI,还是 Chris S 提议的 GUI。我希望这能有所帮助。我从开始使用 Vista 时摆弄大量损坏的 Windows 计算机中学到这一点。YMMV,但我希望这会引导您朝着正确的方向前进。