본문 바로가기
컴퓨터/Windows

DISM을 이용하여 오프라인 Windows에 업데이트 패키지 추가

by Spring13 2023. 9. 4.

DISM(Deployment Image Servicing and Management tool)을 이용하여 Windows 오프라인 이미지에 업데이트 패키지를 추가하는 방법을 알아본다.

 

Windows RE 이미지에 업데이트를 추가하는 방법을 알고 싶다면 이 글로 가면 된다.

 

Windows RE에 업데이트 적용하기

2023-01-10일 자로 마이크로소프트 보안 업데이트와 함께 WinRE(Windows 복구 환경) 디바이스에 대한 특별 지침이 나왔다. WinRE(Windows Recovery Environment)가 있는 디바이스는 CVE-2022-41099의 보안 취약성을 해

sprout13.tistory.com


필자는 인터넷을 연결하지 않은 상태의 Windows 10을 가상머신에서 이용하고 있다.

이렇게 인터넷을 연결하지 않은 상태로 Windows를 이용하면 생기는 문제 중 하나는, 바로 제때에 Windows 업데이트를 받지 못한다는 것이다.

온라인 Windows에서 Windows 업데이트를 하기 위해서는 당연히 Windows가 실행되고 있는 상태여야 한다.

그러나, 이를 위해선 가상 머신이 실행되어야 하고(또는 실제 컴퓨터로 부팅), 가상 머신은 당연히 컴퓨터의 리소스(특히 RAM)를 요구한다.

유휴 상태의 컴퓨터가 아니면 Windows 업데이트를 실행하기 어려울 수 있다는 것이다.


그러나, DISM을 이용하면 전원이 꺼져있는 상태의 Windows에도 업데이트를 설치할 수 있다.

원래는 'Windows 오프라인 이미지'에 업데이트를 통합하여 해당 이미지를 이용한 배포 과정에서 업데이트 단계를 줄이기 위한 기술이나, 일반적인 '오프라인 Windows 이미지에도 업데이트를 통합하는 방식으로 업데이트를 설치할 수 있다.


'오프라인 상태의 Windows'는 크게 두 가지로 구분할 수 있다.

하나는 말 그대로, 컴퓨터의 저장장치나 가상 머신의 가상 디스크 파일에 설치된 부팅하지 않은 Windows를 의미하는 것이고, 다른 하나는 WIM이나 VHD 파일 형태의, 설치 및 부팅에 활용할 수 있는 'Windows 오프라인 이미지를 의미한다.


DISM을 이용하면 이러한 형태의 Windows에 모두 업데이트를 배포할 수 있다.

이렇게 DISM을 이용한 Windows 구성 요소 수정은 Windows Vista SP1 이상부터 가능하다.

 

글이 길어지기에 접은 글을 이용하였다.


1. 사전 준비


더보기

1.1. 업데이트 파일 찾기


가장 먼저 업데이트 패키지가 필요하다.

기본적으로 Microsoft Update 카탈로그에서 업데이트를 다운로드하면 되지만, 문제는 찾기가 어렵다.

 

Microsoft Update 카탈로그

시작 Microsoft Update 카탈로그 사이트를 찾아주셔서 감사합니다! 피드백을 남겨 주십시오! 뉴스 그룹을 방문하거나 메일을 보내어 의견 및 제안 사항을 알려주십시오. 이 사이트를 사용하기 시작

catalog.update.microsoft.com

Microsoft Updete 카탈로그의 홈 화면

자신이 어떠한 업데이트가 필요한지 모른다면 보통 최신 업데이트를 찾으면 된다.

이러한 업데이트 정보는 Microsoft 지원에서 찾을 수 있다.

 

예를 들어, Windows 10의 업데이트 정보를 찾고 싶다면 Windows 10 릴리스 정보 페이지를, 11의 업데이트 정보를 찾고 싶다면 Windows 11 릴리스 정보 페이지를 찾으면 된다.

 

Windows 10 - release information

Learn release information for Windows 10 releases

learn.microsoft.com

 

Windows 11 - release information

Learn release information for Windows 11 releases

learn.microsoft.com


이미지는 Windows 10 릴리스 정보이다.

해당 페이지를 아래로 내리면 오른쪽 이미지처럼 릴리스 내역을 제공하는데, 가장 위의 빌드가 최신 버전이다.

 

우측의 '기술 자료 문서'의 항목으로 진입하면,

 

