이 글은 윈도우 7 F8 컴퓨터 복구 모드가 없는 경우 글에서 소개했던 reagentc.exe 파일로 문제가 해결되지 않는 분들을 위해 수동으로 복구 모드를 등록시켜주기 위해 작성했습니다. 제가 스크립트 짜봤는데 VMware에서 몇차례 테스트 결과 별 문제는 없었습니다. 이거 만들면서 알게된 점은 boot.sdi 파일이 윈도우 폴더에도 들어있다는 사실 ;; 전 지금껏 윈도우 7 DVD의 Boot 폴더에서 복사해왔는데 말이죠 ㅠㅠ boot.sdi 파일까지 첨부해서 올리려다 혹시나 싶어 파일 검색해보니 윈도우 폴더에 들어있더군요 ^^;;

 

다운로드

 

 

 

 

위 첨부파일을 받아서 우클릭 - 관리자 권한으로 실행 해주시면 됩니다.

 

아래는 스크립트 내용입니다. 고수님들 문제점이 발견되면 지적해주세요.

일반적으로 대부분 현재 OS의 identifier 가 {current} 이지만 가끔 {default} 인 경우도 있어서 이렇게 작성했습니다.

 

@echo off

 

:general
set REID={572bcd56-ffa7-11d9-aae0-0007e994107d}
set SD=%systemdrive%
md %SD%\Recovery
copy %windir%\system32\recovery\winre.wim %SD%\recovery\
if exist %windir%\system32\boot.sdi copy %windir%\system32\boot.sdi %SD%\recovery\
if not exist %windir%\system32\boot.sdi copy %windir%\syswow64\boot.sdi %SD%\recovery\
attrib %SD%\Recovery +h +s

 

:case1
set OSID=current
bcdedit /set {%OSID%} recoverysequence %REID%
if errorlevel 1 goto case2
bcdedit /set {%OSID%} recoveryenabled yes
goto continue

 

:case2
set OSID=default
bcdedit /set {%OSID%} recoverysequence %REID%
bcdedit /set {%OSID%} recoveryenabled yes
goto continue

 

:continue
bcdedit /create {ramdiskoptions}
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=%SD%
bcdedit /set {ramdiskoptions} ramdisksdipath \Recovery\boot.sdi
bcdedit /create %REID% /d "Windows Recovery Environment" /application OSLOADER
bcdedit /set %REID% device ramdisk=[%SD%]\Recovery\winre.wim,{ramdiskoptions}
bcdedit /set %REID% osdevice ramdisk=[%SD%]\Recovery\winre.wim,{ramdiskoptions}
bcdedit /set %REID% path \windows\system32\winload.exe
bcdedit /set %REID% systemroot \windows
bcdedit /set %REID% detecthal yes
bcdedit /set %REID% nx optin
bcdedit /set %REID% winpe yes

 

:exit
exit

 

 

 

위 스크립트로 VMware에 32/64비트 둘다 msoobe.exe 강종으로 설치하고 테스트 해보니 잘 생성되었습니다.

 

 

 

 

아래 내용은 VHD + PE 멀티부팅 유저들만 참고하세요.

 

제 컴퓨터에서 수차례 테스트해본 결과 저처럼 VHD 부팅하시는 분들 중에 boot.sdi 파일의 경로가 새로 지정됨으로 인해 기존에 등록해두었던 PE로의 부팅이나 VHD 파일 교체하기 메뉴 등 {ramdiskoptions} 를 사용하는 PE 메뉴들로의 진입에 문제가 발생할 소지가 있음을 확인했습니다. 왜냐하면 VHD 부팅 유저들이 이 스크립트를 사용하면 boot.sdi 파일의 경로가 VHD 안에 있는 것으로 지정되는데 만약 VHD 파일을 기존 것으로 교체해버리면 boot.sdi 파일이 들어있지 않은 기존 VHD 파일에 당연히 boot.sdi 경로는 없을테니 {ramdiskoptions} 를 사용하는 다른 PE 부팅 메뉴들로는 부팅이 되지 않겠지요. 따라서 저처럼 Differencing VHD 기능을 사용하시는 분들은 이 스크립트로 F8 복구모드를 등록시키기 전에 먼저 부모 VHD 파일로 부팅한 다음 작업을 해주셔야 합니다. 아니면 위 스크립트에서 {ramdiskoptions} 생성하는 3줄을 빼버리셔도 됩니다.

 

bcdedit /create {ramdiskoptions}
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=%SD%
bcdedit /set {ramdiskoptions} ramdisksdipath \Recovery\boot.sdi

 

