이 글은 윈도우 7 기준이다.
0. 준비물
일단 인터넷이 되는 코옴퓨타가 필요하다. 드라이버를 받아야 하니까.
윈도우 설치이미지가 구워진 USB도 있어야 한다. 이건 미리 구워져 있어야 한다. USB에 굽는 방법은 이 글에서 설명하지 않는다.
USB에 굽는 방법이면 다른 게이가 써놓은 글이 있을거다. 아니면 다른 사이트에서 찾아보거나...
노릇노릇 구워진 USB는 이런식으로 들어가서 (레이블은 상관없다)
이렇게 아래처럼 파일을 볼 수 있어야 한다. 일부를 수정해야 하니까...
1. 문제?
USB로 윈도우를 설치할때 보면, USB 부팅은 되는데 설치단계까지 와서
이런 식으로 나오는 경우가 있다 (다른게이 글에서 짤을 퍼왔다).
이 현상은 주로 USB 드라이버가 없기 때문에 일어난다. 혹은 USB 2.0 포트가 아닌 3.0 포트에 꽂았거나...
특히 최근 보드처럼(시퓨가 스카이레이크라거나) 3.0포트만 달려있는 경우는 더더욱 그렇다.
다른 이유가 있을 수도 있겠지만, 그런 문제에 대한 해결법은 이 글에서는 다루지 않는다.
단순히 생각해보면 이상한 점이 있는데, USB 자체로의 부팅은 되는주제에 설치 단계에 와서야 저런 에러가 일어난다는 것이다.
왜 그런지 의문을 가질 게이가 한둘은 있지 않을까 싶어 이유를 적어보자면 이렇다.
전원이 들어오면 BIOS 또는 UEFI가 실행된다. 얘네들은 스스로 USB 뿐만 아니라 여러가지 하드웨어를 직접 컨트롤할 수 있는 능력을 가지고있다.
쉽게 이야기하자면 드라이버를 스스로 포함하고있다고 보면 되는데, 운영체제는 부팅을 하기 전까지 이러한 펌웨어의 기능에 거의 전적으로 의존하므로,
부팅이 될때까지는 아무런 문제가 없다. 하지만 부팅이 되고 나면 상황은 달라진다.
부팅이 되고 나면 많은 부분을 운영체제 스스로 해나가야만 한다.
물론 펌웨어에 똑같이 의존할 수도 있지만 지나친 의존은 성능 저하 또는 하드웨어의 오동작을 일으켜 시스템의 안정성에 영향을 줄 수 있다.
때문에 하드웨어 컨트롤 역시 스스로 해야 하는데, 이 때 운영체제에게 필요한 프로그램이 바로 드라이버다 (driver: 운전자. 장치를 운전해주는 프로그램 정도).
하지만 드라이버가 없으니 USB에 더이상 접근할 수 없게 되어버리고, 이후의 상황은 안 봐도 뻔하다.
설치 패키지에 접근할 수 없으니 USB에 접근가능해지기 전까지 설치는 더 이상 진행될 수 없다.
2.0 포트가 있다면 거기에 USB를 꽂고 재부팅하면 되겠지만, 드라이버가 호환되지 않거나
가진 게 3.0포트뿐이라면 드라이버를 구해서 설치 이미지에 넣어주어야만 한다.
이제부터 그 방법에 대하여 알아본다.
(메인보드 홈페이지에서 별도로 배포하는 툴을 사용해서 작업을 보다 쉽게 할 수 있겠지만,
개인적으로는 사용방법이 잘 맞지 않았던 데다, 모든 메인보드 제조사의 툴을 일일히 설명할 수도 없기에 수동으로 넣어주는 방법에 대해서만 서술한다.)
2. 드라이버 추출
일단 제조사 홈페이지에서 드라이버를 받아야 한다.
어떻게 들어가냐고? ...바로 구글 슨상님이 계시지않노? 모든거'슨' 나가 다 알려준당께...
메인보드의 모델명으로 검색해 본다. (메인보드 모델정도는 스스로 알고있어야 한다... 보드 모델을 모른다면 나도 어떻게 할 방법이 없다 게이들아)
나는 슨카이레이크용 보드 중 하나인 ASRock H110M-I였기에 driver를 붙여서 이대로 검색했다.
검색을 하면 아래처럼 나올텐데,
공식 홈페이지에서 받는 것이 제일 신뢰할 만하다 (노오란 색으로 강조된 부분).