여담으로 이런 기술 문서는 '설정 > Windows 업데이트 > 업데이트 기록'의 '자세한 정보'를 눌러서도 열람할 수 있다.

 해당 빌드에 대한 기술 문서를 찾을 수 있다.

 

해당 기술 문서 페이지를 아래로 내리면,

 '이 업데이트 설치' 항목을 찾을 수 있다.

여기에서 표시된 링크를 통해 카탈로그 페이지로 진입하면

이렇게 바로 해당 업데이트 패키지를 찾을 수 있다.

 

위의 이미지에서 패키지 3개가 검색되는데, 이 3개가 모두 필요한 것은 아니다.

이름에 x64가 들어간다면 64비트, x86이면 32비트, ARM64라면 Windows on ARM에서 사용하는 패키지이다.

 

자신의 운영체제가 어떠한 종류인지 모른다면 설정에서 정보를 찾을 수 있다.

예를 들어, Windows 11 기준으로, '설정 > 시스템 > 정보'의 장치 사양에서 정보를 알 수 있다.

Windows 10도 같은 방법으로 정보를 찾을 수 있다.

 '시스템 종류'에 64비트 운영 체제, x64기반 프로세서라고 나와 있으므로, 이 운영체제에서는 x64 업데이트 패키지를 사용하면 된다.

 여담으로, 대부분의 운영체제는 64비트 운영체제를 사용한다.


.Net Framework 업데이트 또한 같은 방법으로 찾을 수 있다.

 


1.2. 업데이트

자신에게 필요한 업데이트가 무엇인지 알았다면 다운로드하면 된다.

왼쪽의 링크를 클릭하면,

 이렇게 해당 업데이트 패키지에 관한 기술 정보가 나온다.


 

오른쪽 다운로드 버튼을 누르면 아래와 같이 다운로드 창이 뜬다.

 

 표시한 링크를 누르면 파일이 다운로드된다.


2. 업데이트 패키지를 오프라인 Windows 이미지에 적용하기


필요한 파일을 다운로드하였으면 오프라인 Windows 이미지에 업데이트를 적용할 차례이다.

업데이트 적용 절차가 '설치 혹은 탑재된 Windows'인지, '설치 또는 탑재가 되지 않은 Windows'인지에 따라 다른데, 이 글에서는 이 둘을 분리하여 안내한다.


2.1. WIM 파일, ESD 파일 또는 마운트 되지 않은 VHD


2.1.1. WIM 파일 또는 ESD 파일의 경우


더보기

2.1.1.1. 간단한 개요

WIM 파일은 Windows Imaging Format으로, 파일 기반 디스크 이미지 포맷이다.

WIM 파일은 파일을 기반으로 하여 관련 메타데이터를 저장하는데, 중복되는 파일(가령 인덱스 1과 2에서 파일이 중복으로 포함되어 있는 경우)을 효율적으로 저장하기 위해 하드 링크처럼 동일한 데이터를 가지는 파일은 하나만 저장하고, 필요한 경우 여러 이미지에서 참조되어 디스크 공간을 절약할 수 있게끔 하였다. 이 때문에 20GB 가까이하는 Windows를 압축한 WIM 파일은 4GB 정도 되는 것을 확인할 수 있다.


ESD는 Electronic Software Delivery의 약자로, Microsoft에서 제공하는 소프트웨어 설치를 위해 만들어진 이미지 파일이다. Windows 설치 미디어를 제작하면 install.wim 대신 install.esd가 들어있는 것을 알 수 있는데, ESD 파일을 의미하는 것이다.

ESD는 WIM 기반이지만, 소프트웨어 설치를 목적으로 제작되는 것이기 때문에, WIM 파일의 기능 중 몇 가지가 작동하지 않을 수 있다. 대표적으로 이미지 수정이 불가능한데, 이 때문에 ESD 파일에는 업데이트 통합이 불가능하며, WIM 파일로 변환해 준 후 업데이트를 통합해 주어야 한다. 해당 방법에 대해선 아래에서 설명할 것이다.

 

이러한 몇 가지 단점을 가지고 있지만 ESD 파일은 WIM 파일보다 압축률이 높아, 더 작은 용량을 차지한다. 이 때문에 Windows에서 제공하는 도구를 이용해 설치 미디어를 만들면 WIM 대신 ESD가 들어있는 것이다. 설치 미디어를 담는 드라이브의 용량이 그리 크지 않을 것이고, 어차피 해당 이미지에 별다른 수정을 가하지 않을 것이기 때문이다.

 