왜냐하면 어차피 boot.sdi 파일과 {ramdiskoptions} 에 대한 정보는 PE 부팅을 사용하시던 분들이라면 이미 BCD에 등록되어 있기 때문에 새로이 등록할 필요가 없고 바로 복구모드 항목을 생성해도 되기 때문입니다. 제가 스크립트 짤 때 bcdedit /create {ramdiskoptions} 에서 항목이 있다고 나오면 바로 boot.sdi 단계는 넘기고 아래쪽으로 내려가도록 만들까 생각도 해봤는데 그래도 혹시나 항목이 있음에도 불구하고 boot.sdi 파일의 경로가 잘못 지정되어 있는 상태이거나 아니면 {ramdiskoptions} 항목만 존재하고 boot.sdi 파일의 경로는 지정되어 있지 않은 경우도 만에 하나 있을 수 있으므로 함부로 그렇게 짤 수도 없었습니다. 또한 이 문제는 VHD 부팅 + 램디스크 PE 부팅 이라는 조합을 동시에 사용하는 저같은 극히 일부 유저들에만 국한되는 문제이고 더욱이 그 유저들 중에 F8 복구모드가 없는 경우는 더더욱 소수일 것이고 또한 설령 F8 복구모드가 없다고 해도 이 스크립트보단 reagentc.exe 파일로 간단히 해결될 가능성이 높고, 또한 PE로 부팅하는 분들은 어차피 F8 복구모드의 필요성을 별로 느끼지 못하실 것이라 생각하기 때문에 스크립트에 따로 {ramdiskoptions} 항목에 대한 체크는 넣지 않았습니다.

 

다시 말씀드리지만 이 추가 내용은 VHD + PE 부팅 유저들만 참고 하시면 됩니다. 99%(?)의 일반 유저들과는 전혀 관계없는 이야기 이니 스킵하시기 바랍니다.

 

그리고 이미 위 스크립트 실행으로 VHD 안에 boot.sdi 파일이 지정된 경우라 하더라도 boot.sdi 파일의 경로는 다시 지정해주시면 됩니다. 저같은 경우 현재 XP 파티션이자 시스템, 활성 파티션인 D 드라이브 boot 폴더 안에 이 파일을 넣어두었기 때문에

 

bcdedit /set {ramdiskoptions} ramdisksdidevice partition=D:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi

 

라고 입력을 하면 되겠지요.

 

