镜像磁盘故障后如何识别和删除 Windows 2008 服务器上未使用的启动项

镜像磁盘故障后如何识别和删除 Windows 2008 服务器上未使用的启动项

我的 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。

希望这可以帮助。

相关内容