본문 바로가기

MS Windows

[YMtechUSB-#4]BCD Edit를 이용하여 WINPE,윈10x86 x64,윈7 설치본을 한 개의 USB에 담기(error수정)

728x90

*참고: [YMtechUSB-#1~#10]포스팅은 YMtech_MultiUSB의 생성과정을 담았습니다.

 여기를 누르시면 모든 오류가 수정된 최신버전 

YMtech_MultiUSBv6.iso 파일을 공유하는 포스팅[YMtechUSB-#11]으로 연결됩니다. 

 

WINUSB 툴을 이용해서 윈도우10과 윈도우7등 여러가지 윈도우 설치원본을 하나의 USB에 담아서 사용하는 포스팅을 한 적이 있었습니다.

WinUSB_v3701.exe
5.53MB

그 툴이 만들어 지는 과정을 지켜 보다가....boot.wim을 modify 하는 모습을 문득 보게되었고...

WINUSB툴로 만들어진 USB는 윈도우10이건 윈도우7이건, 리눅스이건 윈도우PE까지 무난하게 부팅이 되어지고, 무난하게 설치가 되어지는 것을 신기해 했었습니다.

그러던 중 욕심이 생겼고, 가지고 있는 USB에는 윈도우10 x64,x86 설치원본과 윈도우PE 두개를 넣어서 다니고 있는데...여기에 윈도우7 까지 넣어서 다니면 편리하겠구나! 라는 생각으로 이번 일을 도전해 보게 되었습니다.

 

윈도우 자체적으로 있는 BCD 부트로더를 bootice툴로 편집하는 방법만으로 윈도우10 x64, x86, 윈도우PE 까지는 무난히 하나의 USB에 담는 것이 진행되었습니다.

 

그러나!

윈도우7 까지 하나의 USB에 담기에는 여러가지 난관에 봉착하게 되었습니다.

 

 윈도우10과 윈도우7이 설치되는 과정에서 실행되는 boot.wim의 winpe가 동작되는 원리나  setup.exe 파일이 install.wim 파일을 호출하는 경로나 원리가 서로 다르기 때문에 윈도우10과 윈도우7은 하나의 USB에 원본 그대로 담기에는 불가능 하다는 사실을 확인하게 되었습니다.

 

아래 이미지는 윈도우10 x64,x86 이 들어가 있는 DVD 이미지의 폴더 구조 입니다.

이걸 그대로 Rufus 툴로 USB에 담으면 이 폴더 구조 그대로 USB담기고 부팅도 가능하게 됩니다. 물론 lagecy와 UEFI 모두 부팅 가능하게 됩니다. 

rufus-3.5.exe
1.00MB

저는 이 안에 WIN7 이라는 폴더를 만들고 그 안에 윈도우7용 설치 원본을 담은 후 BCD 를 편집해서 사용하려고 하였습니다.

 

하지만, 그것은 나만의 생각이었고, 윈도우7은 절대로 그런 성의 없는 작업에 설치가 될 수 있도록 자신을 허락하지(?) 않았습니다.

 

WIN7 이라는 이름으로 만든 폴더안에 윈도우7의 모든 설치원본을 넣어 놓고 BCD로 boot.wim 파일이 있는 경로를 지정하고 부팅을 한다고 하더라도 윈도우7은 정상적으로 설치되지 않았씁니다.

설치 과정 중에서 드라이브 장치 드라이버가 없다는 메시지를 표시하게 됩니다.

 

 

위와 같은 드라이브 없음 오류 메시지는 여러기지 문제로 발생될 수 있음을 구글링을 통해서 알 수 있습니다.

하지만, 저의 경우는 그와는 별개의 문제 였씁니다. 윈도우7의 설치폴더와 경로가 바뀌었기 때문에 설치프로그램이 정상적으로 드라이버를 로딩하지 못해서 발생되는 문제였습니다.

하지만, 여기서 의문이 드는 것은 윈도우10의 경우에는 저 위의 그림에서처럼 x64, x86 이라는 폴더 안에 sources 폴더가 들어가 있는데도 그 sources 폴더안에 있는 boot.wim 파일의 경로만 지정해서 수정 해주면 정상적으로 윈도우10 설치가 이루어 지는 것을 발견할 수 있었습니다.

 

이는 윈도우10과 윈도우7의 설치과정의 차이점에 있다는 판단을 하게 되었습니다.

그러면 WIN7폴더를 만들지 말고 루트에 바로 윈도우7 설치파일이 들어가 있는 sources 폴더를 그대로 옮겨서 사용하면 되겠구나! 라고 생각을 하고 그렇게 수정 하였지만, 이 역시! 문제가 발생되게 됩니다.

윈도우7의 설치과정에서는 문제없이 설치과정이 진행이 되지만, 윈도우10 설치과정에서는 우선적으로 설치프로그램이 루트 폴더에 있는 sources 폴더의 boot.wim을 읽어 오도록 되어 있는 것 같았습니다. 윈도우10 설치과정에서 "설치할 드라이버를 선택합니다." 라는 오류메시지(위 그림)를 띄우면서 윈도우10 설치가 되지 않았습니다.

그래서, 채념하고 윈도우7은 그냥 WIN7_sources 라고 넣어 놓았다가, 윈도우7 설치나 복구가 필요한 PC를 만나면 다른 PC에서 폴더명을 sources 로 수정해서 윈도우7 복구나 설치 작업을 하며 사용해 오고 있었습니다.

 

그러던 중.....WINUSB 툴로 부팅 USB가 만들어지는 과정을 보면서 boot.wim 파일을 modify 하는 과정을 순간 보게 됩니다.

 

WINUSB툴로 ISO 이미지를 추가할 때 boot.wim을 편집하는 모습

그리고, 구글링 하던 중 유명하신 snoopy 님께서 오래전에 boot.wim 파일을 마운트 해서 그 안에 있는 2번 index(윈도우설치PE)-1번 index는 Recovery 라고 합니다-의 내용을 수정하는 포스팅을 보게 됩니다.

그래서 그 포스팅을 응용해서 WINUSB 툴이 만들어 준 boot.wim 파일을 마운트 한 후 그 안에 있는 어떤 파일을 찾아서 이용하면 제가 원하는 방식으로 윈도우7 도 윈도우10과 같은 USB에 담을 수 있음을 발견하게 되었습니다.

그래서 기나긴 삽질 끝에...윈도우7의 sources폴더에 있는 boot.wim의 내용을 수정해서 아래와 같은 구조로 하나의 USB에 담아서 아무런 툴 없이 BCD 편집만으로 윈도우10과 윈도우7, WINPE를 함께 사용할 수 있게 되었습니다.

★지금부터 그 방법을 설명합니다.

(윈도우 중급 사용자 이상만 이 내용을 참고 하시기 바랍니다)

 

1. 먼저 윈도우10 x64,x86 설치 이미지를 rufus 툴을 이용해서 usb에 담습니다.

2. 그 다음 윈도우7 설치 원본(저는 x86버전으로 함)을 같은(1번 usb) USB의 win7 폴더에 복사해서 넣습니다.

3. https://sihloh4me.tistory.com/260 여기에서 WINUSB툴로 만든 윈도우7의 sources폴더안에 있는 boot.wim 파일을 준비합니다.

-반드시 boot.wim파일은 작업하고자 하는 비트와 같은 원본의 파일을 준비하여야 하며, WINUSB툴로 Modify 작업 된 boot.wim파일이어야만 부팅 과정에서 USB장치 드라이버( v2.0~3.1)를 설치해서 설치중인 USB메모리를 인식시켜야만 USB안에 있는 install.wim또는 esd파일을 찾을 수 있게 됩니다. 일반 순정 boot.wim으로 작업하게 되면 윈도우10은 USB2.0, 3.0장치 드라이버가 포함되어 있어 설치 중에 USB메모리를 인식하게 되지만, WIN7의 순정 boot.wim은 설치 USB메모리를 인식하지 못해서 install.wim,esd 파일을 찾을 수 없다는 에러가 발생되며 윈도우7 설치작업이 진행되지 않는 오류가 발생됩니다. 따라서, 반드시 윈도우7은 WINUSB툴로 작업된(-WINUSB툴이 boot.wim파일에 USB장치 드라이버를 포함시켜 주는 것 같습니다) BOOT.WIM 파일을 이용해서 편집 작업을 하셔야 합니다.

 

이런 작업이 된 boot.wim을 공유 합니다. 이  boot.wim은 Runsetup.cmd 파일이 첨부되어 있고 부팅시 필요한 USB2.0, 3.0, 3.1드라이버 까지 포함되어 있어서 부팅 시 설치미디어(=USB드라이브)를 인식하지 못해서 install.wim 파일을 찾을 수 없다는 에러는 발생되지 않습니다. 

 

 

Windows 7 x64용 \sources\boot.wim파일 다운링크: \win7\install.wim 파일 호출(2021-04-04 Link수정)

 

위 링크로 파일을 받으신 후 boot.wim 으로 이름을 수정 하고 만드시는 USB의 \WIN7\sources 폴더 안에 넣으시면 됩니다. 이 boot.wim과 install.wim은 같은 위치에 있으면 됩니다.

 

WIM-ESD 변환기-ESD2WIM-WIM2ESD-wimlib-4 도 첨부 합니다.

ESD2WIM-WIM2ESD-wimlib-4.7z
0.54MB

 

 

WIN7폴더가 아닌 다른 폴더를 사용하고 싶으신 분은 따로 Runsetup.cmd를 편집(아래 설명됨 Win7.7z)해서 사용하시면 됩니다.

 

 

● Sources폴더안에 있는 boot.wim 편집-RunSetup.cmd

 

아래와 같이 폴더를 만들어서 사용하면 편리합니다. 압축하여 첨부 합니다.

win7.7z
3.33MB

4. 아래 snoopy님의 포스팅을 참고하여 3번의 boot.wim파일을 마운트 한 후 2번째 index 이미지의 \windows\ 들어가 있는 Runsetup.cmd 파일을 추출합니다.

boot.wim 파일 편집으로 윈도우 7 자동설치 만들기-by snoopy

이 Runsetup.cmd 파일이 바로 핵심파일입니다. 

RunSetup_WINUSB.cmd
0.00MB

다른 경로에 들어가 있는 윈도우7설치 원본인 sources 폴더에 있는 install.wim 파일을 호출해서 정상적인 설치가 이루어 지도록 만들어 주는 기능을 하고, 드라이브도 설치 해 줍니다. (설치과정중에서 윈도우PE 실행 전 DOS창이 열리면서 install.wim 파일을 찾는 모습이 잠깐 보이게 됩니다.)

 

아래 그림은 마운트 된 boot.wim 파일의 2번째 index 폴더 입니다. 여기에는 윈도우 설치에 필요한 WINPE 가 들어 있습니다. 아래와 같은 모습입니다. Runsetup.cmd는 Windows 폴더안에 들어가 있습니다.

3번 그림과 같은 폴더 구조로 만든 후 CMD창을 관리자 모드로 실행해서 1mt.cmd를  실행해 주면 mt 폴더안에 boot.wim의 2번째 index파일을 마운트 해 주게 됩니다. 그러면 아래와 같이 보입니다.

4번에서 imagex로 boot.wim 의 2번째 index 이미지를 마운트 해 주면 위와 같은 폴더가 보입니다.

 (3번 이미지에서 보이는데로 파일을 만들어 준 후, 1mt 실행)

 

 

5. 위에서 추출한 Runsetup.cmd 파일을 열어보면 WINUSB 툴이 sources폴더의 boot.wim 을 편집해서 그 안에 Runsetup.cmd 파일을 심어 줌으로 원본경로가 다른 USB에서도 정상적인 윈도우7 설치가 가능하도록 해 주고 있는 것을 알 수 있습니다.

 

[좌-원본 Runsetup.cmd]                  [우-수정된 Runsetup.cmd]

따라서 저 Runsetup.cmd 파일을 열어서 install.wim파일이 있는 경로와 폴더이름을 수정 해서 저장 해 준 후 boot.wim 파일에 다시 넣어 주고 그 boot.wim 파일을 설치용으로 사용하는 USB메모리의 \Win7\sources\boot.wim 파일과 바꿔 주기만 하면

USB\WIN7 폴더에 들어가 있는 윈도우7은 정상적인 설치가 이루어 지게 됩니다.

 

윈도우설치 이미지에 들어가 있는 setup.exe는 install.wim과 install.esd 파일을 자동으로 인식하여 설치를 진행하지만, Runsetup.cmd 파일로 윈도우를 설치할 경우에는 설치파일이 wim인지, esd파일 인지를 정확히 지정해서 알려 주어야만 설치 과정에서 정확한 경로를 찾아가 지정한 파일을 불러와서 설치작업을 진행하게 되어있습니다.

따라서 용량을 줄인 install.esd파일을 사용하실 경우에는 Runsetup.cmd 파일 내부의 SET_INSTALL= 항목의 설치 파일 이름을 정확히 install.esd 로 지정해 주셔서 편집해 주셔야 합니다.

이 파일의 경로와 파일명만 정확히 수정 해 준다면, 아마도 WIN7폴더 뿐만이 아니라 다른 폴더를 여러개 만들어서 여러가지 윈도우 버전을 설치할 수 있는 USB메모리를 BCD편집만으로도 가능하도록 만들 수 있을 겁니다. WINUSB툴이 하는 일을 수동으로 해 주는 것이지요!!

그냥 귀찮거나 머리 아프신 분들은 WINUSB 툴을 이용하시는 게 훨신 간편합니다.

(하지만, EasyDrv7 과 같은 드라이버자동 설치 툴을 윈도우 설치과정에서 자동으로 설치되도록 하는 기능을 추가할 경우에는 WINUSB툴로 만든 USB에서는 자동설치 기능이 작동되지 않는 것을 확인하였습니다.

그래서, 순정 설치파일과 같은 기 능을 하도록 유지하기 위해서 boot.wim을 편집하여 Runsetup.cmd 파일을 수동으로  추가 해 준 후 BCD 편집으로 윈도우설치 USB 를 만들어주면 EasyDrv7 툴이 자동으로 설치되는 기능도 무난히 동작 되게 만들 수 있는 것을 확인하였습니다. 완벽하게 성공하면 이 내용도 추가로 포스팅 하도록 하겠습니다.)

RunSetup.cmd
0.00MB

위 그림과 같이 Runsetup.cmd 파일을 다른 폴더로 복사해 준 후 수정 해 주면 됩니다.(저는 윈도우7원본이 USB의 WIN7 폴더에 들어가 있기 때문에 위와 같이 수정 했습니다)

수정 해 준 후 저장을 하고 그 파일을 다시 같은 위치에 덮어쓰기로 복사해서 넣어주면 됩니다.

Runsetup.7z
0.00MB

6. 복사가 끝났으면 2ct.cmd 를 실행해서 마운트 폴더를 commit 해 줍니다.

7. Export해서 newboot.wim 파일로 만들어 줍니다.

8. 생성된 boot.wim 파일을 USB에 들어있는 WIN7\sources\boot.wim 파일과 바꿔 줍니다.

 

 

 

9. 이제 준비 작업은 끝났습니다. bootice 툴을 이용해서 bcd를 편집해 주면 하나의 USB에 윈도우10과 윈도우7 설치원본을 담아서 자유롭게 사용이 가능하게 됩니다. bcd 편집 방법은 이전포스팅을 참고 하시면 됩니다.

여기에는 bootice 툴만 첨부 합니다.

 

BOOTICE_v1.3.3.2k.exe
0.38MB

 

 

*PS: 최신포스팅을 참고 하시기 바랍니다. [YMtechUSB-#11][YMtechUSB-#12]

 

 

728x90
반응형