이번 포스팅에서는 GRUB4DOS에서 윈도우 설치 ISO로 윈도우를 설치하는 방법을 알아보겠습니다. 많은 분들이 윈도우 7/8 이나 윈도우 7 32/64비트를 하나의 USB에 통합하는 방법을 질문하셨는데요, NTBOOT를 이용하는 방법을 알아보던 중 이 방법을 알게 되어 이렇게 포스팅하게 되었습니다.

댓글로 질문주신 분들께는 NTBOOT를 사용하면 된다고 답변드렸지만, NTBOOT가 이 방법보다 좀 복잡하고, 정상적으로 설치가 안되는 경우도 있기 때문에, 이번 포스팅에서는 이 방법을 설명하도록 하겠습니다.


GRUB4DOS로 윈도우 7/8 ISO로 설치하기



기본적으로 윈도우 7/8 ISO를 로드하는 것은 '[만능 USB를 만들어 보자!] 9편 - GRUB4DOS로 ISO 부팅하기' 에서 설명한 방법으로 가능합니다. 하지만 MAP 명령어 만을 사용해서 윈도우 7/8 설치 ISO를 부팅하면 드라이버가 없다는 오류를 출력하며 설치를 진행할 수 없게 되는데요, 이 방법은 추가 드라이버를 로드해 윈도우가 정상적으로 설치 ISO를 인식하게 해줍니다.



이번 포스팅에서 사용될 수정된 FiraDisk 파일입니다. 위의 다운로드 버튼을 클릭해 다운로드 해주세요.

