윈 도 우 WIM 일괄 추출
2022.05.05 21:14
Windows 10부터 매월 정기 MSDN이 출시되면서 개인이 Sysprep를 활용하여 업데이트를 통합하는 작업에 대한 부담은 줄어들었습니다.
하지만 달마다 출시되는 새로운 Windows 버전을 기존 설치 이미지에 추가하고, 오래된 버전의 이미지를 삭제하는 일은 여간 번거로운 일이 아니었습니다.
저는 부팅 USB를 하나 두고, 그 안에 설치할 수 있는 모든 Windows 버전을 모아서 하나의 install.wim(install.swm)을 생성하여 보관해두었습니다. 반년 마다 한번씩 최신 Windows 이미지를 다운받아 기존 install.wim에 추가하고, 통합된 install.wim의 이미지 순서(Index)를 다시 정렬하는 작업, 오래된 버전을 퇴출하는 작업까지 손수 작업했습니다. (WIM 포맷은 Windows NT 6.0에서 처음 도입되었습니다.)
그래서 이러한 번거로운 작업을 쉽게 자동화해줄 파이썬 스크립트를 작성했습니다. 사용자는 최신 ISO를 다운받고 프로그램을 실행한 뒤 완성된 install.wim을 USB에 복사하는 작업만 하면 됩니다. 그 중간 과정은 스크립트가 알아서 install.wim을 추출하고 index를 정렬합니다.
전체적인 프로그램의 순서도는 다음과 같습니다.
프로그램이 실행되면, settings.json 파일에 지정된 디렉터리를 재귀적으로 탐색하여 *.iso 파일을 찾아냅니다. iso 파일을 열어 wim 파일을 추출합니다.
추출이 다 끝나면, settings.json에서 설정한 정렬 기준대로 예) 언어 -> 설치 종류 -> 버전 -> 에디션 -> 아키텍처 순으로 정렬하고 그 결과를 보여줍니다.
이제 단일 wim 파일로 통합합니다. DISM 명령 /export-image를 수행합니다.
옵션에 따라 swm로 분할하는 작업을 수행합니다.
DISM API를 직접 활용하려 했으나, 시간적인 여유가 없어 DISM 명령을 Wrapping 하여 콘솔 리디렉션으로 string 하나하나 비교해가며 구현했습니다. 컴파일된 EXE 실행파일이기에 안티바이러스에서 감지하므로, 검사 예외 경로에서 실행하셔야 합니다. 본 바이너리는 파이썬 스크립트를 포팅한 것입니다.
아직 실전으로 모든 케이스에 대해 테스트해보지 않아 버그가 있을 것으로 예상됩니다.....
댓글 [5]
-
타천사둘리 2022.05.05 21:34
-
오손도손 2022.05.05 21:41 수고많으셨습니다.잘간직할 강좌입니다 -
cungice 2022.05.05 22:35
감사합니다. 수고 많으셨습니다.
-
굿듀님스토커 2022.05.05 22:45
추가 한가지
윈도우11과 서버 윈도우10 의 iso 파일을 매번 다 통합이 아닌 업데이트된 윈도우의 wim만 추출한다음
통합된 wim 파일에서 해당 인덱스를 삭제시키고 그 위치에 통합하는 방식으로 하면 좋을거 같습니다.
-
보리아빠 2022.05.06 20:26
수고하셨습니다.
나눠주신 자료도 유용하게 사용하겠습니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
4362 | 소프트웨어| 윈도우7 USER-PE 부팅불가 현상 해결방법 [2] | 세리아 | 25984 | 1 | 08-27 |
4361 | 윈7에서 사블 라이브 사용하기 [26] |
|
25818 | 0 | 08-31 |
4360 | 윈 도 우| 개조바이오스가 주는 편리함 [20] |
|
25601 | 2 | 07-13 |
4359 | 바이오스개조 AMI SLIC3 0630 툴의 사용법,, 클릭해서보세요 [3] |
|
25471 | 6 | 09-10 |
4358 | 서버 / IT| 서버 2008.R2를 메인 OS로 써보자-끝 [32] |
|
25415 | 1 | 12-24 |
4357 | 윈 도 우| NEWPREP(만능고스트 툴)를 홈에디션에서도 사용하기 [3] |
|
25340 | 0 | 12-30 |
4356 | 윈 도 우| 윈도 자료 받은대로 설치하기(wim,iso,vhd,tib,고스트..) [6] | suk | 25272 | 12 | 12-21 |
4355 | 7 인증받은 토큰으로 새로설치후 인증받기 [7] |
|
25251 | 0 | 08-08 |
4354 | 기 타| OEM용 Vista 홈베이직이나 홈프리미엄을 얼티밋으로 인증하... | gooddew | 25250 | 1 | 09-10 |
4353 | 윈 도 우| grub4dos로 외장하드(또는 USB) 멀티부팅 활용 [4] | 100esa | 25226 | 5 | 12-20 |
4352 | 하드웨어| VMware 7.1에 OS X 설치하기 [13] |
|
25188 | 0 | 07-01 |
4351 | 하드웨어| 익스플로러의 즐겨찾기를 죽여버리자. [7] |
|
25104 | 0 | 05-22 |
4350 | 기가비트 랜카드 성능 향상 - 점보프레임 활성화 [12] | x64 | 25087 | 0 | 08-01 |
4349 | 윈 도 우| WIN PE의 ISO파일 풀고 wim파일 만으로 SETTING 방법 [8] |
|
25081 | 13 | 01-29 |
4348 | ⑥ Acronis TrueImage 2010 : 처음 사용자를 위한 Acronis S... [19] | 고담시민 | 25049 | 3 | 09-29 |
4347 | 윈 도 우| 맑은 고딕 6.11 -> 6.22 [24] |
|
24946 | 14 | 10-25 |
4346 | 윈 도 우| 윈도우7 인터넷 끊김현상 [24] |
|
24844 | 0 | 11-30 |
4345 | 윈 도 우| 인터넷 익스플로러 10 제거하기 [12] | chkid | 24794 | 2 | 11-04 |
4344 | 윈 도 우| IE 8가 설치된 XP에서 한글2007을 설치시 mshtml.dll 해결... [7] | 스노팍 | 24711 | 0 | 11-13 |
4343 | 소프트웨어| 토렌트 자석주소(마그넷) 먹통 해결법 [6] |
|
24681 | 0 | 04-25 |
수고하셨습니다.감사합니다.꾸~~~뻑