본문 바로가기

PE, ImageX, DISM

[윈도우 PE] WIM 부팅 이미지에 oledlg.dll 동적 연결 라이브러리 추가하기



윈도우 PE 에는 기본적으로 oledlg.dll 라이브러리 파일이 포함되지 않기 때문에, 이를 활용하는 프로그램을 PE 에서 실행하려는 경우 위와 같은 오류 메세지가 출력됩니다. [윈도우 PE 4.0 에선 오류 메세지가 나오지 않고 그냥 아무런 반응이 없습니다.] 이럴 땐 윈도우 PE 부팅 이미지에 oledlg.dll 파일을 추가하시면 됩니다.




윈도우 PE - WIM 부팅 이미지에 oledlg.dll 파일 추가하기

일단 작업에 사용할 oledlg.dll 파일이 필요합니다. 참고로 윈도우 PE 의 버전에 따라 추가해야 할 oledlg.dll 파일의 버전도 달라지기 때문에 올바른 버전의 oledlg.dll 파일을 준비하셔야 합니다. oledlg.dll 파일은 윈도우 PE 가 기반으로 하는 버전의 윈도우에서 추출하면 되며, 이는 아래와 같습니다.

윈도우 PE 2.x 32비트 = 윈도우 비스타 32비트 [System32], 또는 윈도우 비스타 64비트 [SysWOW64]
윈도우 PE 2.x 64비트 = 윈도우 비스타 64비트 [System32]

윈도우 PE 3.x 32비트 = 윈도우 7 32비트 [System32], 또는 윈도우 7 64비트 [SysWOW64]
윈도우 PE 3.x 64비트 = 윈도우 7 64비트 [System32]

윈도우 PE 4.x 32비트 = 윈도우 8 32비트 [System32], 또는 윈도우 8 64비트 [SysWOW64]
윈도우 PE 4.x 64비트 = 윈도우 8 64비트 [System32]



이러한 oledlg.dll 파일은 아래의 글에서 제공하고 있으니, 자신이 사용하는 PE 버전에 맞는 oledlg.dll 파일을 다운로드 받아서 준비하시길 바랍니다.



작업에는 DISM 또는 ImageX 도구가 필요합니다. 글에서는 ImageX 도구를 사용하도록 하겠습니다. 혹시나 ImageX 도구가 준비되어 있지 않다면 아래의 페이지에서 ImageX 를 다운로드 받으시길 바랍니다. 참고로 ImageX 의 버전은 작업에 크게 상관이 없습니다.



다음으로 수정하려는 윈도우 PE 의 WIM 이미지와 이를 마운트할 적절한 빈 폴더가 필요합니다. 디스크에서 직접 사용하는 WIM 이미지라면 그대로 작업하시면 되고, CD/DVD 의 형태로 가지고 있다면 WIM 파일을 작업하기 편한 적절한 위치로 복사해 둡니다. 저는 아래와 같이 준비했습니다. [* 참고로 글에서 수정하려는 WIM 부팅 이미지는 D:\GARS\Boot\GARS.wim 파일이며 부팅용 이미지의 인덱스는 1 입니다. 또한 마운트용 폴더는 NTFS 로 포맷된 드라이브에 준비하셔야 합니다.]



준비를 모두 마쳤으면 아래와 같이 작업합니다.

01. 명령 프롬프트를 관리자 권한으로 실행한 후, ImageX 도구를 사용하여 수정하려는 WIM 파일의 부팅 이미지를 빈 폴더에 마운트합니다. [WIM 이미지 파일과 폴더는 자신에게 맞춰 명령을 내리세요.]

imagex /mountrw D:\GARS\Boot\GARS.wim 1 D:\Mount



02 PE 의 버전에 맞춰 준비한 oledlg.dll 파일을 마운트된 폴더의 \Windows\System32 폴더로 복사합니다. 복사를 마쳤으면 반드시 탐색기를 닫아 줍니다.



03. 작업을 모두 마쳤습니다. 이제 다시 ImageX 도구를 사용하여 이미지의 마운트를 해제하고 변경된 내용을 적용합니다.

imagex /unmount D:\Mount /commit



04. 디스크에서 사용하던 이미지라면 그대로 사용하면 되고, CD/DVD 형태로 사용 중이었다면 방금 수정한 WIM 파일로 교체하시어 다시 CD/DVD 를 만드시면 됩니다. 그에 대한 설명은 생략하겠습니다.

05. 수정한 윈도우 PE 로 부팅하여 프로그램이 정상적으로 실행되는지 확인합니다.



작업을 모두 마쳤으면 수정한 윈도우 PE 로 부팅하여 oledlg.dll 라이브러리를 필요로 하는 프로그램이 정상적으로 실행되는지 확인합니다. [위에서 작업한 PE 의 해상도 문제로 프로그램이 PE 상에서 실행되었다는 것을 보여드리기가 어려워 다른 이미지에서 동일하게 작업하고 실행한 모습을 올립니다.]



간단하죠? 이상입니다. ^^