이곳은 백업 블로그 입니다. 현재 캐플이 활동 중인 블로그는 CAppleBlog.co.kr 입니다. 최신 정보들은 새로운 블로그에서 확인해 보세요. ^^

- 이곳은 기존 블로그들의 글을 한군데로 모아 놓은 백업 블로그입니다.

- 현재 링크는 대부분 올바르지 않으며 이러한 링크들은 모두 cappleblog.co.kr 로 이동합니다. (※ 링크 주의)

- 블로그와 커뮤니티는 서로 다른 공간입니다.(로그인을 따로 해야합니다.)

- 저는 윈티티(WinTT)이자 신비(ShinB)이며 캐플(CApple)입니다. 편한대로 불러주세요.

이번 글에서는 WIM 이미지를 부팅 목록에 추가하여 WIM 이미지로 부팅할 수 있도록 하는 것을 알아보도록 하겠습니다. 이러한 부팅에는 아무런 WIM 이미지를 사용할 수 있는 것은 아니구요. PE 용으로 제작된 WIM 이미지만 가능합니다. 윈도우 7 설치 DVD 의 부팅을 담당하는 boot.wim 이미지나 컴퓨터 복구의 winre.wim 이미지 또는 WAIK 를 통해 개인이 직접 제작한 winpe.wim(boot.wim) 이미지가 대표적인 PE 부팅용 WIM 이미지입니다.

이러한 WIM 이미지는 하나 뿐만 아니라 여러 개를 부팅 목록에 추가해서 사용하는 것이 가능합니다. 그렇기 때문에 사용자 정의 PE WIM 이미지를 여러 개 제작해 놓으시고 각각 부팅 목록에 추가하여 원하는 PE WIM 이미지로 부팅하는 것 또한 가능합니다. 그리하여 윈도우 PE 를 자주 사용하시는 분들이라면 굳이 PE 를 종류별로 CD/DVD 로 구워서 사용하실 필요없이 WIM 이미지를 하드 디스크에 저장해 두시고 부팅 목록에 추가해 주신 후 필요할 때 마다 바로 부팅하여 사용하시면 되는 겁니다. 편리하죠.

그럼 하드 디스크에서 WIM 이미지를 부팅할 수 있도록 부팅 항목을 만들어 보도록 하겠습니다.







하드 디스크에서 WIM 이미지를 부팅하는 항목 만들기


[참고] 이 단락은 아래의 마이크로소프트 테크넷 기술 문서를 토대로 작성되었으며 이해하시기 쉽게 각 명령에 대해 제 나름대로 설명을 덧붙인 내용입니다.

http://technet.microsoft.com/ko-kr/library/cc721886(WS.10).aspx



다음은 하드 디스크에서 WIM 이미지를 부팅할 수 있도록 부팅 항목을 만드는 과정에 대한 기본 설명입니다. WIM 이미지를 부팅 항목에 추가하는 과정은 총 5 단계의 과정을 거칩니다.


1. WIM 이미지 부팅은 램 디스크를 통해서 이루어집니다. 즉, 램 디스크를 생성하고 램 디스크에 WIM 이미지 파일을 로딩하여 부팅을 하는 것이죠. 그렇기 때문에 WIM 이미지로 부팅하기 위해선 가장 먼저 WIM 이미지 부팅을 위한 램 디스크를 등록해 주어야 합니다. 윈도우 7 의 부팅에서 이러한 램 디스크의 생성을 담당하는 파일은 boot.sdi 라는 파일입니다. 이러한 램 디스크를 사용하기 위해 BCD 저장소에 {ramdiskoptions} 이라는 개체를 준비해 주어야 합니다.

여기에서 가장 중요한 boot.sdi 파일은 윈도우 7 설치 DVD 든 윈도우 PE 든 BOOT 라는 폴더에 준비되어 있습니다. 해당 파일을 원하는 위치로 복사해 두시면 됩니다.

다음을 지정하여 BCD 저장소에 {ramdiskoptions} 개체를 만듭니다. 이 때 드라이브는 boot.sdi 파일이 위치해 있는 드라이브입니다.

[명령 프롬프트 실행]

bcdedit /create {ramdiskoptions} /d "RAMDISK 옵션"
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=C:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi


bcdedit /create {ramdiskoptions} /d "RAMDISK 옵션"

- WIM 이미지 파일의 부팅을 위한 {ramdiskoptions} 개체를 만듭니다. 이 때 개체의 Description 은 "RAMDISK 옵션" 으로 지정해 줍니다.

{ramdiskoptions} 개체와 WIM 이미지 부팅 항목에 모두 Description 이 지정되어 있으면 부팅 관리자는 {ramdiskoptions} 의 Description 을 기본으로 표시합니다. 그렇기 때문에 다수의 WIM 이미지 부팅 항목을 BCD 에 추가해주는 경우 {ramdiskoptions} 의 Description 은 지정해 주지 않아야 각 항목의 Description 이 정상적으로 표시됩니다.

그리하여 마이크로소프트의 테크넷 기술 문서에는 {ramdiskoptions} 에 Description 을 기본 지정해 주는 것으로 기술하고 있지만 실제 응용에선 아래와 같이 {ramdiskoptions} 개체엔 Description 항목을 지정해 주지 않는 것을 기본으로 하시는 게 좋습니다.

bcdedit /create {ramdiskoptions}

만약 이미 {ramdiskoptions} 항목을 생성할 때 /d 옵션을 통해 Description 항목을 지정해 준 경우 다음의 명령을 통해 Description 항목을 제거해 주는 게 가능합니다.

bcdedit /deletevalue {ramdiskoptions} description



bcdedit /set {ramdiskoptions} ramdisksdidevice partition=C:

- 램 디스크 SDI 응용 프로그램이 위치해 있는 장치(ramdisksdidevice)는 파티션 중 C:(partition=C:) 입니다. 즉, 램 디스크 생성을 담당하는 boot.sdi 파일이 존재하고 있는 드라이브를 지정해주는 것 입니다.

ramdisksdidevice - ramdisk sdi device = 램 디스크를 생성하는 SDI 파일이 존재하는 장치로 풀어서 보시면 이해하시기 빠를겁니다.

언제나 그렇듯이 Device 를 지정해 주는 것이기 때문에 만약 boot.sdi 파일이 위치해 있는 드라이브가 윈도우 7 의 기본 부트 관리자와 {bootmgr} 같은 위치라면(시스템 파티션, 활성 파티션) Device 를 boot 로 지정해 주셔도 됩니다.(물론 다른 위치라면 partition=D: 와 같이 드라이브로 지정해 주어야 합니다.)

bcdedit /set {ramdiskoptions} ramdisksdidevice boot



bcdedit /set {ramdiskoptions} ramdsiksdipath \boot\boot.sdi

- 램 디스크 SDI 응용 프로그램의 경로는 루트의 boot 폴더의 boot.sdi 파일입니다. 즉, 위에서 지정한 장치에서(C:) 에서 boot.sdi 파일과 경로를 입력해 주는 것 입니다.



ramdisksdidevice 와 ramdisksdipath 를 종합하자면 boot.sdi 파일은 C:\Boot 에 위치해 있다는 것을 알 수 있죠. 이렇게 boot.sdi 파일이 위치해 있는 경로에 따라 ramdisksdidevice 와 ramdisksdipath 의 경로가 달라지는 것 입니다.




{ramdiskoptions} 는 WIM 이미지를 부팅하기 위한 램 디스크 환경을 꾸미기 위한 개체입니다. 그렇기 때문에 당연하게도 WIM 이미지를 부팅 항목에 추가할 때 이러한 {ramdiskoption} 를 불러오는 구문이 추가됩니다. 이러한 {ramdiskoptions} 개체는 모든 WIM 이미지 부팅에 동일하게 사용됩니다.그러니 {ramdiskoptions} 는 최초에 한 번만 구성해 주면 됩니다. 이후 추가되는 WIM 이미지 부팅 항목들은 꾸며진 {ramdiskoptions} 를 사용하도록 지정만 해 주시면 됩니다.





2. 이제 램 디스크를 준비했으니 WIM 이미지 부팅 항목을 새로 생성해 줍니다.

[명령 프롬프트 실행]

bcdedit /create /d "WIM에서 부팅" /application OSLOADER


