본문 바로가기

부팅과 멀티 부팅

[Bootmgr] F8 컴퓨터 복구 모드의 오류를 해결할 수 없을 때 - ReAgentc.exe 명령의 오류



* 모든 작업은 관리자 권한을 가진 계정으로 로그인하여 사용자 계정 컨트롤이 꺼진 상태에서 작업하는 것을 가정합니다. 그렇지 않으면 [Recovery] 폴더에 접근할 수 없습니다. [관련 포스팅] 

* 컴퓨터 복구 관련 파일들은 숨겨져 있습니다. 시스템 파일을 볼 수 있도록 미리 윈도우 탐색기의 설정을 변경하시길 바랍니다. [관련 포스팅]



컴퓨터 복구 문제의 일반적인 해결법


이와 같이 컴퓨터 복구가 없는 경우 이전의 두 글을 생각해보면 컴퓨터 복구와 관련된 구성은 ReAgentc /Enable 명령과 ReAgentc /Disable 명령, 두 가지 명령의 조합으로 대충 끝낼 수 있다는 것을 알 수 있습니다. 솔직히 제가 살펴보라고 한 것들 안 살펴봐도 다음의 두 가지 형태로 ReAgentc.exe 명령만 차례로 내려보면 거의 대부분의 컴퓨터 복구 문제는 해결할 수가 있죠.

뭘 복잡하게 이것저것 살펴보고 그러나요? 그냥 바로 활성화 하거나

reagentc /enable

찝집하면 다시 한 번 비활성화 하고 다시 활성화 해주면 끝나는 거죠~

reagentc /disable
reagentc /enable





ReAgentc.exe 명령의 오류와 원인

근데 세상이란게 항상 이렇게 정석대로만 움직이면 참 좋을텐데 인생이 참 우울하고 가락엿 같아서 아래와 같은 상황이 종종 발생하더란 말이죠.

뭐야? 왜 오류가 나고 지랄이야?



제가 말씀드렸죠. 컴퓨터 복구 구성은 GUID 식별자GUID 폴더ReAgent.xml(ReAgentc /Info) 가 모두 함께 삼위일체를 이루어야 정상적으로 작동한다구요. 지금까지는 그 중에 GUID 식별자가 혼자 따로 노는 경우였습니다.


하지만 지금의 경우는 좀 다릅니다. 바로 GUID 폴더ReAgent.xml 이 따로 노는 경우인 것이죠.

1. WinRE.wim 이 설치된 [\Recovery] 폴더 하위의 GUID 폴더



2. ReAgent.xmlBCD Id 정보가 서로 다르다.



해당 정보들이 불일치하게 되면 ReAgent.xml 정보를 기반으로 하여 작동되는 ReAgentc /Enable /Disable 명령이 처음에 보신 것과 같이 오류를 출력하며 말을 안 듣게 됩니다.

이러한 문제가 발생하는 정확한 원인은 저도 파악하지 못했지만 이미 설치가 완료된(그러니까 Sysprep 봉인된 윈도우 말고) 윈도우의 부팅 항목을  BCDBoot.exe 명령을 통해 새로 구성할 때 간헐적으로 발생하는 것은 확인하였습니다. 아무래도 윈도우의 연관된 전체적인 부팅 항목들을 구성하면서 컴퓨터 복구 관련 부팅 항목을 생성할 때 기존의 정보를 수정하다 오류가 발생하는게 아닐까 추측만 할 뿐 입니다.

아무튼 이럴 때는 사용자가 직접 컴퓨터 복구 구성을 초기화하는 방법으로 문제를 해결할 수 있습니다.




컴퓨터 복구 구성의 수동 초기화

작업을 간단하게 정리하면 아래와 같습니다.

1. [\Recovery\GUID\WinRE.wim] 파일을 초기 위치인 [\Windows\System32\Recovery] 폴더로 이동하고 [\Recovery] 폴더 전체를 삭제.

