미러링된 디스크 오류 후 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 Editor를 사용할 수 있습니다.

bcdboot 명령을 실행한 후 부팅 관리자 및 로더용 장치가 올바르게 나열되어 있는지 확인해야 합니다.

BCD를 수정하고 재부팅한 후 "알 수 없는" 장치가 있는 모든 로더, "부팅" 파티션(Windows가 설치되고 시작되는 곳)이 아닌 파티션을 가리키는 로더를 삭제할 수 있습니다.

메모:

현재 BCD를 백업하세요(!) Visual BCD Editor를 사용하거나

bcdedit /export full_path_filename

("bcdedit /import filename"을 사용하여 언제든지 BCD를 복원할 수 있습니다)

BCD의 모든 "링크"는 GUID를 통해 이루어집니다. 예를 들어 "표시 순서" 요소는 로더의 GUID인 GUID 목록입니다. BCD의 모든 개체에는 고유한 GUID가 있습니다.

도움이 되었기를 바랍니다.

관련 정보