지난 편에서는 GRUB4DOS에 윈도우 설치 메뉴를 추가하는 방법을 알아보았습니다. 이번에는 윈도우 PE를 추가하는 방법을 알아보려 하는데요, 윈도우 설치 메뉴를 추가하는 것과 매우 비슷하지만 BCD 편집 등 여러 과정이 추가되었습니다. 스크롤이 길지만 천천히 따라와 주세요.

( 윈도우 PE를 모르시는 분들은 이 포스트를 참고하세요. [내 손안의 윈도우, 윈도우 PE를 써보자!] 1편 - 윈도우 PE란?  )


GRUB4DOS에 윈도우 PE 추가하기



GRUB4DOS에 윈도우 PE를 추가하는 것 역시 원리상으로는 윈도우 설치 메뉴를 추가하는 것과 똑같습니다. 윈도우 설치 DVD 자체가 윈도우 설치를 수행하는 하나의 윈도우 PE이기 때문인데요, 그래서 전편에서 윈도우 설치파일을 로드했듯이 bootmgr을 로드해주면 됩니다.

(그래서 지난편에서 윈도우 XP를 로드할 수 없었듯이 윈도우 XP를 기반으로 하는 PE는 이 방법으로는 로드할 수 없습니다.)

다만 달라지는 것은 윈도우 설치용 PE (기본적으로 설치 DVD/ISO에 들어있습니다) 인 boot.wim 대신 다른 PE의 WIM 파일을 로드해주어야 한다는 것인데요, 이 역시 bootmgr의 부팅 정보를 담고있는 파일인 BCD를 수정해줌으로서 해결할 수 있습니다.


STEP 1 - 윈도우 PE 파일 복사하기


전편에서는 윈도우 설치 파일을 복사했었죠? 이번에는 윈도우 PE 파일을 복사해 볼텐데요, 윈도우 PE 파일은 'WIM' 이라는 확장자를 가지고 있습니다. 가지고 계시는 PE는 아마 대부분 ISO 파일일텐데요, 반디집, 알집, 7-ZIP 등 압축 프로그램으로 열어줍시다.



약간씩 다를수도 있겠지만 아마 대부분의 PE는 이런 구조일텐데요, 6편에서 윈도우 설치 메뉴를 추가하신 분들은 여기서는 Sources 폴더만 필요합니다. (7편을 건너뛰신 분들은 그냥 다 복사해주시면 됩니다.)



Sources 폴더 안에는 해당 PE의 WIM 파일이 들어있습니다. 이 파일을 그대로 GRUB4DOS USB의 Sources 폴더 안에 복사해주시면 됩니다.



이렇게요. (설치 파일을 복사하신 분들은 다른 파일이 더 있을 수도 있습니다. 저는 필요없는 파일들은 다 지워버렸습니다 ;;)


STEP 2 - BCD에 윈도우 PE 추가하기


이제 이 WIM 파일을 로드해야할텐데요, 그러기 위해서는 BCD 파일의 수정이 필요합니다. BCD 파일은 윈도우의 2차 부트로더인 bootmgr가 설정 데이터를 저장하는 파일인데요, 윈도우의 bcdedit 명령어로도 편집할 수 있지만 매우 귀찮기 때문에 저는 Bootice를 사용하도록 하겠습니다. 3편에서 받으신 Bootice를 실행해주세요.



Bootice의 상단 메뉴 중 'BCD 수정' 메뉴를 클릭해주세요.



여기서 '다른 BCD 파일(O)'을 선택하시고 '...' 버튼을 클릭하시면 BCD 파일을 불러오실 수 있습니다.



BCD 파일은 GRUB4DOS가 설치된 USB의 Boot 폴더안에 있습니다.



BCD 파일을 선택하셨으면 '보기/수정(E)' 버튼을 클릭해주세요.



이렇게 BCD 설정을 볼 수 있습니다. 이제 추가할 PE의 WIM 파일을 추가 해줘야겠죠?



이렇게 '추가(A)' - WIM 부팅 항목 (Ramdisk)를 클릭해 새로운 항목을 만들어 주세요.


 

그 다음은 이 스크린샷처럼 설정해주시면 되는데요, '부팅디스크''BOOT'로, '장치파일'은 추가할 WIM 파일의 경로를 적어주시면 됩니다. 당연히 '메뉴 제목'에는 원하는 이름을 적어주시면 되고요. (메뉴 제목에는 한글 쓰셔도 됩니다 ^^) '언어'가 기본으로 zh-CN (중국어)로 되어있을텐데요, 큰 상관은 없지만 ko-KR (한국어)로 바꿔줍시다.

