* 명령 프롬프트는 관리자 권한으로 실행하세요. [관련 포스팅]
* GUID 등의 입력이 까다롭다면 명령 프롬프트의 텍스트 복사 기능을 활용하세요. [관련 포스팅]
* 윈도우 XP 에서 작업하기 위해선 BCDEdit.exe 를 미리 준비해야 합니다. [관련 포스팅]
* GUID 등의 입력이 까다롭다면 명령 프롬프트의 텍스트 복사 기능을 활용하세요. [관련 포스팅]
* 윈도우 XP 에서 작업하기 위해선 BCDEdit.exe 를 미리 준비해야 합니다. [관련 포스팅]
이 글에서 이야기하는 윈도우 PE 는 WIM 이미지를 기반으로 구현되는 윈도우 PE 2.0 과 윈도우 PE 3.0 버전들을 의미합니다. 윈도우 PE 2.0 이란 윈도우 비스타 AIK 를 통해 제작된 PE 를 의미하며, 윈도우 PE 3.0 이란 윈도우 7 AIK 를 통해 제작된 PE 를 의미합니다. [관련 문서]
윈도우 PE 의 부팅 항목 구성하기
CD(DVD) 나 USB 용으로 제작된 윈도우 PE 를 디스크에서 바로 사용할 수 있도록 부팅을 구성하는 것에 대해서 알아보도록 하겠습니다. 먼저 윈도우 PE 는 윈도우 본체인 WIM 이미지 파일과 이를 부팅시킬 수 있는 Bootmgr 부트 매니저로(boot.sdi 파일 포함) 이루어져 있습니다.
이 중 Bootmgr 부트 매니저는 현재 디스크에 구성이 되어 있기 때문에, 윈도우 PE 에서 실질적으로 우리에게 필요한 것은 WIM 이미지 파일과 boot.sdi 파일 두 개 입니다.(기본 구성의 윈도우 PE 를 기준으로 합니다. 추가적인 파일이 포함된 윈도우 PE 는 해당 파일들까지 모두 함께 가져와야 합니다.)
1.윈도우 PE 의 구성 파일 복사하기
가장 먼저 여러분이 할 작업은 부팅에 추가할 윈도우 PE 의 WIM 이미지 파일과[보통 \sources\boot.wim] boot.sdi 파일을[보통 \boot\boot.sdi] 디스크의 적당한 위치로 복사해 놓는 작업입니다. 이 때 WIM 파일과 boot.sdi 파일은 반드시 같은 위치로 복사할 필요는 없습니다.
2. 램 디스크 장치 옵션 항목 생성하기
윈도우 PE 의 기본 개념을 설명했던 글에서 이야기했듯이 윈도우 PE 의 - WIM 이미지 파일의 - 부팅에 필요한 램 디스크 장치 옵션 항목은 여러 윈도우 PE 부팅 구성에서 공유하여 사용하는 것이 가능합니다. 이러한 용도의 장치 옵션 항목으로 {ramdiskoptions} 항목을 많이 사용하죠. 여기에서 일차적으로 여러분은 선택을 하셔야 합니다.
1. 대충 WIM 이미지 파일과 함께 복사해 온 boot.sdi 파일을 통해 {ramdiskoptions} 항목을 구성.
2. 시스템 파티션의 [\Boot] 폴더에 boot.sdi 파일을 준비하고 {ramdiskoptions} 항목을 구성.
3. 복잡하게 현재 WIM 이미지 파일의 전용 램 디스크 장치 옵션 항목을 구성.
2. 시스템 파티션의 [\Boot] 폴더에 boot.sdi 파일을 준비하고 {ramdiskoptions} 항목을 구성.
3. 복잡하게 현재 WIM 이미지 파일의 전용 램 디스크 장치 옵션 항목을 구성.
1 의 경우는 부팅에 추가하려는 윈도우 PE 가 하나이고 앞으로도 별로 추가할 일이 없겠다 싶을 때 그렇게 하시면 되고, 2 의 경우는 자주 또는 다수의 윈도우 PE 의 부팅을 구성하려는 경우 아예 고정적으로 {ramdiskoptions} 항목을 확실하게 구성해 놓는 의미이며, 3 은 그래도 되지만 사실 별 의미는 없습니다.
현재 글에서는 1 의 작업을 기준으로 설명을 하도록 하겠으며, 2 의 작업을 원하시는 분들은 아래의 글을 참고하여 시스템 파티션에 {ramdiskoptions} 항목을 준비하시고 이 작업은 건너뛰시길 바랍니다. (아래 글의 작업을 기본적으로 마쳐놓으면 앞으로 윈도우 PE 의 부팅을 구성할 때마다 boot.sdi 파일을 함께 준비할 필요가 없어지니 편리해 집니다.)
그럼 boot.sdi 파일을 통해 {ramdiskoptions} 항목을 생성하고 설정해 보도록 하겠습니다. 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 명령을 내려줍니다.
boot.sdi 파일의 경로 - F:\boot.sdi
bcdedit /create {ramdiskoptions} /d "Ramdisk Options"
└ {ramdiskoptions} 항목을 생성합니다. 이 때 /d 의 내용은 없앨 것이기에 대충 설정하셔도 됩니다.
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=F:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot.sdi
└ 준비된 boot.sdi 파일의 전체 경로에 맞춰 전체 장치 경로를 설정합니다.
bcdedit /deletevalue {ramdiskoptions} description
└ {ramdiskoptions} 항목의 Description 옵션을 삭제합니다.
└ {ramdiskoptions} 항목을 생성합니다. 이 때 /d 의 내용은 없앨 것이기에 대충 설정하셔도 됩니다.
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=F:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot.sdi
└ 준비된 boot.sdi 파일의 전체 경로에 맞춰 전체 장치 경로를 설정합니다.
bcdedit /deletevalue {ramdiskoptions} description
└ {ramdiskoptions} 항목의 Description 옵션을 삭제합니다.
3. 윈도우 PE 의(WIM 이미지의) 부팅 항목 생성하기
이제 본체인 WIM 이미지 파일에 위치한 윈도우의 부팅 항목을 구성하도록 하겠습니다. 기본적인 항목 옵션의 구성은 윈도우 7 의 부팅 - 윈도우 7 계열 부팅 항목의 전체적인 구성 이해하기 글에서 이야기한 구성을 따릅니다.
간단하게 이야기하자면 윈도우 부팅 항목의 기본 구성에서 아래의 내용들만 적용하시면 되는 겁니다.
1. Device 와 OSDevice 옵션의 장치 경로를 Ramdisk 장치 형식으로 하여 WIM 이미지 파일을 지정한 후, 램 디스크 장치 항목에 앞서 생성한 {ramdiskoptions} 항목을 지정.
2. WinPE 옵션을 추가로 지정해주고 값을 Yes(True, On, 1) 로 설정.
2. WinPE 옵션을 추가로 지정해주고 값을 Yes(True, On, 1) 로 설정.
그럼 준비한 WIM 이미지 파일에 대한 부팅 항목을 생성하고 설정한 후 부팅 목록에 등록해 보도록 하겠습니다. 마찬가지로 관리자 권한으로 명령 프롬프트를 실행한 후 다음의 명령을 차례로 내려줍니다.
WIM 이미지 파일의 경로 - F:\boot.wim
bcdedit /create /d "Windows PE 부팅 구성" /application osloader
└ 이 때 부팅 항목의 표시 이름은 원하는대로 입력하시면 됩니다. 명령 후 생성된 부팅 항목의 GUID 식별자가 출력되며 이후의 명령부터는 해당 GUID 식별자를 지정하여 작업을 진행하시면 됩니다. 이하 {GUID} 로 표현하도록 하겠습니다.
bcdedit /set {GUID} device "ramdisk=[F:]\boot.wim,{ramdiskoptions}"
bcdedit /set {GUID} osdevice "ramdisk=[F:]\boot.wim,{ramdiskoptions}"
bcdedit /set {GUID} path \Windows\System32\Winload.exe
bcdedit /set {GUID} systemroot \Windows
bcdedit /set {GUID} locale ko-KR
bcdedit /set {GUID} inherit {bootloadersettings}
bcdedit /set {GUID} detecthal Yes
bcdedit /set {GUID} winpe Yes
└이 때 만약 WIM 이미지 파일의 전체 경로에 공백이 포함되어 있다면 경로 전체를 ""(큰 따옴표)로 묶어주어야 하며 아니라면 큰 따옴표는 생략해도 됩니다. 드라이브 문자는 따로 [](대괄호)로 묶어주어야 함을 잊지 마세요.
bcdedit /displayorder {GUID} /addlast
└ 목록의 가장 처음으로 등록을 원하는 경우에는 /addlast 대신 /addfirst 를 사용하세요.
└ 이 때 부팅 항목의 표시 이름은 원하는대로 입력하시면 됩니다. 명령 후 생성된 부팅 항목의 GUID 식별자가 출력되며 이후의 명령부터는 해당 GUID 식별자를 지정하여 작업을 진행하시면 됩니다. 이하 {GUID} 로 표현하도록 하겠습니다.
bcdedit /set {GUID} device "ramdisk=[F:]\boot.wim,{ramdiskoptions}"
bcdedit /set {GUID} osdevice "ramdisk=[F:]\boot.wim,{ramdiskoptions}"
bcdedit /set {GUID} path \Windows\System32\Winload.exe
bcdedit /set {GUID} systemroot \Windows
bcdedit /set {GUID} locale ko-KR
bcdedit /set {GUID} inherit {bootloadersettings}
bcdedit /set {GUID} detecthal Yes
bcdedit /set {GUID} winpe Yes
└이 때 만약 WIM 이미지 파일의 전체 경로에 공백이 포함되어 있다면 경로 전체를 ""(큰 따옴표)로 묶어주어야 하며 아니라면 큰 따옴표는 생략해도 됩니다. 드라이브 문자는 따로 [](대괄호)로 묶어주어야 함을 잊지 마세요.
bcdedit /displayorder {GUID} /addlast
└ 목록의 가장 처음으로 등록을 원하는 경우에는 /addlast 대신 /addfirst 를 사용하세요.
4. 결과 확인
이제 시스템을 재부팅하여 부팅 목록에서 등록한 윈도우 PE 의 부팅 항목이 출력되는지 확인하고 부팅하여 정상적으로 작동하는지 확인해 봅니다.
작업에서 생각해 볼 수 있는 몇 가지 내용들
1. {ramdiskoptions} 항목을 생성하려고 했더니 이미 항목이 존재한다며 작업이 실패하면?
이미 존재하는 {ramdiskoptions} 항목에 지정된 boot.sdi 파일이 온전히 있다면(bcdedit /enum {ramdiskoptions} 명령을 통해 경로 확인 가능) 그냥 그대로 사용하시면 되고, 아니라면 생성 명령 이후 설정 명령들만(bcdedit /set {ramdiskoptions} ...) 적용하여 {ramdiskoptions} 항목의 구성을 현재 boot.sdi 파일로 변경하시면 됩니다.
2. 왜 {ramdiskoptions} 항목의 Description 항목을 지정했다가 나중에 제거하는가?
bcdedit /deletevalue {ramdiskoptions} description
윈도우 PE 부팅 항목에 연결된 램 디스크 장치 옵션에 Description 옵션이 존재하는 경우 멀티 부팅 목록에서 이를 우선하여 표시해줍니다. 만약 다수의 윈도우 PE 부팅 항목을 구성한 상태이고 해당 부팅 항목들이 모두 Description 옵션을 가진 램 디스크 장치 옵션 항목에 연결되어 있다면 해당 윈도우 PE 부팅 항목들이 전부 같은 이름으로 표시되게 됩니다.
이러한 현상을 방지하기 위하여 램 디스크 장치 옵션의 Description 옵션은 제거해 주는 것이 좋습니다.
3. 그렇다면 {ramdiskoptions} 항목을 생성할 때 아예 /d 매개 변수를 생략하면 되지 않나?
윈도우 7 에서는 그렇게 작업하여도 되지만 윈도우 비스타에서는 그렇게 작업을 하면 명령이 실패합니다. BCDEdit.exe 작업을 항상 윈도우 7 에서만 한다고 가정할 수 없고, 윈도우 비스타에서도 작업할 수 있기에 명령을 그렇게 구성하였습니다. 기본적으로 /d 매개 변수는 항목 생성시 반드시 포함해야 하는 매개 변수로 이해하시는 것이 좋습니다.
4. {ramdiskoptions} 항목 대신 전용으로 램 디스크 장치 옵션 항목을 만들려면?
다음과 같이 장치 옵션 항목으로 새 항목을 생성한 후(새 항목의 GUID 가 출력됩니다.) 새 항목의 나머지 ramdisksdidevice 와 ramdisksdipath 옵션은 {ramdiskoptions} 때와 동일한 방식으로 구성하시면 됩니다.
bcdedit /create /d "Ramdisk Options" /device
이후 윈도우 PE 부팅 항목의 Device 와 OSDevice 에서 연결할 램 디스크 장치 옵션 항목으로 {ramdiskoptions} 대신 앞서 생성한 새 장치 항목으로 연결하시면 됩니다.
bcdedit /set {윈도우 PE 부팅 항목} device ramdisk=[F:]\boot.wim,{새 장치 항목}