새로운 부팅 항목을 생성합니다. 해당 부팅 항목의 Description 은 "WIM에서 부팅" 으로 지정합니다. 이 때 새 부팅 항목의 응용 프로그램 종류는 OSLOADER 입니다. OSLOADER 는 윈도우 비스타와 윈도우 7 의 OS 로더 입니다. WIM 이미지의 PE 버전이 PE 2.0 또는 PE 3.0 이어야 함을 의미합니다.

{ramdiskoptions} 에서 Description 을 지정하지 않았을 경우 목록에 표시되는 이름은 이 개별 항목의 Description 이기 때문에 현재 지정한 이름이 부팅 목록에 표시되는 이름이라고 보시면 됩니다. 만약 {ramdiskoptions} 에 Description 이 지정되어 있으면 "WIM에서 부팅" 이라는 Description 은 무시됩니다.




이렇게 새로운 부팅 항목을 생성하게 되면 {GUID} 가 출력됩니다. 해당 {GUID} 는 이후의 명령에서 계속 사용되기 때문에 메모해 두시거나 복사해 두시길 바랍니다.



명령 프롬프트에 표시된 내용을 클립보드로 복사하기





3. 이제 WIM 이미지 부팅 항목에 대한 설정을 해 주어야 합니다.

[명령 프롬프트 실행]

bcdedit /set {GUID} device ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}
bcdedit /set {GUID} osdevice ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}
bcdedit /set {GUID} path \windows\system32\winload.exe
bcdedit /set {GUID} systemroot \windows


bcdedit /set {GUID} device ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}

- 해당 응용 프로그램이 존재하는 장치는(Device) C:\Sources\boot.wim 이미지를 로드한 램 디스크([c:]\sources\boot.wim,{ramdiskoptions}) 입니다.

즉, {ramdiskoptions} 개체를 사용하여 램 디스크를 준비하고 이 램 디스크에 [c:]\Sources\boot.wim 이미지 파일을 로드 합니다. 이렇게 WIM 이미지 파일을 로드한(탑재한) 램 디스크를 Device 로 사용하는 것 입니다. 쉽죠? 이 때 드라이브는 대괄호([])로 묵어줍니다.



bcdedit /set {GUID} osdevice ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}

- 해당 운영 체제가(시스템 루트가) 존재하는 장치는(Device) C:\Sources\boot.wim 이미지를 로드한 램 디스크([c:]\sources\boot.wim,{ramdiskoptions}) 입니다. 윈도우가(윈도우 PE 가) 설치되어 있는 경로를 지정해 주시면 됩니다.



bcdedit /set {GUID} path \windows\system32\winload.exe

- 해당 응용 프로그램의 경로는 루트의 Windows 폴더의 System32 폴더에 존재하는 Winload.exe 파일입니다. 윈도우 비스타 및 윈도우 7 의 로더는 system32 폴더의 Winload.exe 파일이죠. 윈도우 PE 또한 마찬가지입니다.

여기에서 Winload.exe 파일의 경로는 WIM 이미지 파일 내에서의 경로입니다. 즉, c:\sources\boot.wim 파일 안에서 \windows\system32\winload.exe 가 되는 것이죠. 실제로 부팅될 땐 램 디스크로 로드되었기 때문에 [ramdisk]\windows\system32\winload.exe 가 되겠죠? Winload.exe 파일의 경로가 바뀌는 경우는 없으므로 그대로 입력해 주시면 됩니다.



bcdedit /set {GUID} systemroot \windows

- 시스템 루트에 대한 경로는 루트의 Windows 폴더 입니다. 즉, 윈도우가(윈도우 PE 가) 설치되어 있는 폴더를 지정해 주면 되는 것 입니다. 이 때 시스템 루트의 위치는 osdevice 장치 입니다. 즉, 여기에서는 WIM 이미지 파일 내의 윈도우 폴더의 경로를 의미하는 것이죠.



일반적인 윈도우 비스타나 윈도우 7 을 부팅 항목에 추가해 줄 때와 거의 똑같은 것을 아실 수 있습니다. 왜냐하면 결국 윈도우 PE 도 작은 윈도우 비스타나 윈도우 7 이기 때문이죠.