(출처 : http://www.rmprepusb.com/documents/rmprepusb-beta-versions)



다운로드하신 파일의 압축을 푸신 뒤, FiraDisk 폴더와 AutoUnattend.xml 파일을 USB로 복사해 주세요. 사용하실 ISO 파일도 USB로 복사해 주시면 됩니다. (저는 루트경로에서 작업하겠습니다 ^^)



title Install Windows 7/8 from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\WIN7.iso\r\n
map --mem (md)0x800+4 (99)
map /WIN7.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/WIN7.iso;\n\0
chainloader (0xff)


이제 이렇게 메뉴를 작성해 주시면 되는데요, WIN7.iso는 로드될 ISO 파일의 경로로 바꾸어주세요. 

이 때, 폴더 안에 ISO 파일이 있는 경우 'write ()/firadisk/ISONAME.CMD SET MYISO=\\ISO\\WIN7.iso\r\n' 와 같이 WRITE ()/firedisk/ISONAME.CMD 뒤에는 윈도우 파일 경로를 적는 방식으로 적어주시되 \를 중복해서 적어주셔야 합니다.



작성된 메뉴로 부팅하시면 윈도우 설치 ISO가 로드되고, 이런 창이 열립니다. 복구 도구를 실행시킬지 묻는데요, 'Y'를 입력하시면 복구도구가, 'N'를 입력하시면 윈도우 설치가 시작됩니다. 여기부터는 일반 윈도우의 설치 과정과 동일합니다 ^^


GRUB4DOS로 윈도우 설치 ISO 통합하기



위의 메뉴에서 ISO 파일 명만 바꾸어 주시면 여러 개의 윈도우 설치 ISO들을 로드할 수 있습니다.



title Install Windows 7 SP1 32bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\W732.iso\r\n
map --mem (md)0x800+4 (99)
map /W732.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/W732.iso;\n\0
chainloader (0xff)

title Install Windows 7 SP1 64bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\W764.iso\r\n
map --mem (md)0x800+4 (99)
map /W764.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/W764.iso;\n\0
chainloader (0xff)

title Install Windows 8 from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\WIN8.iso\r\n
map --mem (md)0x800+4 (99)
map /WIN8.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/WIN8.iso;\n\0
chainloader (0xff)


따라서 이런 식으로 메뉴를 작성해주시고, ISO 파일들을 넣어주시면 윈도우 7 32/64 비트, 윈도우 8 등을 하나의 USB로 설치할 수 있도록 구성할 수 있습니다. 

물론 INSTALL.WIM을 통합하는 방법이 속도도 빠르고, 공간도 절약할 수 있기 때문에 이 방법보다 효율적이지만, 통합하기가 쉽지 않고 관리도 복잡해지기 때문에 용량이 큰 USB를 사용하신다면 이 방법을 사용하시는 것을 추천합니다.


작동 원리


이 방법은 윈도우 설치 PE (BOOT.WIM) 에서 윈도우의 설치 과정을 수행하는 Setup.exe이 AutoUnattend.xml의 내용을 먼저 수행한다는 것을 이용한 방법입니다. 부팅 후 윈도우 설치 메뉴를 선택했을 때 수행되는 대략적인 작업은 다음과 같습니다.


1. DD 명령어가 AutoUnattend.xml과 ISONAME.cmd를 기록

2. MAP 명령어가 윈도우 설치 ISO를 가상 드라이브에 마운트

3. 마운트 된 가상 드라이브로 부팅. 윈도우 설치 PE (BOOT.WIM) 로드 및 부팅

4. Setup.exe가 AutoUnattend.xml에 기록된 내용 수행. LOADISO.cmd 실행

5. LOADISO.cmd가 FiraDisk 드라이버를 통해 GRUB4DOS의 가상 드라이브를 재마운트

6. 윈도우 설치 수행


따라서 이 방법을 통해 윈도우 7/8을 ISO 부팅으로 설치하려면 AutoUnattend.xml의 로드가 Setup.exe의 실행 전 선행되어야 하는데요, 윈도우의 Setup.exe는 이동식 드라이브에 존재하는 AutoUnattend.xml을 자동으로 불러오게 됩니다.

윈도우의 Setup.exe가 이동식 드라이브의 AutoUnattend.xml만 로드하기 때문에 이 방법은 외장하드에서는 사용할 수 없습니다.



첨부파일 [1]


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




이전 댓글 더보기
미스터lim 2014.03.17 18:37 신고 URL EDIT REPLY
안녕하세요 좋은정보로 잘사용하고 있습니다.
혹시 firadisk.img 파일로 firadisk 파일 부분을 사용할려면 어떻게 해야 할지좀 알려 주실수
있을까요?.
woojjv 2014.04.18 14:58 신고 URL EDIT REPLY
안녕하세요? 좋은자료 감사합니다. USB 타입으로 나타나도 제 경우에는 안되는 USB가 있었습니다. 처음에 그동안 사용하던 16GB 짜리 USB로 테스트하여 잘되어 배경화면 까지 바꾸어 설치도 하였습니다. 새로 준비한 16GB USB 에 다시 만들어 테스트를 하니까 복구도구를 사용할 지 여부를 묻는 창이 안뜨고 Windows 설치화면에서 드라이브 없다는 메세지가 뜨면서 설치가 안되었습니다. 몇번이나 새로 준비한 USB로 실패하고 우연하게 먼저 사용하던 USB와 함께 꽂고 테스트하니까 복구도구를 사용할 것인지 묻는 창이 떠서 원인 규명한 결과 아직은 실력이 안되지만 안되는 USB도 있다고 결론 내고 혹 저처럼 고생하시는 분이 있을 것 같아 글 올렸습니다. 저는 위의 설명대로 하여 Win 7 32, 64,Win 8.1 모두 한 USB에 넣어 잘 쓰고 있습니다. 다시 한번 감사드립니다.
jjs 2014.04.30 16:52 신고 URL EDIT REPLY
안녕하세요. 조언좀 구하려 합니다.
현재 디지누리님 / 스누피님 / 해외사이트 이곳저곳 방황하며 결국 만들긴 하였습니다.
그런데 이상하게 자꾸 기본 win부팅이 안돼고 있습니다.
주 명령문인 chainloader (hd0)+1
rootnoverify (hd0) 요것들인데..다른 것들도 써보고 명령문 봐가며 만들었는데..하드로는
부팅이 전혀 안돼서여...대체 어떻게 해야 하나여?? 혹시 기본 windows 깔린 하드에도 멀 설정해야 하나여
,,usb로 grub 다 설정하고 win7&8은 설치가 가능합니다... 설치 안할 시 기본 하드로 돌아가게 하려고 하는데
안돼서여...혹시 조언좀 주실분 알려주세요..ㅠ,.ㅠ
K's man 2014.07.15 09:15 신고 URL EDIT REPLY
그대로 따라했는데.. 왜 저는 파일 을 못찾는다고 할까요. ISO 파일 이름도 그대로 바꿨는데...

ㅠㅠ 도와주세요
2015.02.07 22:29 신고 URL EDIT REPLY
혹시 gfxmenu배경을 움직이게한다거나 영상을 재생시킨다거나 음악을 재생한다던가하는건 불가능한가요?
크럭스 RUX | 2015.02.09 11:06 신고 URL EDIT
gfxmenu 자체가 하나의 바이너리인만큼, 직접 프로그래밍하면 가능한 거 같습니다. 워낙 로우레벨 프로그래밍인만큼 영상이나 음악을 재생하기는 좀 힘들거 같긴 하지만요.. [link]https://www.youtube.com/watch?v=vqBZOdc_Gbk[/link] 이정도는 가능한 거 같습니다.
Minerva 2015.04.29 16:13 신고 URL EDIT REPLY
파티션이 1개이던 3개이던 잘되는데 C드라이브에 윈도우 설치가 되어있으면 오류가 납니다
윈7,윈8 iso이미지 넣어서 만들었는데 C에 윈도우 설치만 되어있으면 윈7 도 윈8도
(생략)...autodetect sector-per-track failed. use default value2 .....(생략)
이런 오류메세지가 뜨네요.
왜 그럴까요? 알려주시면 감사하겠습니다.
2015.05.21 14:25 신고 URL EDIT REPLY
요즘 usb는 하드로 인식하는게 많더군요. 사람들이 제일 많이 쓰는 sandisk가 그렇더군요.
왜 실패하나 했네요.
11 2015.06.04 15:23 신고 URL EDIT REPLY
에러21은 테스트프로그램으로 돌리면 나오는 에러구요. 컴퓨터 껏다가 usb로 부팅하면 정상 작동합니다.
몇시간 헤매다가 알앗네요.
more 2015.06.18 11:54 신고 URL EDIT REPLY
wim 부팅중에 드라이버 찾을 수 없다는 에러가 떠서....

title Install Windows 7/8 from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\inst\\Windows7_8\\sources\\boot.wim\r\n
map --mem (md)0x800+4 (99)
map /inst/Windows7_8/sources/boot.wim (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/inst/Windows7_8/sources/boot.wim;\n\0
chainloader (0xff)

으로 수정하고 했는데도 에러 뜨는데 왜그럴까요? ㅠ
TK lee 2015.08.18 23:49 신고 URL EDIT REPLY
크럭스님 덕분에 win7 ko, cn, win8.1 멀티 부팅 usb를 잘만들었습니다.
위 방법으로 하니 전혀 문제가 없었습니다.
그런데 위와 동일한 방법으로 win10 iso를 설치하려고 하니, 설치 초기에 "product key"를 찾을 수 없다고 나오네요.
중간에 win8.1 설치 테스트 할때도 동일 메세지가 떴었는데, menu.lst 파일을 제대로 입력하니 문제없이 설치가 되었습니다.
그런데, win10에서는 "product key"를 못찾는 다는 메세지가 뜨고 나서 결국 reboot 되는 문제가 발생을 했는데, win pe로 부팅되고 나서 win 10으로 업그레이드를 하려고 해서 나오는 메세지가 아닌가 의심이 되기도 합니다.

혹시나 비슷한 문제를 해결하셨으면 알려주시기 바랍니다.
최영태 2015.08.21 12:38 신고 URL EDIT REPLY
좋은 강좌로 많은 도음 됐습니다. 감사합니다..
윈도우10 2015.08.29 10:21 신고 URL EDIT REPLY
윈도우 10에서는 에러메세지가 나오는데 다른 해결방법 없을까요?
이선 2015.08.30 18:53 신고 URL EDIT REPLY
혹시아직 운영하시나요 다름이아니라 나와있는대로 다하고 폴더로 안넣고 usb 바로 최상위에다가 iso 파일을넣고선 했는대요 계속 에러 15가뜨더라구요.. 아무리봐도 뭐가잘못됫는지도모르겟구요..그리고 멀티부팅 메뉴에서 다음 os 선택할려고하면 커서가 안움직이더라구요.. 도저히 해결방안을못찾겟더라구요 ㅠㅠ..
혹시 아직도 운영하시면 답변즘 주실수있으신가요 ㅠㅠ
2015.09.20 21:51 신고 URL EDIT REPLY
윈도우 10도 같은 방법으로 가능할까요?
음2 2015.10.25 18:00 신고 URL EDIT REPLY
윈도우 7 부팅디스크 식 설치방법은

파란화면에 Y/N 묻는부분에서 끝나는거고 아래거는 다른 사항인거죠 ??
raon 2016.01.20 17:42 신고 URL EDIT REPLY
Error 21 : Selected disk does not exist 라고 나옵니다.

menu.lst 입니다

timeout 60
default 3

title Windows XP Setup
find --set-root /xp.lst
configfile /xp.lst

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

title Install Windows 7 pro sp1 32bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\Win7_32.iso\r\n
map --mem (md)0x800+4 (99)
map /Win7_32.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/Win7_32.iso;\n\0
chainloader (0xff)

title Install Windows 7 pro SP1 64bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\Win7_64.iso\r\n
map --mem (md)0x800+4 (99)
map /Win7_64.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/Win7_64.iso;\n\0
chainloader (0xff)

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

title Install Windows 10 pro 10240 32bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\Win10_32.iso\r\n
map --mem (md)0x800+4 (99)
map /Win10_32.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/Win10_32.iso;\n\0
chainloader (0xff)

title Install Windows 10 pro 10240 64bit from ISO
dd if=()/firadisk/au.xml of=()/AutoUnattend.xml
dd if=()/firadisk/spaces.txt of=()/firadisk/ISONAME.CMD
write ()/firadisk/ISONAME.CMD SET MYISO=\\Win10_64.iso\r\n
map --mem (md)0x800+4 (99)
map /Win10_64.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
write (99) [FiraDisk]\nStartOptions=cdrom,vmem=find:/Win10_64.iso;\n\0
chainloader (0xff)

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

title Shutdown
halt

title Restart
reboot
raon 2016.01.21 09:46 신고 URL EDIT REPLY
11 님 말대로 테스트 프로그램에서는 에러나는데 usb 부팅해보니 잘되네요
하늘빛QP 2016.06.06 19:28 신고 URL EDIT REPLY
ISO형식말고 7편강좌처럼 find를 이용하여 윈도우를 2개 이상 설치하는 방법이 있을까요?
예를 들어 윈도우 7, 윈도우 8를 ISO가 아닌 find방식으로 두개다 설치할 수 있는 방법..
스카레이크 2017.05.23 15:11 신고 URL EDIT REPLY
스카레이크 CPU에서도 GRUB4DOS 윈도우7 설치가능 한가요 ?
energybean 2017.07.25 13:41 신고 URL EDIT REPLY
올려주신 강좌로 잘 사용하고 있습니다 감사합니다.
멀티부팅 이용중 궁금한 점이 있어 글 남깁니다.
일반적인 인터넷상에 돌아다니는 윈도우 혹은 마소에서 제공하는 원본 윈도우는 멀티부팅 이용시 아무런 문제가 없으나,
업무상 문제로 메이커 PC에서 제공하는 OEM윈도우의 경우 CD로 부팅하는 경우와 ISO로 만든후 멀티부팅을 이용할 경우가 다르게 나타나네요.
CD가 Home P 라면 바로 설치에 Home p로만 설치가 진행이 되는데
ISO 멀티부팅을 할 경우 OEM 윈도우가 아닌 RTL 버젼의 윈도우로 모든 버젼의 윈도우를 선택할 수 있는 화면이 뜨네요.
OEM이 아닌게 문제가 되네요.
혹시 수정할 수 있는 방법이 있는지요?
Name
Password
Homepage
Secret
굵게 밑줄 기울임 취소선   취소선 취소선 취소선 취소선   왼쪽 정렬 가운데 정렬 오른쪽 정렬   코드박스 인용구 이미지   이미지 업로드