여러개의 PE를 추가하려면 이걸 계속 반복해주시면 됩니다. 이제 '현재 시스템 저장(S)'을 클릭해 주세요.


title Windows 7 Setup/PE
find --set-root /instmgr
chainloader /instmgr


GRUB4DOS의 메뉴 파일은 6편을 따라하셨으면 건드리지 않으셔도 됩니다. (제목만 바꿨습니다.)



부팅을 시켜볼까요? GRUB4DOS 화면은 지난번과 똑같지만 메뉴를 선택했을 때 이런 화면이 뜨는 것을 보실수 있으실 텐데요, 이 화면은 bootmgr의 멀티부팅 화면입니다. 여기서 Window PE 메뉴를 선택하면 아까 추가된 PE가 부팅됩니다.


STEP 3 - 윈도우 설치 메뉴와 PE 메뉴 따로 만들기


여기서 그냥 멈춰도 되지만 조금 더 메뉴를 직관적으로 만드려면 윈도우 설치 메뉴와 PE 메뉴를 따로 만들어 주면 좋겠죠?

하지만 메뉴를 여러개 만드려면 2차 부트로더가 여러개 필요하겠죠? 그런데 문제는 윈도우의 bootmgr 부트로더는 /Boot/BCD 파일만 로드한 다는 것입니다. MS는 이 경로를 바꿀 수 있는 다른 방법을 제공하지 않고 있기 때문에 이를 수동으로 수정해 주어야 하는데요, HEX 에디터를 사용해서 일일히 바꿔야 합니다. 거기다가 자체적으로 bootmgr이 파일의 무결성을 확인하기 때문에 수정해도 부팅이 안되는 경우도 있습니다.

다행히 제가 이를 미리 수정해서 여러개의 bootmgr 수정본을 만들어 놓았습니다. (노가다에요 ㅜㅜ) 먼저 밑의 파일을 다운로드 해주세요.




다운로드 하신 파일의 압축을 푸시면 윈본 bootmgr과 BCD 파일을 포함하는 10개의 파일이 들어있을텐데요, '-7MGR'이 붙어있는 파일은 2차 부트로더입니다. 이 부트로더를 로드하시면 앞에 붙어있는 글자를 파일명으로 하는 수정된 BCD파일을 읽어들이게 됩니다. (예를 들어 BDF7MGR을 로드하면 BCD 파일대신 BDF 파일을 읽어들입니다.)

여기서 필요한 파일을 복사하셔서 사용하시면 되는데요, 3글자의 파일은 저장소니 Boot 폴더로, 7글자 파일은 2차 부트로더니 루트 경로로 복사해주시면 됩니다.



이런식으로 복사해주시면 됩니다. (BDF 파일은 이름을 바꾸시면 안되며, BDF7MGR 파일은 바꾸셔도 됩니다.)



이제 다시 Bootice에서 BDF 파일을 불러와서 수정해줘야겠죠? 아까와 똑같이 BDF 파일을 불러오셔서 편집해주시면 되는데요, 이 때 Bootice에서는 기본적으로 BCD 파일 이외에는 볼 수 없으니 파일 형식을 모든 파일(*.*)로 해주셔야 합니다.

STEP 2 에서와 똑같이 수정해주시고 BCD의 PE 메뉴는 지워주세요.


title Windows 7 Setup
find --set-root /instmgr
chainloader /instmgr

title Windows PE
find --set-root /bdf7mgr
chainloader /bdf7mgr


이제 GRUB4DOS의 메뉴에 BDF7MGR을 로드하는 메뉴를 추가해주세요.



그런 뒤 부팅하시면 이렇게 두 개의 메뉴가 보이는 것을 확인하실 수 있습니다. 상단의 Windows Setup 메뉴의 경우 윈도우 설치 파일이, 하단의 Windows PE 메뉴의 경우 윈도우 PE가 로드됩니다.


이렇게 GRUB4DOS에 윈도우 PE 추가하기를 마쳤습니다. 다음 편에서는 MAP 명령어를 이용해서 ISO 파일을 부팅하는 방법을 알아보도록 하겠습니다.


첨부파일 [1]


저작자 표시 비영리 변경 금지
신고
 