신고
Share
  1. 이전 댓글 더보기
  2. BlogIcon granblude
    2010.03.05 16:28 신고

    유용한 내용 잘 봤습니다. 집필은 모두 마치셨나 보군요
    여유 생기면 좋은 내용이 가득할테니 구입해 보도록 하겠습니다. 아무쪼록 대박나시길 기원합니다 ^^

  3. BlogIcon PiPS
    2010.03.05 17:16 신고

    배치 파일로 작성해주셨군요^^ 좋은팁 감사합니다~

  4. BlogIcon LiveREX
    2010.03.05 17:40 신고

    오늘도 기가막히게 유익한 내용 잘 보고 갑니다 ^^

    GUID 를 지정해두고 해도 괜찮은가보네요?
    새로운 지식을 얻었습니다 ㅎㅎ
    배치파일 잘 보관하고 있어야겠네요~

    • BlogIcon snoopy
      2010.03.06 00:04 신고
      수정 및 삭제

      항목 생성할 때 아무거나 마음대로 GUID 형식에만 맞게 지정하면 되는 것 같은데 저건 제가 마음데로 지정한건 아니고 비스타 SP1 WAIK에 들어있는 복구환경 스크립트에 들어있던 GUID입니다.

  5. BlogIcon 지어
    2010.03.05 17:48 신고

    DVD 부팅 해야 되는줄 알았는데 있었군요.
    항상 좋은 정보 감사합니다.

  6. BlogIcon Touch&Heart
    2010.03.05 22:44 신고

    크.. 역시 방대한 양의 스크립트군요;;;;

    그나저나..set OSID=default <<이부분 새로운 발견이네요 -_-;;

    저렇게 하면 default 로 지정된 GUID 가 변수로 지정되는건가요..ㅎㅎ;;

    • BlogIcon snoopy
      2010.03.06 00:11 신고
      수정 및 삭제

      음... 그게 아니고 위에서 current로 먼저 지정을 한 다음 만약 오류가 발생하면 if errorlevel 1에서 current 대신 default를 사용하도록 case2로 보내는 것입니다. 현재 부팅된 윈도우 7은 대부분 current이지만 간혹 default 인 경우가 있더군요.

  7. BlogIcon 동우
    2010.03.06 12:55 신고

    고장 나면 써먹어야 할듯 하네요 ㅋㅋ 퍼가서 고이 간직 ㅎㅎ;; 뼈가 되고 살이 되는 정보 ㅋㅋ

  8. BlogIcon TuRtLeF
    2010.03.09 10:01 신고

    감사합니다
    복구모드가 이제 생겼어요
    좋은 한 주 되세요

  9. BlogIcon 공피
    2010.03.18 07:11 신고

    안녕하세요. 항상 도움 많이 받고 있습니다 (__) 다름이 아니라 저는 복구 모드는 있는데 복구 모드에 진입하면 에러가 발생합니다. 스누피님이 알려주신 방법 1, 2 모두 해봤지만 마찬가지네요. 해결 방법 없을까요?
    http://img16.imageshack.us/img16/1412/19198466.jpg


  10. 2010.03.20 15:35

    비밀댓글입니다

  11. BlogIcon 다니엘69
    2010.03.25 16:17 신고

    자식VHD로 부팅하면, V3가 정지하고 윈도우 방화벽이 켜지는 문제가 생겨서 안철수 연구소에 문의를 했더니, 자식VHD로 부팅한 후 V3를 새로 설치해야 한다고 하는데, 해결 방법이 없는지요...

  12. BlogIcon seokhyeonwoo
    2010.05.08 21:17 신고

    '지정한 파일을 찾을 수 없습니다' ㅠㅠ 안 됩니다.

  13. 컴맹
    2010.07.28 16:54 신고

    set REID=
    {572bcd56-ffa7-11d9-aae0-0007e994107d}
    이 부분이요,, 컴마다 다른 걸로 아는데....
    recovery폴더안에 폴더명으로 되어있는 걸로 알아요,,,,,,,,

    근데 저 지금 F8암만 눌러도 안 되서 이글 봤는데 테스트는 못해보고 있네요,,


  14. 2010.09.28 02:20

    비밀댓글입니다

  15. 이상선
    2011.05.29 06:49 신고

    방법 1,2 로 해봐도 복구모드 메뉴가 안나오네요? 울티메이트 k 64 비트 입니다.

    저같은 경우는 명령어 처도 리커버리 폴더가 생성이 안되네요 스크립트 실행해도 안되고.,.

  16. 나그네
    2011.09.20 21:10 신고

    저도 방법1 그대로는 안됐고,
    방법2는 무언가 건드리는게(?) 많아보여서 안해봤는데,
    방법1을 살짝 응용해서 다음과 같이 해결했습니다.

    먼저 bcdedit 항목에 recoverysequence, recoveryenabled 항목이 있는 경우,
    아래 두 명령을 실행해서 항목을 삭제. (원래 없으면 안해주셔도 됩니다)
    bcdedit /deletevalue {GUID} recoverysequence
    bcdedit /deletevalue {GUID} recoveryenabled
    {GUID} 부분은 {current} 일수도, {default} 일수도, {복잡다단한형태의실제GUID} 일수도...

    그다음 아래 명령 실행
    reagentc /disable

    그리고 방법1에 설명되었던 아래 명령 실행
    reagentc /enable

    이렇게 하니 원래 Recovery 폴더 아래에 있던
    recoverysequence ID값도 자동으로 변경(or 생성)하면서
    위에서 삭제했던 두 항목들을
    bcdedit에 다시 자동으로 추가해 주더군요.

    물론 복구모드 진입도 OK.

  17. BlogIcon ESTYLE
    2012.02.14 14:52 신고

    정말 감사합니다. 스누피님 덕분에 DELL 공장 초기화가 가능해졌습니다. :)

    정말 감사합니다.

  18. 시간보내기
    2014.12.09 19:15 신고

    저 파일을 다운받아 관리자모드로 실행하고 난 뒤로 f8 창 자체가 뜨지를 않습니다.....ㅡ,ㅡ

    혹시 실행한 내용을 다시 취소할 방법이 뭔지 좀 알려 주실수 있나요 ;;;

  19. 걱정하지않는자
    2014.12.30 02:09 신고

    와 감사합니다. 덕분에 3시간 벌었습니다!! 1탄 은 안되던데 2탄으로 하니까 되네요. 오우


  20. 2015.02.22 07:32

    비밀댓글입니다

  21. 동토태양
    2015.11.15 10:49 신고

    여러 설명을 참고해도 실패를 했는데 snoopy님 올려주신 파일 실행 한방으로 깔끔하게 해결이 됐네요^^
    감사합니다!!!