2. [\Windows\System32\Recovery\ReAgentc.xml] 정보 파일의 내용을 초기값으로 설정.


이렇게 작업을 해주면 ReAgentc /Disable 명령을 내린 것과 동일한 효과를 얻을 수 있게 되고 다시 ReAgentc /Enable 명령을 사용할 수 있게 되죠. 그럼 실제로 작업을 진행해 보죠.


먼저 시스템 드라이브(보통 C: 드라이브)의 루트에 위치하는 [\Recovery\GUID\WinRE.wim] 파일을 초기 위치인 [\Windows\System32\Recovery] 폴더로 옮겨줍니다.




WinRE.wim 파일을 해당 폴더로 정상적으로 옮겼으면 이제 시스템 드라이브 루트에 남은 [\Recovery] 폴더는 통채로 삭제합니다.



다음으로 [\Windows\System32\Recovery] 폴더의 ReAgent.xml 파일을 메모장으로 열어준 후 기존의 내용을 모두 지우고 다음의 내용을 복사하여 붙여 넣은 후 저장합니다.(메모장으로 열어보면 기존의 내용은 한 줄로 쭈욱 읽혀질 겁니다. 파일의 Enter 형식이 DOS 형식이 아니라서 그런거니 작업과는 상관이 없습니다.)

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<WindowsRE version="1.0">
 <WinreBCD id=""></WinreBCD>
 <WinreLocation path="" id="0" offset="0"></WinreLocation>
 <ImageLocation path="" id="0" offset="0"></ImageLocation>
 <OsInstallLocation path="" id="0" offset="0"></OsInstallLocation>
 <InstallState state="0"></InstallState>
 <OsInstallAvailable state="0"></OsInstallAvailable>
 <WinREStaged state="0"></WinREStaged> 
 <ScheduledOperation state="4"></ScheduledOperation>
 <OperationParam path=""></OperationParam>
 <OsBuildVersion path=""></OsBuildVersion>
 <OemTool state="0"></OemTool>
 <BootKey state="0"></BootKey>
</WindowsRE>



모든 작업을 마쳤습니다. 간단하죠? 지금까지의 작업이 바로 ReAgentc /Disable 명령을 내린 것과 동일하게 컴퓨터 복구 구성을 초기 상태로 만든 것입니다.




컴퓨터 복구 구성 초기화의 확인 및 재구성

컴퓨터 복구 구성의 초기화가 정상적으로 인식이 되었는지 ReAgentc /Info 명령을 통해 확인합니다.



윈도우 설치시 OOBE 를 종료하고 최고 관리자 계정을 활성화하여 설치했을 때와 동일하게 출력되었죠. 이와 같이 출력되면 초기화 작업이 잘 이루어진 것입니다. 초기화도 마쳤고 확인도 했으니 이제 기존과 같이 ReAgentc /Enable 명령을 통해 컴퓨터 복구 구성을 재설정해 줍니다.



조금 전에는 실패했던 작업이 정상적으로 성공하는 것을 확인할 수 있습니다. 명령도 성공했으니 어디 컴퓨터 복구 구성이 잘 이루어졌는지 다시 한 번 살펴 볼까요?





[Recovery] 폴더와 하위의 GUID 폴더도 정상적으로 생성되고 WinRE.wim 파일도 다시 옮겨온 것을 확인할 수 있습니다. 더불어 ReAgent.xml 파일의 정보도 다시 기록이 되었네요. 윈도우 부팅 항목의 RecoverySequence 옵션은 굳이 살펴볼 필요는 없겠죠?


이제 마지막으로 시스템을 재부팅하여 F8 고급 부팅 옵션의 컴퓨터 복구가 정상적으로 출력되고 부팅도 잘 진행되는지 확인합니다.




작업이 잘 이루어졌네요. 이상입니다.


p.s 아래의 파일은 ReAgent.xml 의 원본 파일입니다. ReAgent.xml 파일의 내용을 수정할 필요없이 바로 이 파일로 교체하여도 상관 없습니다.