첫번째 링크로 들어가봤다.
보드의 슨펙이 나와 있다. 여기에서 제일 왼쪽의 Download 부분을 선택하자.
알맞은 윈도우의 버전을 선택한다.
사실 7 이외에는 별로 선택할일이 없겠지...
설치할 윈도우 7이 64비트라면 당연히 64비트짜리를 선택해야 한다.
그러면 아래와 같이 드라이버 리스트가 나오는데... 좀더 내려가보자.
좀더 내려가보니, USB 모양의 아이콘이 보인다.
아무 링크나 상관없으니 되는 걸로 받아보자.
나는 E:\usb3 이라는 경로에 저장하기로 했다.
zip처럼 압축파일로 되어 있으면 다행인데 (압축만 풀면 됨), 만일 exe처럼 실행파일로 된 형식이라면 직접 실행해서 압축을 풀어줘야만 한다.
만일 실행했는데도 extract 같은 버튼이 전혀 보이지 않는다면 직접 수동으로 압축을 풀어 줘야만 한다... 이게 제일 골치아픈데, 일반적인 해결법이 없다..
임시 디렉토리 %temp% 로 들어가서 생성한 임시파일이 있는지를 직접 뒤져보는 방법도 있고,
일부 압축프로그램에서는 실행 파일에 포함된 여러개의 파일을 추출해 낼 수 있으니 7-zip 같은 프로그램으로 압축을 풀어보는 것도 시도해 볼 수 있다.
하지만 바로 위에서도 언급했듯이, 일반적인 해결법이 없으니 나도 그 부분에 대해서 어떻게 설명할 수 있는 방법이 없다... 미안타
여기에서는 zip 형태였으므로 받고 압축을 풀기로 한다.
저장한 후에 압축을 풀고나니, 이름이 너무 긴거같아 그냥 drv로 이름을 바꿨다.
E:\drv에 들어가보면...
이런식으로 파일들이 눈에 띈다.

추가로 설명하자면, 드라이버 파일들은 보통 drivers 내에 존재한다. 이건 그냥 팁으로 알아두면 좋다.
drivers\(운영체제명)\(운영체제 비트 버전. x86/x64 등) 처럼 존재하는 경우가 많다.
예시를 들자면, 아래처럼 많이 나온다.
drivers\win7\x86 (Win7 32비트)
drivers\win7\x64 (Win7 64비트)
drivers\win7\amd64 (Win7 64비트. x64대신 amd64로 표기하기도 한다.)
drivers\win7\ia64 (이건 우리가 사용하는 컴퓨터용에 붙어있는 시퓨와 다르다. 실행될 수 없다.)
나 같은 경우는, drivers\win7\x64, drivers\win7\x86 둘다 존재했다.
들어가 보면 *.cat, *.inf, *.sys 등이 같이 있는경우가 많다. 적어도 inf와 sys는 둘다 존재한다.
(inf만 존재할수도 있지만 그건 실질적으로 드라이버가 불필요하거나, 타 경로에 드라이버 파일이 존재하는 경우에나 그렇다.)
어쨌든 드라이버를 받았으니, 다음으로 넘어가보자.
3. WIM 이미지에 드라이버 추가하기
wim 이미지는 윈도우 설치시에 많이 사용되는 이미지다.
예전의 Win9x 시절에는 wim이 아닌 보통 cab(cabinet) 형태를 많이 사용했었다. 파일 여러개를 묶어서 분할압축된 형태로 쓰거나,
또는 설치할 파일 하나하나마다 cab 압축을 적용하여 이름만 살짝 바꾼 형태로 설치 CD 내에 존재했었지만 (explorer.exe -> explorer.ex_),
당연히 구시대의 유물이고 (전혀 쓰이지 않는것은 아니다)... 지금은 wim 이미지라는 형태로 바뀌었다. (사실 꽤 오래전에 바뀜 헤헤)
윈도 설치 DVD 또는 USB 내에는 sources라는 디렉토리가 있다.
여기에는 boot.wim과 install.wim이라는 2개의 wim 이미지가 존재하는데,
boot.wim은 윈도우 설치를 위한 부팅시에 램디스크에 마운트되는 이미지이며 (즉, 단순 부팅용)
install.wim은 실제 윈도우의 구성요소를 담고 있는 이미지이다 (설치시에 사용).
이제부터 이 2개의 이미지를 수정하려고 한다.
(만일을 대비해서 이 둘을 백업시켜두는것도 좋다. 그럴일은 없겠지만 뭔가 잘못되면 다시 원상복구해야하니까...)
wim 이미지를 수정하기 위해서는, DISM이라는 유틸리티가 사용된다.
이 유틸리티는 wim 이미지를 디렉토리에 마운트 또는 언마운트하거나, 드라이버를 추가하는 등(이게 내가 사용하려는 기능이다)
여러 가지 유용한 기능을 제공한다.
일단, USB 드라이브 내의 2개의 wim 이미지를 (sources\boot.wim, sources\install.wim)
E:\sources에 복사해서 수정하기로 했다.
다른 디렉토리에 복사할 게이들은, 명령줄에 입력할 때 E:\sources 대신 해당 디렉토리 경로를 넣어줘야 한다.
그리고, 관리자 권한으로 cmd (명령 프롬포트) 를 실행시킨다.
그러면 기본적으로 C:\Windows\system32 디렉토리에서 시작되는데, 여기에서 아래와 같이 입력한다.
각 줄의 끝에는 당연히 엔터를 눌러야 한다.
dism /get-wiminfo /wimfile:e:\source\boot.wim
dism /get-wiminfo /wimfile:e:\source\install.wim
이렇게 하면, 아래처럼 2개의 wim 이미지에 대한 정보를 얻을 수 있다.
< boot.wim >
인덱스 1 : Microsoft Windows PE (x64)
인덱스 2 : Microsoft Windows Setup (x64)
< install.wim >
인덱스 1 : Windows 7 HOMEBASICK
인덱스 2 : Windows 7 HOMEPREMIUMK
인덱스 3 : Windows 7 PROFESSIONALK
인덱스 4 : Windows 7 ULTIMATEK
이처럼 하나의 wim 이미지에는 다수 개의 [인덱스] 라는 것이 존재한다.
이제는 마운트할 빈 디렉토리를 만들자. 나는 C:\wim-mount 로 마운트하기로 했다.
cmd에 아래처럼 입력해서 빈 디렉토리를 만들자.
mkdir C:\wim-mount
boot.wim의 인덱스 1 (Microsoft Windows PE (x64)) 부터 마운트시켜 보자.
C:\wim-mount에 마운트시키기 위해서 아래와 같이 입력한다.
dism /mount-wim /wimfile:e:\sources\boot.wim /index:1 /mountdir:c:\wim-mount
이미지가 마운트되었다.
이제는 USB 드라이버를 마운트된 이미지에 추가하기로 한다.
이미지 경로를 지정할 때, wim 이미지의 본체를 지정하는 것이 아니라 마운트된 경로를 지정한다는 것에 주목하자.
드라이버의 버전은 설치할 운영체제의 버전에 맞는 것이여야 한다. (운영체제: Windows 7 x64 -> 드라이버 : Windows 7 x64)
dism /image:c:\wim-mount /add-driver /driver:e:\usb3\drv /recurse
(E:\usb3\drv는 아까 받아두었던 USB 드라이버의 압축을 푼 경로이다.)
사실 e:\usb3\drv를 지정하는지 e:\usb3을 지정하는지는 크게 중요치 않다. 설치할 운영체제의 버전에 맞는 드라이버만 있으면 된다.
어차피 dism이 하위 디렉토리를 탐색하면서 드라이버 설치정보를 알아서 검색하기 때문이다.
하지만 그렇다고 해서 e:\ 전체를 지정하는 일은 없도록 하자. 다른 드라이버 정보가 잡힌다면 그것까지 같이 설치해버리려고 할 테니까 ^오^
어쨌든 위의 명령줄을 입력하면, 아래처럼 드라이버가 추가되는 것을 확인할 수 있다. 기분 딱조타!
(만일 드라이버 패키지를 찾을 수 없다고 나온다면 드라이버 경로가 잘못되었거나,
드라이버가 제대로 추출되지 않은 것이니 드라이버를 다시 구해야 한다...)
수정이 끝났으니, wim을 다시 언마운트해줘야 한다.
변경된 내용은 언마운트를 거쳐야 wim 이미지에 실제로 적용된다.
(/commit 대신 /discard 옵션을 주면 언마운트하되 이미지에 적용되지 않는다.)
아래처럼 입력하면 이미지 수정이 완료된다.
dism /unmount-wim /mountdir:c:\wim-mount /commit
뭔가 많이 한거같지만 사실 이제서야 boot.wim의 1번 인덱스만 끝났을 뿐이다.
사실 그냥 부분적으로만 해도 되지만, 혹시 모르니 boot.wim의 인덱스 1, 2와 install.wim의 인덱스 1, 2, 3, 4에 모두 적용시키기로 하자.
(인덱스가 조금 다르게 나오는 게이들은, 나오는 모든 인덱스에 대해서 모두 적용시켜야 한다.)
일일히 저걸 다 입력하긴 귀찮잖아?
그래서 간단한 배치 슨크립트를 만들어 보기로 했다. 말이 스크립트지, 사실은 그냥 명령줄을 나열에 놓은것에 불과하다.
위에서 설명을 따르며 입력해뒀던 3줄을, 게이들의 환경에 맞게 알아서 수정해 줘라.
일반화하면 아래의 3줄처럼 된다.
dism /mount-wim /wimfile:[WIM 이미지 파일 경로] /index:[인덱스] /mountdir:[마운트 디렉토리]
dism /image:[마운트 디렉토리] /add-driver /driver:[USB 드라이버 경로] /recurse
dism /unmount-wim /mountdir:[마운트 디렉토리] /commit
나에게 있어서 수정해야 할 목록은
boot.wim의 인덱스 2
install.wim의 인덱스 1
install.wim의 인덱스 2
install.wim의 인덱스 3
install.wim의 인덱스 4
이렇게 남았으니까, wim 파일과 인덱스별로 만들면 아래처럼 되겠지? 이것을 add-driver.txt로 저장한다. (경로는 상관 없다)
(맨 마지막의 pause는 실행 결과를 확인하기 위해서 그냥 두는거다.)
이렇게 저장된 add-driver.txt를, add-driver.bat로 확장자를 바꾼다.
이제 add-driver.bat를 우클릭해서, 관리자 권한으로 실행한다.
UAC 꺼놓은 게이들은 자동으로 관리자 권한으로 실행되므로 상관없다.
그러면 아래처럼 쭈욱 진행된다.
install.wim이 2-3기가 정도 하기때문에, 다소 시간이 걸릴 수 있다.
드디어 끝났다!
이제는 이렇게 수정된 2개의 wim 이미지들을 USB 드라이브 내의 sources에 그대로 복사하면(덮어쓰면) 된다.
이 과정을 거쳐야만 지금까지 해온 모든 작업이 적용된다.
이 모든 작업을 마치면, 수정된 이미지가 담긴 USB를 들고 콤퓨타에 달려가서 설치를 진행해 보자.
4. 마치며
이렇게 이 글을 통해서 wim 이미지에 드라이버를 어떻게 추가해 넣는지를 알아보았다.
사실 요즘 윈도 10으로 많이 가는 추세라서 (이전 버전의 운영체제에 대한 드라이버 지원도 점점 사라져 가겠지) 이 글을 읽을 게이들이 많지는 않겠지만 ,
그래도 10을 설치할 만한 여건이 안되거나, 이런 문제점이 일어나는 게이들에게 도움이 될거라고 생각하고 올려 본다.
간단한 3줄요약
1. 이 글에서 나타나는 현상은 USB 드라이버가 지원되지 않아서 발생하는 경우가 많다.
2. USB 드라이버를 메인보드 제조사 (또는 노트북 제조사) 에서 다운로드 받자.
3. dism이라는 유틸리티를 이용해서 sources 디렉토리 내의 boot.wim과 install.wim에 드라이버를 추가해 넣자.