두 파일의 차이를 간단하게 요약하면 아래 표와 같다.

표는 Google Bard를 이용해 만들어짐

 2.1.1.2. 파일 마운트하기


 WIM 파일 또는 ESD 파일에 업데이트를 통합하기 위해선 먼저 자신이 통합하고자 하는 이미지의 인덱스를 알아야 한다.

 

아래의 명령어는 WIM 또는 ESD파일 이미지 정보를 표시하는 명령어이다.

DISM /Get-ImageInfo /ImageFile:"이미지 파일의 경로"
Microsoft Windows [Version 10.0.22621.2215]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\System32>DISM /Get-ImageInfo /ImageFile:"I:\ASDF\install.esd"

배포 이미지 서비스 및 관리 도구
버전: 10.0.22621.1

이미지 정보: I:\ASDF\install.esd

인덱스: 1
이름: Windows 10 Home
설명: Windows 10 Home
크기: 15,072,319,796바이트

인덱스: 2
이름: Windows 10 Education
설명: Windows 10 Education
크기: 15,384,682,484바이트

인덱스: 3
이름: Windows 10 Pro
설명: Windows 10 Pro
크기: 15,397,380,895바이트

작업을 완료했습니다.

C:\Windows\System32>

총 3개의 이미지가 구성되어 있는 것을 알 수 있다.

여기서는 Windows 10 Home(Index:1)을 이용할 것이다.

 

DISM을 이용하여 아래의 명령줄을 입력한다.

DISM /Mount-Image /ImageFile:"WIM 파일의 경로" /MountDir:"마운트할 폴더의 경로" /Index:"인덱스 번호"

 위 명령줄은 WIM 파일의 n번 인덱스의 내용을 "마운트 할 폴더의 경로"에 마운트 한다.


2.1.1.2.1. ESD 파일인 경우의 추가 작업


이때, ESD파일을 마운트 하려 하면 아래의 오류가 발생한다.

상술하였듯 ESD 파일은 수정이 불가능하기 때문이다.

Microsoft Windows [Version 10.0.22621.2215]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\System32>DISM /Mount-Image /ImageFile:"I:\ASDF\install.esd" /MountDir:"I:\ASDF\TEMP" /Index:1

배포 이미지 서비스 및 관리 도구
버전: 10.0.22621.1


오류: 11

프로그램을 잘못된 형식으로 로드하려고 했습니다.

DISM 로그 파일은 C:\Windows\Logs\DISM\dism.log에 있습니다.

 

이때는 인텔 기술 문서를 참고하여 ESD 파일의 내용물을 WIM 파일로 추출해야 한다.

이에 따라 ESD 파일을 WIM 파일로 변환하여 내보낸다.

 

아래의 예문을 기반으로 명령줄을 작성한다.

DISM /Export-Image /SourceImageFile:"ESD 파일의 경로" /SourceIndex:"인덱스 번호"  /DestinationImageFile:"내보낼 WIM 파일의 경로" /Compress:"압축 정도" /CheckIntegrity


/Compress	초기 캡처 작업에 사용되는 압축 형식을 지정합니다. /Compress 인수는 이미지를 기존 .wim 파일로 내보낼 때 적용되지 않으며, 이미지를 새 .wim 파일로 내보낼 때만 사용할 수 있습니다. maximum 옵션은 최상의 압축을 제공하지만 이미지를 캡처하는 데 더 많은 시간이 걸립니다. fast 옵션은 더 빠른 이미지 압축을 제공하지만 결과 파일은 maximum 옵션을 사용하여 압축한 파일보다 큽니다. 이 옵션은 인수를 지정하지 않을 경우 사용되는 기본 압축 형식입니다. recovery 옵션을 사용하여 원스톱 복원 이미지를 내보냅니다. 결과 파일의 크기가 훨씬 작으므로 원스톱 복원 이미지를 복구 드라이브에 저장하는 데 필요한 디스크 공간을 크게 줄입니다. 대상 파일은 .esd 확장명으로 지정해야 합니다. none 옵션은 캡처된 이미지를 전혀 압축하지 않습니다.
/CheckIntegrity	캡처, 분리, 내보내기 및 커밋 작업에서 사용할 때 .wim 파일 손상을 검색하고 추적합니다. /CheckIntegrity는 적용 및 탑재 작업에서 사용할 때 DISM에서 .wim 파일이 손상되었음을 검색하면 작업을 중지합니다.

 