제로원(ZoreOne) 2013.01.18 20:51 신고 URL EDIT REPLY
인터넷에서 구한 고구마님의 iso형태의 pe를 구해서 압축풀어보니까 폴더구조가 sorurce폴더가 없네요....고구마님 pe랑 설명하시는 pe는 전혀 다른건지요?
크럭스 RUX | 2013.01.18 22:24 신고 URL EDIT
넵 ;; 여기서 설명한 PE는 윈도우 Vista/7/8을 기반으로 만들어진 PE이고요, 고구마님 PE는 XP를 기반으로 만들어진 PE라 이 방법으로는 부팅할 수 없습니다. ( 본문에서 언급한다는것을 깜박했네요;; )

고구마님 PE를 GRUB4DOS에서 부팅하시려면 ISO파일 내의 모든 파일을 USB로 복사하신 뒤 menu.lst에 다음 메뉴를 추가해 주시면 됩니다.

[code]title aTHeNe20 XPE
find --set-root --ignore-floppies --ignore-cd /CHAINBOOTPE.IMG.GZ
map --mem --read-only /CHAINBOOTPE.IMG.GZ (hd0)
map --hook
chainloader (hd0,0)/IUPE/SETUPLDR.BIN
chainloader (cd)/IUPE/SETUPLDR.BIN[/code]

이 포스팅에서 사용된 방법을 쓰시려면 윈도우 Vista/7/8을 기반으로 제작된 PE를 사용하셔야 되고요, 확인 하시려면 [b]bootmgr[/b] 파일의 존재유무를 보시면 됩니다. ^^
처음처럼 2013.01.21 10:31 신고 URL EDIT REPLY
수고하십니다.^^ 완전 초보라 내용중 윈7 넣는것은 성공했는데/다음으로 PE를 넣으려고하니 WIN7PE- SOURCES폴더안에 .WIM파일이 없고 BOOT-WIM폴더에 USER-PE.WIM이 있던데 이것을 위 방법대로
했는데 부팅이 되지 않습니다. 그냥 PE.ISO파일 자체를 직접 부팅하는 방법은 무엇이고 어떤 차이가 있는지 알려주시면 감사하겠습니다.
크럭스 RUX | 2013.01.21 14:53 신고 URL EDIT
USER-PE를 말씀하시는 것 같은데요, USER-PE는 Sources 폴더 대신 BOOT-WIM 폴더에 WIM 파일이 존재하지만 그냥 이 포스팅에서 설명한 대로 해당 WIM 파일을 USB의 Sources 폴더에 복사하신뒤 BCD에 추가해주시면 됩니다.

아니면 [link]http://diginuri.tistory.com/30[/link] 에서 설명한 방법대로 직접 ISO를 로드하셔도 되는데요,
ISO 부팅과 이 방법의 차이점은 ISO 부팅은 MAP 명령어를 사용해서 ISO 파일 자체를 가상 드라이브에 마운트 한뒤 부팅한다는 것이고요, 이 방법은 그냥 윈도우 자체의 bootmgr 2차 부트로더를 사용해서 부팅한다는 것입니다. ^^
처음처럼 2013.01.21 23:09 신고 URL EDIT REPLY
답변 감사합니다.^^
HolyLove 2013.02.11 20:54 신고 URL EDIT REPLY
저는 지금 윈7, 윈8로 멀티 부팅 usb를 만들려고 하고 있는데

이 방법대로 하려면 (윈7과 윈8의)boot,source 가 겹치네요...

title Win7 Setup
find --set-root /Win7/win7mgr
chainloader /Win7/win7mgr

title Win8 Setup
find --set-root /Win8/win8mgr
chainloader /Win8/win8mgr

title -----------------------------
pause

title Shutdown
halt

title Restart
reboot

이런식으로 만들어봤는데 따로따로 돌리면 BCD 어쩌고 에러가 나지 않는데
이렇게 USB안에 Win7 폴더 안에 boot, source, mgr 넣고
win8 폴더 안에 또 윈8꺼 넣고 하니까 BCD 에러가 나요.

방법이 없을까요
크럭스 RUX | 2013.02.13 11:23 신고 URL EDIT
폴더안에 윈도우를 넣으시면 BCD를 수정해주셔야 되는데요, 윈도우 PE의 경우에는 WIM 파일 경로를 수정해주시면 부팅되지만, 윈도우 설치 파일의 경우 INSTALL.WIM 파일을 찾을 수 없기 때문에 설치과정 중 오류가 나게 됩니다.

