web-dev-qa-db-ja.com

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

Server 2008R2サーバー上のソフトウェアミラーリングディスクの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
ITFlyer

ディスクの管理を使用して、ディスクとパーティションを表示およびマップできます(または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 BCDEditorを使用できます。

Bcdbootコマンドを実行した後、ブートマネージャーとローダーのデバイスが正しくリストされていることを確認する必要があります。

BCDを修正して再起動した後、「不明な」デバイスを持つすべてのローダーを削除できます。ローダーは、「ブート」パーティションではないパーティション(Windowsがインストールおよび起動されている場所)を指しています。

注:

Visual BCD Editorを使用するか、を使用して、現在のBCD(!)をバックアップします。

bcdedit /export full_path_filename

(「bcdedit/importfilename」を使用していつでもBCDを復元できます)

BCDのすべての「リンク」はGUIDを介しています。たとえば、要素「display order」は、ローダーのGUIDであるGUIDのリストです。 BCD内のすべてのオブジェクトには、一意のGUIDがあります。

お役に立てれば。

1
snayob