ミラーリングされたディスク障害後に Windows 2008 サーバーで未使用のブート エントリを識別して削除する方法

ミラーリングされたディスク障害後に Windows 2008 サーバーで未使用のブート エントリを識別して削除する方法

Server 2008 R2 サーバーのソフトウェア ミラー ディスクの 1 つに障害が発生しました。ディスクが切断され、再起動するとディスクは戻りましたが、ディスクは古くなっていたため、ミラーに戻って不良ディスクを再構築する必要がありました (この時点ではディスクが不良であるとは知りませんでした)。その後、再びディスクが切断されたため、ディスクを交換しました。

現在、スタートアップ メニューには 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) がブート候補であり、アクティブ パーティションの存在がチェックされます。最初のディスクにアクティブ パーティションが存在しない場合は、2 番目のディスク (ディスク 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 のリストです。BCD 内のすべてのオブジェクトには一意の GUID があります。

お役に立てれば。

関連情報