이 명령줄은 "I:\ASDF\install.esd" 파일에서 "1번 인덱스"의 파일을 "압축도:최대"로 무결성을 검사하여 "I:\ASDF\install.wim"로 내보낸다.

작업이 완료되면 아래 이미지와 같이 WIM 파일이 생성되어 있을 것이다.

이제 이 WIM파일을 마운트 하면 된다.


 이 명령어는 "I:\ASDF\install.wim"의 1번 인덱스의 파일들을 "I:\ASDF\TEMP"에 마운트 한다.

 

시간이 조금 걸린다.

  마운트 된 폴더를 보면 아래 저럼 보일 것이다.

 여담으로 오른쪽의 폴더 속성을 보면 폴더의 크기와 디스크 할당 크기가 다른 것을 할 수 있는데, 상술하였듯이 마운트 개념으로 파일들을 풀어 놓았기 때문이다.

 2.1.1.3. 마운트 한 이미지에 업데이트 적용


이제 마운트 된 Windows 이미지에 업데이트를 통합할 차례이다.

아래 명령줄은 탑재된 이미지에 업데이트를 통합하는 명령줄이다. 

DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일 1의 경로" /PackagePath="업데이트 파일 2의 경로" /PackagePath="업데이트 파일 3의 경로" /LogPath="로그 파일의 경로"
DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로" /Logpath="로그 파일의 경로"

"/PackagePath=" 매개 변수를 위의 예문처럼 여러 번 입력하면 패키지 개수만큼 명령줄을 입력하지 않아도 된다. 그러나 동시에 여러 패키지를 적용하면 오류가 날 확률도 높아지고, 명령줄을 입력하는 동안 오타가 날 확률도 높아지므로, 적당한 선에서 한 번에 처리할 업데이트의 개수를 조절하는 것이 좋다. 물론, 한 번에 모든 업데이트를 적용하여도 문제는 없다.

아래의 예문처럼 /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로"와 같이 입력하면 굳이 여러번 업데이트 파일의 경로를 지정할 필요 없이 한번에 업데이트를 적용할 수 있다.

 

"/LogPath=" 매개 변수는 로그 파일의 경로를 지정하는 변수로, 적지 않으면 "C:\Windows\Logs\DISM\dism.log"에 저장되므로, 필요 없으면 변수를 설정하지 않아도 된다.

 

 

명령줄을 입력하면 아래와 같은 이미지가 뜬다.

필자는 2번에 걸쳐 업데이트를 적용하였다.

 

작업을 완료하였으면 아래의 명령줄을 입력해 업데이트가 정상적으로 저장되었는지 확인한다.

Dism /Image:"마운트 경로" /Get-Packages

업데이트 패키지의 내용이 너무 많아 뭐가 뭔지 모르겠다면 목록 최상단의 '이미지 버전'을 확인한다.

 이미지와 공식 문서의 빌드 버전이 같으므로 업데이트가 적용된 것을 알 수 있다.


 2.1.1.4. 업데이트 마무리


WIM 파일에 업데이트를 적용하였으면 업데이트 과정에서 남은 잔여 파일들을 정리하는 것이 좋다.

WIM 파일을 이용한다는 것은 곧 저장 공간을 확보하고, 생성된 이미지 파일을 간편하게 이용할 것이라는 의미이기 때문이다.

 

아래의 명령줄을 입력하여 대체된 구성 요소를 정리하고 대체된 구성 요소의 기준을 다시 설정한다.

DISM /Image:"마운트 지점의 경로" /Cleanup-Image /StartComponentCleanup /ResetBase

 


파일을 정리하였으면 이제 변경 내용을 기존의 이미지에 통합할 차례이다.

 아래의 예문을 참고하여 명령줄을 입력한다.

DISM /Unmount-Image /MountDir:"마운트 경로" /Commit /CheckIntegrity

 이 명령줄은 마운트 경로의 파일들을 기존의 WIM 파일에 적용한다.

"/Commit" 대신 "/Discard" 변수를 입력하면 마운트만 해제하고 변경 내용을 적용하지 않는다.

"/CheckIntegrity" 변수는 변경 내용을 적용하는 과정에서 파일 손상이 있는지 검사하는 변수이다.

 "/Append" 변수를 추가하면 원본 이미지를 덮어쓰는 대신 수정된 이미지를 기존 .wim 파일에 새로운 인덱스로 추가한다.


작업이 완료되면

DISM /Get-ImageInfo /ImageFile:"이미지 파일의 경로"
DISM /Get-ImageInfo /ImageFile:"이미지 파일의 경로" /Index:"인덱스 번호"

를 다시 입력하여 "서비스 팩 빌드"를 확인한다.

 서비스 팩 빌드가 "3393"이므로, 이 Windows 이미지의 빌드 번호는 "10.0.19045.3393"이 된다.

이는 상술한 빌드 번호와 동일하므로 업데이트가 제대로 적용된 것을 알 수 있다.


2.1.2. 마운트 되지 않은 VHD의 경우


더보기

2.1.2.1. 개요


기본적으로 WIM 파일에 업데이트를 통합하는 과정과 방법은 동일하다.

그러나, 이 방법을 사용하는 것보다는 아래의 VHD를 마운트 하여 업데이트를 적용하는 방법이 더 간편하다. 내부적으로 VHD를 마운트 하여 작업을 수행하기 때문이다.

아무튼 방법은 다음과 같다.


2.1.2.2. 마운트 하기


DISM을 이용하여 VHD 파일을 비어있는 디렉터리에 마운트 한다. 마운트 목적으로 사용할 디렉터리를 임시로 하나 만드는 것이 좋다.

다음의 예문을 참고하여 명령줄을 입력한다.

Dism /Mount-Image /ImageFile:"이미지 파일의 경로" /Index:1 /MountDir:"마운트 디텍터리의 위치"

VHD파일에서는 탑재 과정에서 "/Optimize" 매개 면수와 "/CheckIntegrity" 매개 변수를 사용할 수 없다.

VHD의 인덱스 값은 1로, 다른 인덱스 값은 없다. 따라서 "Index:1"을 입력하면 된다.

 

 DISM을 이용해 VHD 파일을 탑재하면 마치 디스크 관리에서 "비어있는 NTFS 폴더에 탑재" 옵션을 이용해 볼륨을 마운터 한 것과 유사한 방식으로 VHD 파일을 마운트 한다.


2.1.2.3. 업데이트 패키지 통합


마운트를 하였으면 업데이트 패키지를 통합할 차례이다.

아래의 예문을 참고하여 명령줄을 작성한다.

DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일 1의 경로" /PackagePath="업데이트 파일 2의 경로" /PackagePath="업데이트 파일 3의 경로" /LogPath="로그 파일의 경로"
DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로" /Logpath="로그 파일의 경로"

"/PackagePath=" 매개 변수를 위의 예문처럼 여러 번 입력하면 패키지 개수만큼 명령줄을 입력하지 않아도 된다. 그러나 동시에 여러 패키지를 적용하면 오류가 날 확률도 높아지고, 명령줄을 입력하는 동안 오타가 날 확률도 높아지므로, 적당한 선에서 한 번에 처리할 업데이트의 개수를 조절하는 것이 좋다. 물론, 한 번에 모든 업데이트를 적용하여도 문제는 없다.

아래의 예문처럼 /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로"와 같이 입력하면 굳이 여러번 업데이트 파일의 경로를 지정할 필요 없이 한번에 업데이트를 적용할 수 있다.

 

"/LogPath=" 매개 변수는 로그 파일의 경로를 지정하는 변수로, 적지 않으면 "C:\Windows\Logs\DISM\dism.log"에 저장되므로, 필요 없으면 변수를 설정하지 않아도 된다.

패키지의 크기가 클수록 적용 시간이 길어진다.

 명령줄을 실행하면 위와 같이 패키지를 적용한다.


2.1.2.4. 업데이트 마무리 및 적용


 업데이트 적용이 끝났으면 남은 잔여 파일들을 정리하는 것이 좋다.

아래의 명령줄을 입력하여 이미지를 정리하고 대체된 구성 요소의 기반을 다시 설정한다.

DISM /Image:"마운트 지점의 경로" /Cleanup-Image /StartComponentCleanup /ResetBase

"/StartComponentCleanup" 매개 변수는 대체된 구성 요소를 정리하고 구성 요소 저장소의 크기를 줄이는 변수이다.

"/ResetBase" 변수는 "/StartComponentCleanup"에 종속된 변수로, 대체된 구성 요소의 기준을 다시 설정하여 저장소 크기를 더욱 줄일 수 있는 변수이다. "/ResetBase" 옵션을 사용하면 이전 버전의 Windows 파일이 제거되므로, 설치된 업데이트를 삭제할 수 없다.


파일을 정리하였으면 이제 변경 내용을 기존의 이미지에 통합할 차례이다.

 아래의 예문을 참고하여 명령줄을 입력한다.

DISM /Unmount-Image /MountDir:"마운트 경로" /Commit

 이 명령줄은 마운트 경로의 파일들을 기존의 VHD 파일에 적용한다.

"/Commit" 대신 "/Discard" 변수를 입력하면 마운트만 해제하고 변경 내용을 적용하지 않는다.

 


작업이 완료되면

DISM /Get-ImageInfo /ImageFile:"이미지 파일의 경로" /Index:1

를 다시 입력하여 "서비스 팩 빌드"를 확인한다. VHD 파일의 인덱스는 1 하나이므로 다른 번호를 입력하지 않아도 된다.


 서비스 팩 빌드가 "3393"이므로, 이 Windows 이미지의 빌드 번호는 "10.0.19045.3393"이 된다.


이는 최신 빌드 번호와 동일하므로 업데이트가 제대로 적용된 것을 알 수 있다.

 


2.2. 마운트 된 VHD 또는 설치된 Windows


더보기

2.2.1. 개요


어쩌면 가장 간단하다고도 할 수 있는데, 위의 방법처럼 압축된 이미지 압축 해제하여 마운트 한 후 변경점을 WIM 파일에 적용, 압축하는 과정이 없기 때문이다.


2.2.2. Windows 경로 찾기


업데이트를 적용하기 위해서는 업데이트를 적용할 Windows가 설치된 파티션의 경로를 알아야 한다.

 

VHD 파일 또는 Windows가 설치된 드라이브를 마운트 한 후, '디스크 관리'를 연다.

'디스크 관리'를 열기 위해서는 [Windows 키 + X]를 누르거나, 시작 버튼을 우클릭한 후 '디스크 관리' 또는 메뉴를 누른다.

'컴퓨터 관리'를 눌러도 해당 창에서 '디스크 관리'로 진입할 수 있다.

위 이미지에서는 디스크 3이 마운트 한 디스크이다.

해당 드라이브는 레거시 BIOS에서 사용하던 드라이브로, 첫 번째 파티션인 "시스템 예약" 파티션은 레거시 BIOS에서 사용하는 부팅 파일이 들어있는 부팅 파티션이다. 두 번째 파티션인 "주 파티션"이 Windows가 설치되어 있는 파티션이다.

 

UEFI를 사용하는 컴퓨터의 시스템 드라이브라면 디스크 0처럼 첫 번째가 EFI 시스템 파티션이고, 두 번째가 Windows 가 설치된 파티션일 것이다.

 

필자의 경우엔 Windows가 설치된 파티션의 드라이브 문자가 K인 것을 확인할 수 있다.

실제 경로로 들어가 보면 이미지처럼 Windows가 설치되어 있는 경로로 진입할 수 있는 것을 확인할 수 있다.


2.2.2.1. 드라이브 문자가 할당되어 있지 않을 때


만약 드라이브 문자가 할당되어 있지 않다면 드라이브 문자를 할당하여야 한다.

 

해당 파티션을 우클릭한다.

 [드라이브 문자 및 경로 변경]을 누른다.

[추가]를 누른다.

 원하는 방식으로 경로를 추가하고 확인을 누른다.

경로가 할당된다.


2.2.3. 업데이트 적용


경로를 찾았으면 바로 업데이트를 적용하면 된다.

아래 예문을 참고하여 명령줄을 입력한다.

DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일 1의 경로" /PackagePath="업데이트 파일 2의 경로" /PackagePath="업데이트 파일 3의 경로" /LogPath="로그 파일의 경로"
DISM /Image:"업데이트를 탑재할 오프라인 이미지의 Windows 경로" /Add-Package /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로" /Logpath="로그 파일의 경로"

"/PackagePath=" 매개 변수를 위의 예문처럼 여러 번 입력하면 패키지 개수만큼 명령줄을 입력하지 않아도 된다. 그러나 동시에 여러 패키지를 적용하면 오류가 날 확률도 높아지고, 명령줄을 입력하는 동안 오타가 날 확률도 높아지므로, 적당한 선에서 한 번에 처리할 업데이트의 개수를 조절하는 것이 좋다. 물론, 한 번에 모든 업데이트를 적용하여도 문제는 없다.

아래의 예문처럼 /PackagePath="업데이트 파일이 보관되어 있는 디렉터리 경로"와 같이 입력하면 굳이 여러번 업데이트 파일의 경로를 지정할 필요 없이 한번에 업데이트를 적용할 수 있다.

 

"/LogPath=" 매개 변수는 로그 파일의 경로를 지정하는 변수로, 적지 않으면 "C:\Windows\Logs\DISM\dism.log"에 저장되므로, 필요 없으면 변수를 설정하지 않아도 된다.

 

 

여기서 주의할 점이 있는데, 지정할 오프라인 Windows 파티션 경로가 최상위 디렉터리라면 지정할 때 /Image:"K:\"가 아니라 /Image:"K:"와 같이 지정해야 한다. 그러지 않으면 DISM에서 해당 경로를 인식하지 못한다.


2.2.4. 업데이트 마무리

업데이트 적용이 끝났으면 남은 잔여 파일들을 정리하는 것이 좋다.

아래의 명령줄을 입력하여 이미지를 정리하고 대체된 구성 요소의 기반을 다시 설정한다.

DISM /Image:"마운트 지점의 경로" /Cleanup-Image /StartComponentCleanup /ResetBase

여기서도 지정할 오프라인 Windows 파티션 경로가 최상위 디렉터리라면 지정할 때 /Image:"K:\"가 아니라 /Image:"K:"와 같이 지정해야 한다.

"/StartComponentCleanup" 매개 변수는 대체된 구성 요소를 정리하고 구성 요소 저장소의 크기를 줄이는 변수이다.


"/ResetBase" 변수는 "/StartComponentCleanup"에 종속된 변수로, 대체된 구성 요소의 기준을 다시 설정하여 저장소 크기를 더욱 줄일 수 있는 변수이다. "/ResetBase" 옵션을 사용하면 이전 버전의 Windows 파일이 제거되므로, 설치된 업데이트를 삭제할 수 없다.


구성 요소를 정리하였다면 업데이트가 정상적으로 적용되었는지 확인해야 한다.

아래 예문을 참고하여 명령줄을 작성한다. 

DISM /Image:"마운트 경로" /Get-Packages

 패키지 목록이 많이 나오는데, 우리가 봐야 할 것은 맨 위에 나오는 이미지 버전이다.

 이미지 버전이 최신 기술 문서의 빌드 버전과 같으므로 정상적으로 업데이트가 적용된 것이다.


업데이트가 정상적으로 적용되었다면 마운트 한 드라이브를 마운트 해제한다.

파일 탐색기에서 해당 드라이브를 우클릭한 후 [꺼내기]를 누르거나, 디스크 관리에서 디스크를 우클릭한 뒤, [VHD 분리]를 누르면 된다.


여담


오프라인 상태의 Windows에 업데이트를 적용하면 (업데이트를 적용하기 위한) 가상 머신 구동에 필요한 리소스를 줄일 수 있는 장점 외에도, 해당 Windows 시스템을 재부팅할 필요가 없다는 소소한 장점이 있다.

 

Windows, Linux를 비롯한 많은 운영체제나 Chrome 등 많은 응용 프로그램들은 스스로를 업데이트하면 무조건 '다시 시작'을 요구한다. 이는 이러한 업데이트가 현재 사용 중인, 다시 말해 중요한 파일을 교체하기 때문이다.

그러나 운영체제나 프로그램들이 해당 파일을 통해 계속 구동되고 있다면 이러한 파일들을 교체할 수 없다. 오류가 나기 때문이다.

따라서 운영 체제나 응용 프로그램들은 업데이트 적용에 앞서 자신을 종료함으로써, 관련 파일을 사용하지 않는 상태로 만들어 문제없이 파일을 교체할 수 있게 한다.

 

그러나 오프라인 상태의 Windows는, 해당 파일을 기반으로 어떠한 응용 프로그램도 동작하지 않으므로(꺼져 있으니까) 업데이트 적용을 위한 재부팅이 필요하지 않은 것이다.


WIM 파일을 ESD 파일로 저장하고 싶다면 DISM을 이용한 패키징 과정에서 확장자를 ".esd"로 하면 된다.


이렇게 DISM을 이용한 Windows 구성요소 수정은 Windows Vista SP1 이상부터 가능하다.


참고 자료

더보기

Windows 이미지에 업데이트 추가 | Microsoft Learn

 

Windows 이미지에 업데이트 추가

Windows 이미지에 업데이트 추가 아티클 06/19/2023 기여자 8명 피드백 이 문서의 내용 --> 다른 유형의 패키지와 마찬가지로 DISM을 사용하여 Windows 이미지에 업데이트 패키지를 추가할 수 있습니다.

learn.microsoft.com

DISM을 사용하여 오프라인으로 패키지 추가 또는 제거 | Microsoft Learn

 

DISM을 사용하여 오프라인으로 패키지 추가 또는 제거

DISM을 사용하여 오프라인으로 패키지 추가 또는 제거 아티클 05/10/2023 기여자 5명 피드백 이 문서의 내용 --> 배포 이미지 서비스 및 관리(DISM.exe)는 오프라인 Windows 이미지를 업데이트하는 데 사용

learn.microsoft.com

DISM 이미지 관리 명령줄 옵션 | Microsoft Learn

 

DISM 이미지 관리 명령줄 옵션

DISM 이미지 관리 명령줄 옵션 아티클 05/10/2023 기여자 8명 피드백 이 문서의 내용 --> 배포 이미지 서비스 및 관리(DISM.exe)는 서비스를 위해 Windows 이미지(.wim) 파일 또는 가상 하드 디스크(.vhd 또는 .

learn.microsoft.com

DISM 운영 체제 패키지(.cab 또는 .msu) 서비스 명령줄 옵션 | Microsoft Learn

 

DISM 운영 체제 패키지(.cab 또는 .msu) 서비스 명령줄 옵션

DISM 운영 체제 패키지(.cab 또는 .msu) 서비스 명령줄 옵션 아티클 05/30/2023 기여자 6명 피드백 이 문서의 내용 --> Windows 캐비닛(.cab) 또는 Windows 업데이트 독립 실행형 설치 관리자(.msu) 파일과 함께 DI

learn.microsoft.com

Microsoft Update 카탈로그

 

Microsoft Update 카탈로그

시작 Microsoft Update 카탈로그 사이트를 찾아주셔서 감사합니다! 피드백을 남겨 주십시오! 뉴스 그룹을 방문하거나 메일을 보내어 의견 및 제안 사항을 알려주십시오. 이 사이트를 사용하기 시작

www.catalog.update.microsoft.com

Windows 10 - release information | Microsoft Learn

 

Windows 10 - release information

Learn release information for Windows 10 releases

learn.microsoft.com

Windows 11 - release information | Microsoft Learn

 

Windows 11 - release information

Learn release information for Windows 11 releases

learn.microsoft.com

https://www.intel.co.kr/content/www/kr/ko/support/articles/000023992/memory-and-storage/intel-optane-memory.html

 

Windows 이미지*에서 드라이버 업데이트를 위해 ESD 파일을 WIM 파일로 변환합니다.

Microsoft에서 DISM* 도구를 사용하여 ESD 파일을 WIM* 파일로 변환하는 방법.

www.intel.co.kr

https://sprout13.tistory.com/33

 

Windows RE에 업데이트 적용하기

2023-01-10일 자로 마이크로소프트 보안 업데이트와 함께 WinRE(Windows 복구 환경) 디바이스에 대한 특별 지침이 나왔다. WinRE(Windows Recovery Environment)가 있는 디바이스는 CVE-2022-41099의 보안 취약성을 해

sprout13.tistory.com

https://learn.microsoft.com/ko-kr/windows-hardware/manufacture/desktop/add-update-to-winre?view=windows-11 

 

Windows RE에 업데이트 추가

Windows RE에 업데이트 패키지를 추가합니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/windows-hardware/manufacture/desktop/add-update-to-winre?view=windows-11#apply-the-update-to-a-running-pc 

 

Windows RE에 업데이트 추가

Windows RE에 업데이트 패키지를 추가합니다.

learn.microsoft.com

https://namu.wiki/w/DISM

 

DISM - 나무위키

이미지 생성, 분할, 추가, 삭제, 추출, 적용, 마운트, 언 마운트, 커밋들이 가능하다. 기본 명령어 DISM.exe /Capture-Image /ImageFile:<저장될 이미지 파일 경로> /CaptureDir:<캡쳐될 디렉터리> /Name:<이름(Any)>

namu.wiki

https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EC%9D%B4%EB%AF%B8%EC%A7%95_%ED%8F%AC%EB%A7%B7

 

윈도우 이미징 포맷 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 윈도우 이미징 포맷(Windows Imaging Format, WIM)은 파일 기반 디스크 이미지 포맷이다. 마이크로소프트가 윈도우 비스타 및 차기 버전의 윈도우 운영 체제 계열 및 윈

ko.wikipedia.org

 

728x90
반응형

댓글