| Windows Imaging Format | |
|---|---|
| Filename extension | .wim,.swm,.esd |
| Internet media type | application/x-ms-wim[1] |
| Magic number | MSWIM\0\0\0 /WLPWM\0\0\0 for wimlibpipable variant[2] |
| Developed by | Microsoft |
| Type of format | Disk image |
TheWindows Imaging Format (WIM) is afile-baseddisk imageformat. It was developed byMicrosoft to help deployWindows Vista and subsequent versions of theWindowsoperating system family.
Like otherdisk image formats, a WIMfile contains a set of files and associatedfilesystemmetadata. However, unlikesector-based formats (such asISO orVHD), WIM is file-based: the fundamental unit of information in a WIM is a file.
The primary advantages of being file-based is hardware independence andsingle-instance storage of a file referenced multiple times in the filesystem tree. Since the files are stored inside a single WIM file, the overhead of opening and closing many individual files is reduced. The cost of reading or writing many thousands of individual files on the local disk is negated by hardware and software-baseddisk caching as well as sequential reading and writing of the data.
WIM files can contain multiple disk images, which are referenced either by their numerical index or by their unique name. Due to the use of single-instance storage, the more each successive disk image has in common with previous images added to the WIM file, the less new data will be added. A WIM can also be split (spanned) into multiple parts, which have the.swm extension.
WIM images can be madebootable and Windowsboot loader supports booting Windows from a WIM file. Windows Setup DVD in Windows Vista and later use such WIM files. In this case, BOOT.WIM contains a bootable version ofWindows PE from which the installation is performed. Other setup files are held in the INSTALL.WIM.
SinceWindows 8.1, the size of Windows directory can be reduced by moving system files into compressed WIM images stored on a separate hidden partition (WIMBoot).[3] SinceWindows 10, system files can be compressed on the system disk (CompactOS).[4]
WIM supports three families ofLZ77-based compression algorithms in ascending ratio and descending speed: XPRESS,[5]LZX, and LZMS.[6] The former two useHuffman encoding, while the latter uses adaptive Huffman encoding withrange coding.[7] There is also support forsolid compression. Both solid compression and LZMS are introduced more recently, in WIMGAPI from Windows 8 andDISM from Windows 8.1.[8]
WIM usesSHA-1 algorithm to calculate checksum for whole archive.[9]
ImageX is the command-line tool used to create, edit and deployWindows disk images in the Windows Imaging Format. Along with the underlying Windows Imaging Interface library (WIMGAPI), it is distributed as part of the freeWindows Automated Installation Kit (WAIK/OPK). Starting withWindows Vista, Windows Setup uses the WAIK API to install Windows.
The first distributed prototype of ImageX was built 6.0.4007.0 (main.030212-2037). It allowed MicrosoftOEM partners to experiment with the imaging technology and was developed in parallel withLonghorn alpha prototypes. It was first introduced in Milestone 4 into the Longhorn project and used in later builds of Longhorn. Build 6.0.5384.4 added significant advantages over previous versions, like read-only and read/write folder mounting capabilities, splitting to multiple image files (SWM), a WIM filter driver and the latest compression algorithms. It has been used since pre-RC (release candidates) of Windows Vista.
Deployment Image Service and Management Tool (DISM) is a tool introduced in Windows 7[10] and Windows Server 2008 R2[10] that can perform servicing tasks on a Windows installation image, be it an online image (i.e. the one the user is running) or an offline image within a folder or WIM file. Its features include mounting and unmounting images, querying installed device drivers in an offline image, and adding a device driver to an offline image.[10][11][12] It is now possible to repair with DISM any image using either a Windows Installation CD orWindows Update.[13]
Before Windows Server 2012 and Windows 8, DISM had incorporated the majority of ImageX functions but not all; ImageX was still needed for image capture and applying.[10] However, DISMdeprecated ImageX in Windows 8.[14]
Windows 8.1 added ability to apply and capture disk images, and Windows 10 extended image applying, by adding compression.
Since April 30, 2012, an open-source library for handling the WIM format is available. This library can be used onUnix-like systems, as well as on Windows. Thanks to this project,Linux distributions now have their own imagex clone calledwimlib-imagex, which allows mounting WIM images and managing them (read/write) like any other block-storage provider.[15]
As WIM images use somewhat common compression algorithms, they can be accessed by usingfile archivers like7-Zip.
For other operating systems that might not support this format, it is still possible to convert .wim images to the more commonly usedISO image using theWindows Assessment and Deployment Kit on Windows.[16]