[Windows PE] 간단한 윈도우 PE 만들기

Multibooting/Windows PE


이번 포스팅에서는 윈도우 VISTA/7/8 ISO에 포함되어있는 윈도우 설치 PE인 BOOT.WIM를 수정해서 간단한 PE를 만들어보도록 하겠습니다. 지난 '[Windows PE] 윈도우 PE란?' 에서는 Setup.exe를 교체해서 프로그램을 실행하는 것을 보여드렸는데요, 실제 PE를 만들때는 PE의 설정 파일이라고 할 수 있는 WINPESHL.INI 파일에 실행될 프로그램을 지정해서 사용합니다.

따라서 이번 포스팅에서는 BOOT.WIM 파일을 마운트 한 뒤, WINPESHL.INI를 수정해서 파일 탐색기인 Q-Dir을 실행하는 간단한 PE를 만들어 보도록 하겠습니다. 작업을 위해서는 MS에서 제공하는 ImageX 프로그램을 이용해서 WIM 파일을 편집해 주어야 하는데요, 배치파일로 만들어 보았습니다. 다운로드 하시고 압축을 풀어주세요.




압축을 푸시면 이렇게 MakePE.bat과 Q-Dir, Tools 폴더가 있는데요, 이 중 MakePE.bat 을 관리자 권한으로 실행해주세요.



MakePE.bat을 실행하시면 BOOT.WIM을 배치파일이 존재하는 경로로 복사해달라고 출력됩니다. 윈도우 설치 ISO의 Sources 폴더에서 BOOT.WIM 파일을 복사하신뒤, 배치파일이 존재하는 곳에 붙여넣기 해주세요.



이렇게 복사해주시면 됩니다. 복사하신뒤 아무 키나 눌러주시면 마운트가 시작됩니다.



ImageX가 BOOT.WIM을 배치파일이 존재하는 경로의 Mount 폴더에 마운트하는데요, 약간의 시간이 소요됩니다. 기다려주세요.



마운트가 완료되면 이런 메시지가 출력됩니다. Mount 폴더를 확인해볼까요? (아직 창을 닫으시면 안됩니다 ^^;;)



Mount 폴더를 확인하시면 이렇게 WIM 파일의 데이터가 마운트 된 것을 보실 수 있는데요, 일반 윈도우와 구조가 흡사함을 보실 수 있습니다. 이제 이중 Program Files 폴더에 첨부된 Q-Dir 폴더를 복사해주시고, WINPESHL.INI 파일을 작성해주시면 됩니다.



먼저 첨부된 MakePE.zip의 압축을 푸시면 들어있는 Q-Dir 폴더를 Mount 폴더 내의 Program Files 폴더로 복사해주세요. Program Files 폴더는 일반 윈도우의 Program Files 폴더처럼 PE상의 프로그램들이 존재하는 기본 경로입니다. (관리자 권한을 요구합니다. 승인해주세요.)



[LaunchApp]
AppPath = "%SYSTEMDRIVE%\Program Files\Q-Dir\Q-Dir.exe"


이제 WINPESHL.ini를 작성해주시면 되는데요, 이렇게 작성하신 뒤 PE의 System32 폴더 내에 저장해주시면 됩니다. 이 때, 메모장에서 바로 저장하시면 권한 때문에 저장이 되지 않으니 메모장을 관리자 권한으로 실행하시거나 다른 곳에 저장하신 뒤 복사해주셔야 합니다.



이렇게 Mount - Windows - System32 경로에 WINPESHL.ini로 저장해주세요.



수정을 완료하신뒤 아까 전의 배치 파일 창에서 아무 키나 눌러주시면 이렇게 이미지 파일의 언마운트가 진행됩니다. 기다려주세요.



언마운트가 완료되면 이런 메시지가 출력됩니다. 배치파일이 존재하는 폴더를 확인해보세요.



언마운트가 완료되면 배치파일이 존재하는 경로에 PE.wim 이라는 새로운 파일이 생성된것을 확인하실 수 있습니다. 이제 이 WIM 파일을 윈도우 7 ISO의 BOOT.WIM과 교체하셔서 CD/DVD에 구우시거나 '[만능 USB를 만들어 보자!] 8편 - 윈도우 PE 추가하기'를 참고하셔서 부팅 USB를 만들어서 사용하시면 되겠습니다 ^^



완성된 PE로 부팅하시면 이렇게 Setup.exe 대신 Q-Dir이 실행되는 모습을 보실 수 있는데요, 위의 WINPESHL.ini에 다른 프로그램을 지정하시면 다른 포터블 프로그램들도 실행하실 수 있습니다. 단, 윈도우 PE는 일반 윈도우에서 여러 DLL 파일들이 제외되었으므로, 상황에 맞는 DLL 파일을 같이 넣어주셔야 합니다.

(WINPESHL.ini 파일에 대해서는 마이크로소프트 TechNet에 자세히 설명되어있습니다. 참고하세요 ^^)