한 가지 path 경로는 device 의 장치 경로를 따르고 systemroot 경로는 osdevice 의 장치 경로를 따릅니다. 보통 device 와 osdevice 의 경로가 동일하니 별로 신경 안 쓰는데 그래도 각 항목이 무슨 항목의 경로를 따르는지를 알아두셔서 나쁠 건 없습니다. ^^;






4. 윈도우 PE 로 부팅하는 경우 다음의 두 가지 설정이 추가됩니다.

[명령 프롬프트 실행]

bcdedit /set {GUID} winpe yes
bcdedit /set {GUID} detecthal yes


bcdedit /set {GUID} winpe yes

- 컴퓨터가 윈도우 PE 로 부팅하도록 설정합니다.



bcdedit /set {GUID} detecthal yes

- 부팅할 때 변경된 하드웨어를 검색하도록 합니다. 윈도우 PE 로 부팅하는 경우 설정해 주어야 합니다.




WIM 이미지의 윈도우 PE 로 부팅하기 위해선 위의 두 항목은 필수적으로 추가해 주어야 합니다.


이 때 다른 자료에서는 bcdedit /set {GUID} winpe yes 가 아닌 bcdedit /set {GUID} winpe on 으로 되어 있는 경우도 많습니다.(detecthal 항목도 동일) 이는 winpe 나 detecthal 항목의 값이 부울(bool) 값이기 때문에 그러합니다.

bcdedit /set {GUID} winpe <bool>


부울 값은 아래와 같습니다.

True 에 해당하는 값

1, ON, YES, TRUE


False 에 해당하는 값

0, OFF, NO, FALSE


즉, 아래의 설정은 모두 같은 내용입니다.

bcdedit /set {GUID} winpe 1
bcdedit /set {GUID} winpe on
bcdedit /set {GUID} winpe yes
bcdedit /set {GUID} winpe true


그러니 on 이냐 yes 냐로 고민하지 마세요. ^^;;





5. 이제 이렇게 생성한 WIM 이미지에 대한 부팅 항목을 목록에 표시해 주면 됩니다.

[명령 프롬프트 실행]

bcdedit /displayorder {GUID} /addlast


해당 항목이 부팅 목록에 표시되도록 설정하고 목록의 가장 마지막에 위치시킵니다. 가장 처음에 위치시키려면 /addfirst 로 설정하시면 됩니다.




모든 항목은 생성한 후 이렇게 Displayorder 항목으로 부팅 목록에서 표시해 주도록 설정해 주어야만 비로소 부팅 목록에서 표시가 되고 부팅할 수 있습니다. 까먹지 마세요. ^^



이상으로 하드 디스크에 있는 WIM 이미지를(윈도우 PE 를) 부팅 목록에 추가하는 작업을 알아보았습니다. 이제 윈도우 7 설치 DVD 든 WinRE 든 WAIK 를 통해 제작한 윈도우 PE 든 지금까지 알아본 내용대로 작업하시면 됩니다. 쉽겠죠? 별로 안 쉬어 보이시나요? ㅡ.ㅡ;

위에서도 말했지만 {ramdiskoptions} 는 모든 WIM 이미지 부팅에 사용됩니다. 그러니 최초에 한 번만 생성해 두시면 됩니다. 이대로 글을 끝내면 너무 아쉽겠죠? 그럼 실제로 윈도우 PE 를 부팅 목록에 추가해 보도록 하겠습니다.








공통 과정 - {ramdiskoptions} 개체의 생성


WIM 이미지를 부팅 목록으로 추가해 주기 위해선 {ramdiskoptions} 개체를 생성해 주어야 합니다. 어떤 WIM 이미지 파일을 부팅 목록에 추가하더라도 이 개체는 반드시 존재하고 있어야 하기 때문에 공통 과정으로써 다루도록 하겠습니다. {ramdiskoptions} 항목은 최초에 한 번만 생성해 주면 되고 이 후 또 다른 WIM 이미지를 부팅 목록에 추가해 줄 때는 이 과정은 생략하셔도 됩니다.