GRUB4DOS에서의 윈도우 7과 8 멀티부팅은 추후 포스팅할 NTBOOT를 이용해서 가능합니다.
NTBOOT를 사용하지 않으시려면 통합된 ISO를 사용하셔야 됩니다.
죄송합데요... 2013.02.17 19:37 신고 URL EDIT REPLY
죄송한데요... 제가 컴맹이라서요...
위에 설명에 windowspe.wim 파일은 어디에 있는지 알려주실수 있나요??ㅠㅜ windowspe.iso 이거.... 첨부좀해주시면 안될까요??ㅠㅜ
크럭스 RUX | 2013.02.17 20:26 신고 URL EDIT
windowspe.wim 파일은 윈도우 PE의 ISO에 포함되어 있습니다. (물론 다른 파일명 일수도 있습니다. 그냥 그대로 옮겨주시고, 파일명을 바꾸시거나 BCD를 수정할때 해당 PE의 파일명을 적어주시면 됩니다.

윈도우 PE ISO는 검색해보시면 쉽게 구하실 수 있습니다. PE를 만드는 방법도 나중에 포스팅 할 계획이고요. (저작권 문제로 공유는 해드릴 수 없습니다, 죄송합니다 ;; )
그리핀 2013.03.02 11:42 신고 URL EDIT REPLY
감사합니다 많이 배우고 있습니다 ^^
질문한가지 드려봅니다
PE 메뉴 추가하여 부팅까지 잘되었습니다
부팅후 탐색기에서 PE는 램에 로드되어 드라이브명이 나오는데 usb 드라이브는 안보입니다
usb를 빼고 다시 끼우면 드라이브가 나타납니다
처음부터 usb 드라이브가 보이게 하는 방법은 어떤게 있을까요?
크럭스 RUX | 2013.03.02 14:55 신고 URL EDIT
저도 가끔 그런 경우가 있었는데요, 그냥 다시 끼워서 사용했습니다 ;; 컴퓨터 메인보드 칩셋등에 따라 부팅시 드라이버를 못 읽는 것 같던데요, PE의 종류에 따라 또 다르더군요 ;;
혹시 사용하신 PE를 알 수 있을까요?
그리핀 2013.03.02 22:16 신고 URL EDIT REPLY
^^ 답변 감사합니다
제가 쓰는 PE는 예전에 파워님의 POWER-USB-2012-Total 에서 POWER-RecoveryPE-2012.wim 요것만 뽑아서 쓰고 있습니다. 다른 PE 에서는 나타나네요 ^^
감사드리며 앞으로도 좋은 강좌 부탁 드립니다. 좋은 하루 되세요 ^^
가람빛 2013.03.09 03:27 신고 URL EDIT REPLY
저 ISO파일좀 공유 가능한가요? WIM파일 빠진걸루요..
PE를 만들면 WIM파일만 달랑 남게되는데 어차피 PE만
담을거라 저렇게 부팅메뉴 꾸밀 필요도 없고 저렇게
ISO파일 만들어서 그냥 PE만 부팅되도록 하렵니다.
크럭스 RUX | 2013.03.09 14:21 신고 URL EDIT
ISO 파일은 저작권 문제상 공유해 드릴수 없습니다. (찾아보시면 아마 쉽게 구할 수 있겠지만요...)
박원용 2013.04.07 03:06 신고 URL EDIT REPLY
win7pe.iso에서 user-pe.iso를 풀어서 windowspe.wim으로 변경해서 sources에 옮기고 메뉴를 만들어서 실행하면
pe가 실행이 안되고 windows 7 setup으로 들어가서 실행이 되는것 같습니다.
그냥 win7.pe.iso를 읽어들이면 pe가 실행이 되구요...

뭐가 문제인지요
movaliveCD로 실행했습니다.

title Windows 7 Setup
find --set-root /instmgr
chainloader /instmgr

title Windows 7 PE
find --set-root /bdf7mgr
chainloader /bdf7mgr

title Windows 7 PE ISO
find --set-root /win7pe.iso
map /win7pe.iso (0xff)
map --hook
chainloader (0xff)

title ------------------------------------------------------------------
pause

title 1.Windows XP Setup from iso (reboot to next "2.Continue XP setup")
find --set-root /WindowsXP_PRO.iso
map (hd0) (hd1)
map (hd1) (hd0)
map --mem /Firadisk.img (fd1)
map --mem (md)0x60000+800 (fd0)
map --mem /WindowsXP_PRO.iso (0xff)
map --hook
dd if=(fd1) of=(fd0) count=1
chainloader (0xff)

title 2.Continue XP Setup
find --set-root /WindowsXP_PRO.iso
map (hd0) (hd1)
map (hd1) (hd0)
map --mem /WindowsXP_PRO.iso (0xff)
map --hook
chainloader (hd0)+1

title ------------------------------------------------------------------
pause

title Parted Magic
find --set-root /pmagic_2013_02_28.iso
map --heads=0 --sectors-per-track=0 /pmagic_2013_02_28.iso (0xff)
map --hook
chainloader (0xff)

bdf설정입니다.
[URL=http://imgur.com/8BqJJgx][IMG]http://i.imgur.com/8BqJJgx.jpg?1[/IMG][/URL]
이광열 2013.04.16 19:39 신고 URL EDIT REPLY
강좌 잘보고 많은 도움 받아 갑니다.. 다름이 아니라..

이번 강좌에서 BDF 추가 하는 거 대로 했는데...
처음메뉴가 화면처럼 뜨긴 하는데... 아래로 내려서 Pe 선택하면 bootmgr의 멀티부팅 화면이 또다시 뜨네요..

그리고 저는 다른 PE 의 소스 폴더에서 wim 을 복사한게 아니고
간단한 PE 만들기 강좌에서 만든 PE.WIM 화일을 USB의 쏘스 폴더에 넣었는데.. PE 실행이 되질 안네요

간단한 PE 만들기에서 저는 Q-dir 이 아니라 RocketDock 프로그램이 실행되게 명령을 수정하였는데
잘못 수정한걸까요...

[LaunchApp]AppPath = "%SYSTEMDRIVE%\Program Files\RocketDock\RocketDock.exe"
이런 형식으로 WINPESHL.ini 을 만들었습니다.
물론 프로그램 폴더안에.. RocketDock 프로그램 폴더 복사해서 넣었구요..

죄송합니다... 질문만 늘어나네요..
중가리 2013.05.08 01:48 신고 URL EDIT REPLY
안녕하세요. 이곳에서 많은걸 배웠습니다.
다름이 아니라 올려주신 modified Bcd를 이용해서 두세개의 PE를 menu.lst에 등록시켜서 사용하고 있는데요.
요즘 보이는 8pe들은 로딩할때 윈도우7 bootmgr에서 에러가 나는 경우가 있더라고요.
그래서 부탁을 좀 드리고 싶어서요.
윈8용 bootmgr도 노가다 해주셔서 개조해주심 안될까요 ㅡㅜ
부탁드려요 딴데선 아무리 찾아봐도 찾을 수가 없네요.
좋은 하루되시고요.
파칼국수 2013.05.31 12:39 신고 URL EDIT REPLY
대딥해주실줄은 모르겠지만 혹시 hiren's bootcd 는 어떻게 해야 이 usb에 넣을 수 있을까요?
크럭스 RUX | 2013.06.26 00:15 신고 URL EDIT
Hiren's Boot CD 같은 경우에는 ISO 파일 내부에 보시면 menu.lst가 존재합니다. 해당 파일을 복사하신뒤 configfile 명령어로 불러오시면 됩니다 ^^
부탁드립니다~ 2013.12.10 01:32 신고 URL EDIT REPLY
제가 우물 파면 끝가지 가는 성격이라서요.. 말씀하신 bootmgr를 저 나름대로 입맛에 맛게 수정해서 사용하고 싶어서 알아봤는데요.. bootmgr이 파일을 exe파일로 만들어서 에디트파일에 넣는 거까지는 했는데 어떻게 수정을 해야 하는 건지를 잘 모르겟네요.. 알려주시면 감사하겠습니다.
로우포맷 가능한가요? 2014.05.14 23:24 신고 URL EDIT REPLY
윈도우 pe를 이용해서 로우포맷을 한다는데...
어떻게 해야하나요?
일단 글을 보고 usb는 완벽히 만들었습니다.
에러13 2014.11.29 14:30 신고 URL EDIT REPLY
아까 위에글처럼 만들었는데 또 bcd많은폴더에서똑같이했습니다. 그런데grub4dos에서 에러13이뜨네요.
어떻게하죠?죄송합니다.ㅠㅠ
viken@daum.net 2016.08.10 18:10 신고 URL EDIT REPLY
일부 PE는 멀티부팅으로 등록시 부팅후 프로그램이 하나도 안뜨더라구요.
USB에 단독으로 실행시에는 괜찮고요.
왜그런지 알 수 있을까요?
감사합니다. 2016.10.20 14:55 신고 URL EDIT REPLY
저는 윈도우 7 32비트와 64비트를 하나의 usb에 넣고자 하는데 복사해서 넣으면 /boot 와 /sources 가 겹치기 때문에 각각 폴더를 넣어서 했는데.. 안되네요.
혹시 방법이 있을까요?
Name
Password
Homepage
Secret
굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드