我的 Server 2008 R2 服务器上的一个软件镜像磁盘出现故障。它掉线了,重启后又恢复了,但磁盘已经过期了,所以我不得不恢复镜像并重建坏磁盘(此时还不知道它坏了)。然后它又掉线了,所以我更换了它。
现在我的启动菜单中有 5 个条目:
Windows Server 2008 R2
Windows Server 2008 R2 - secondary plex
Windows Server 2008 R2 - secondary plex - secondary plex
Windows Server 2008 R2 - secondary plex
Windows Server 2008 R2 - secondary plex - secondary plex - secondary plex
默认条目 (Windows Server 2008 R2) 无法启动。您必须手动选择其他条目才能启动服务器。
我的 bcdedit 列表显示如下:
Windows Boot Manager
--------------------
identifier {bootmgr}
device unknown
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {default}
resumeobject {3c1a07d1-3aaf-11e3-be1a-d6c22ece83ca}
displayorder {default}
{current}
{3c1a07dc-3aaf-11e3-be1a-d6c22ece83ca}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device partition=\Device\HarddiskVolume2
path \Windows\system32\winload.exe
description Windows Server 2008 R2
locale en-US
inherit {bootloadersettings}
recoverysequence {3c1a07d3-3aaf-11e3-be1a-d6c22ece83ca}
recoveryenabled Yes
osdevice partition=\Device\HarddiskVolume2
systemroot \Windows
resumeobject {3c1a07d1-3aaf-11e3-be1a-d6c22ece83ca}
nx OptOut
Windows Boot Loader
-------------------
identifier {current}
device unknown
path \Windows\system32\winload.exe
description Windows Server 2008 R2 - secondary plex
locale en-US
inherit {bootloadersettings}
recoverysequence {3c1a07d3-3aaf-11e3-be1a-d6c22ece83ca}
recoveryenabled Yes
osdevice unknown
systemroot \Windows
resumeobject {3c1a07d1-3aaf-11e3-be1a-d6c22ece83ca}
nx OptOut
Windows Boot Loader
-------------------
identifier {3c1a07dc-3aaf-11e3-be1a-d6c22ece83ca}
device partition=C:
path \Windows\system32\winload.exe
description Windows Server 2008 R2 - secondary plex - secondary plex
locale en-US
inherit {bootloadersettings}
recoverysequence {3c1a07d3-3aaf-11e3-be1a-d6c22ece83ca}
recoveryenabled Yes
osdevice partition=C:
systemroot \Windows
resumeobject {3c1a07d1-3aaf-11e3-be1a-d6c22ece83ca}
nx OptOut
我不确定应该删除哪些,应该将哪些设置为活动状态。{current} 条目显示设备为“未知”,这让我有点不敢尝试。这是远程托管站点上的生产服务器,所以我无法真正尝试来尝试正确操作。
diskpart 显示磁盘 1(0 和 1 中的)是启动设备。
有人有什么建议吗?
答案1
您可以使用磁盘管理来查看和映射磁盘和分区(或者使用 diskpart.exe)。
通常第一个磁盘(磁盘 0)是启动候选,并检查是否存在活动分区。如果第一个磁盘上没有活动分区,则检查第二个磁盘(磁盘 1)是否存在活动分区,依此类推。
奇怪的是,{bootmgr} 的设备在当前系统 BCD 中也被列为“未知”!这可能会造成问题。
A.) 您能做的最好的事情就是使用 bootsect.exe 命令重写所有磁盘和分区上的 MBR 和 PBR:
bootsect /nt60 all /mbr
B.)然后使用bcdboot.exe命令重写(修复)BCD:
bcdboot Z:\windows
其中 Z: 是安装 Windows 的驱动器。稍后您必须使用 ReAgentC.exe 修复恢复加载程序。
C.) 您也可以在非系统磁盘上写入另一个 BCD(如果它有一个活动分区),使用
bcdboot z:\windows /s y:
其中 y:是非系统磁盘上的活动分区。
这样您就可以从任一磁盘启动。
为了以图形和结构化的方式查看 BCD您可以使用 Visual BCD 编辑器。
执行 bcdboot 命令后,您应该检查启动管理器和加载程序的设备是否正确列出。
修复 BCD 并重新启动后,您可以删除所有具有“未知”设备的加载器,这些加载器指向不是“启动”分区(Windows 安装和启动的位置)的分区。
笔记:
备份您当前的 BCD(!)使用 Visual BCD 编辑器或使用
bcdedit /export full_path_filename
(您可以随时使用“bcdedit /import filename”恢复 BCD)
BCD 中的所有“链接”都是通过 GUID 进行的。例如,元素“显示顺序”是 GUID 列表,这些 GUID 是加载器的 GUID。BCD 中的每个对象都有一个唯一的 GUID。
希望这可以帮助。