먼저 boot.sdi 파일을 원하는 적절한 경로에 복사해 두셔야 합니다. 3 MB 정도의 작은 파일이기 때문에 C: 드라이브의 루트에 위치시키시면 되실 겁니다.(이 때 C: 는 VHD 드라이브가 아니어야 합니다.) boot.sdi 는 윈도우 7 설치 DVD 또는 윈도우 PE CD/DVD 읭 boot 폴더에 또는 WinRE 경로에 포함되어 있습니다.

윈도우 7 설치 DVD 의 boot 폴더에 위치한 boot.sdi 파일의 모습.
윈도우 PE CD/DVD 도 동일한 경로에 boot.sdi 파일이 있습니다.





해당 파일을 도저히 못 찾겠다는 분들은 아래의 파일을 다운로드 받으시길 바랍니다. 윈도우 7 32 비트 설치 DVD 에서 추출한 파일입니다. 텍큐의 다운로드가 거지 같으니 파일을 받으시고 꼭 3,096 KB 인지 확인해 보시길 바랍니다.





이제 boot.sdi 파일을 C: 드라이브의 루트로 복사합니다. 물론 폴더를 만들고 폴더 안에 위치시켜도 상관없지만 어차피 모든 WIM 이미지 부팅에서 사용되니 간단하게 C: 드라이브의 루트에 위치시키는 걸로 하도록 하겠습니다.





boot.sdi 파일을 C: 드라이브의 루트로 복사하셨으면 관리자 권한으로 명령 프롬프트를 실행하신 후 다음의 명령을 내려줍니다.

[명령 프롬프트 실행]

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






자세한 설명은 위에서 모두 마쳤기 때문에 생략하도록 하겠습니다. 다음의 명령을 내려 항목이 정상적으로 추가되었는지 확인합니다.

[명령 프롬프트 실행]

bcdedit /enum {ramdiskoptions}











윈도우 PE 를 부팅 목록에 추가하기


그럼 이제 PE WIM 이미지를 부팅 목록에 추가해 보도록 하겠습니다. 먼저 부팅에 사용할 WIM 이미지 파일을 적당한 위치에 복사합니다. 저는 C: 드라이브의 WinPE 폴더에 Winpe.wim 파일을 위치시키고 이 이미지를 부팅 목록에 추가해 보도록 하겠습니다. 이미지는 WAIK 을(윈도우 7 용) 통해 생성한 기본 PE 3.0 이미지를 사용하였습니다.





이제 관리자 권한으로 명령 프롬프트를 실행시키신 후 다음의 명령을 내려줍니다.

[명령 프롬프트 실행]

bcdedit /create /d "Windows PE 부팅" /application OSLOADER
bcdedit /set {GUID} device ramdisk=[c:]\winpe\winpe.wim,{ramdiskoptions}
bcdedit /set {GUID} osdevice ramdisk=[c:]\winpe\winpe.wim,{ramdiskoptions}
bcdedit /set {GUID} path \windows\system32\winload.exe
bcdedit /set {GUID} systemroot \windows
bcdedit /set {GUID} winpe yes
bcdedit /set {GUID} detecthal yes
bcdedit /displayorder {GUID} /addlast
bcdedit /timeout 5






다음 명령을 내려 부팅 항목이 정상적으로 추가 되었는지 확인합니다.

[명령 프롬프트 실행]

bcdedit








간단하죠? 안 간단한가요? ㅡ.ㅡ;;; 어쨌든 부팅 목록에 추가해 주었으니 실제로 부팅해 보도록 하겠습니다.







이상으로 WIM 이미지를(윈도우 PE 를) 부팅 목록에 추가하여 하드 디스크에서 부팅하는 방법에 대해서 알아보았습니다. 다양한 PE 를 제작하여 부팅 목록에 추가하여 사용하시면 꽤나 편리하실 겁니다. 윈도우 7 설치를 부팅 목록에 추가하고 싶으시다면 Sources 폴더를 복사한 후 Sources 폴더의 boot.wim 파일을 부팅 목록에 추가해 주시면 됩니다.

단지 설정해야 할 항목이 좀 많을 뿐 기본적인 골격은 윈도우 7 이나 윈도우 비스타를 부팅 목록에 추가할 때와 동일합니다. 그래서 다음 글에서는 이러한 작업을 쉽게 하실 수 있는 배치 파일을 작성하여 올려드리도록 하겠습니다. 이 글은 여기까지 입니다. ^^*

: