이번 글에서는 Windows 컴퓨터에서 WinPE 10 환경의 NTFS 압축이 사용 가능한 디스크 공간을 모두 차지하는 문제를 해결하는 방법을 살펴봅니다. NTFS 압축은 CPU 사용 시간과 디스크 작업량 사이의 절충(trade-off) 관계에 있으며, 특정 상황이나 특정 유형의 파일에서는 압축 효율이 더욱 뛰어나다는 점을 기억해 두시기 바랍니다.
NTFS 압축이란?

Windows에서 사용하는 NTFS 파일 시스템에는 'NTFS 압축'이라는 내장 압축 기능이 포함되어 있습니다. 몇 번의 클릭만으로 파일을 압축하여 하드 드라이브에서 차지하는 공간을 줄일 수 있으며, 무엇보다도 압축 후에도 기존과 동일한 방식으로 파일에 정상적으로 접근할 수 있다는 것이 가장 큰 장점입니다.
Windows PE(WinPE)는 Windows 10 데스크톱 에디션(Home, Pro, Enterprise, Education), Windows Server 등 다양한 Windows 운영 체제를 설치, 배포, 복구하는 데 사용되는 경량 운영 체제입니다.
DISM이 오류 112와 함께 실패하는 현상
시스템에 새 파티션을 생성한 뒤, /C 스위치를 사용해 NTFS 압축을 활성화하면서 해당 파티션을 포맷하려고 할 때 이 문제가 발생할 수 있습니다.
예를 들어 WinPE 10 x64에서 부팅 가능한 USB 키를 만들고 "test" WIM 파일을 USB 키로 복사한 후, 테스트 시스템을 WinPE로 부팅하여 아래 명령을 실행한다고 가정해 보겠습니다.
dism /apply-image /imagefile:d:\test.swm /swmfile:d:\test*.swm /index:1 /applydir:c:\
이 경우 DISM 명령은 오류 112와 함께 실패할 가능성이 높습니다. 여기서 테스트 시스템의 파티션은 C 드라이브이며, USB 키는 D 드라이브라고 가정합니다.
흥미로운 점은 이 시나리오에서 WinPE 5 x64를 사용하더라도 동일한 문제가 재현될 수 있다는 것입니다. 참고로 WIM 파일은 FAT32 파일 시스템에 맞추기 위해 분할(.swm) 형태로 저장되며, 관련 로그 파일은 wpe5 및 wpe10 하위 폴더에서 확인할 수 있습니다.
WOF 압축을 통한 우회 해결 방법
Microsoft는 이 문제를 피하기 위해 NTFS 압축으로 볼륨을 포맷하지 말 것을 권장합니다. 대신 이미지를 적용(apply)할 때 dism 명령에 /compact 옵션을 지정하여 WOF 압축을 사용하는 방법을 제시하고 있습니다.
WOF는 Windows Overlay Filter의 약자입니다. 기본 NTFS 파일 압축과 달리 Windows Overlay Filter는 읽기 작업만 지원합니다. 따라서 각 압축 청크(chunk)를 섹터 단위로 정렬할 필요가 없어 압축 데이터를 훨씬 촘촘하게 저장할 수 있습니다. 만약 파일을 쓰기 모드로 열면 Windows Overlay Filter는 해당 파일 전체의 압축을 자동으로 해제하여 일반 파일로 되돌립니다.
또한 Windows Overlay Filter는 지난 20년간 발전해 온 최신 압축 알고리즘을 활용할 수 있습니다. 이러한 알고리즘은 더 우수한 압축률을 제공하고, 여러 CPU 코어에서 병렬로 실행될 수 있으며, 압축 해제 시 필요한 CPU와 메모리 사용량도 적습니다.
결과적으로 이 방식은 오류 112 문제를 완화할 뿐만 아니라, 보다 효율적인 압축 알고리즘 덕분에 시스템 전반의 속도 향상 효과까지 얻을 수 있습니다.
