1 .TH WIMLIB-IMAGEX "1" "March 2014" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands"
3 @IMAGEX_PROGNAME@-apply \- Extract one image, or all images, from a WIM archive
5 \fB@IMAGEX_PROGNAME@ apply\fR \fIWIMFILE\fR [\fIIMAGE\fR] \fITARGET\fR [\fIOPTION\fR...]
7 \fB@IMAGEX_PROGNAME@ apply\fR extracts an image, or all images, from the Windows
8 Imaging (WIM) file \fIWIMFILE\fR. This command is also available as simply
9 \fBwimapply\fR if the appropriate hard link or batch file has been installed.
11 This command is designed to extract, or "apply", one or more full WIM images.
12 If you instead want to extract only certain files or directories contained in a
13 WIM image, consider using \fB@IMAGEX_PROGNAME@ extract\fR or
14 \fB@IMAGEX_PROGNAME@ mount\fR instead. (\fB@IMAGEX_PROGNAME@ mount\fR is not
15 supported on Windows.)
17 \fIIMAGE\fR specifies the WIM image in \fIWIMFILE\fR to extract. It may be a
18 1-based index of an image in \fIWIMFILE\fR, the name of an image in
19 \fIWIMFILE\fR, or the keyword "all" to indicate that all images in \fIWIMFILE\fR
20 are to be extracted. Use the \fB@IMAGEX_PROGNAME@ info\fR (1) command to show
21 what images a WIM file contains. \fIIMAGE\fR may be omitted if \fIWIMFILE\fR
22 contains only one image.
24 \fITARGET\fR specifies where to extract the WIM image to. If \fITARGET\fR
25 specifies a directory, the WIM image is extracted to that directory (see
26 \fBDIRECTORY EXTRACTION (UNIX)\fR or \fBDIRECTORY EXTRACTION (WINDOWS)\fR).
27 Similarly, if \fITARGET\fR specifies a non-existent file, a directory is created
28 in that location and the WIM image is extracted to that directory.
30 If \fIIMAGE\fR is specified as "all", then all the images in \fIWIMFILE\fR are
31 actually extracted into subdirectories of \fITARGET\fR, each of which is given
32 the name of the corresponding image, falling back to the image index in the case
33 of an image with no name or a name not valid as a filename.
35 Alternatively, on UNIX-like systems only, if \fITARGET\fR specifies a regular
36 file or block device, it is interpreted as an NTFS volume to which the WIM image
37 is to be extracted (see \fBNTFS VOLUME EXTRACTION (UNIX)\fR). Only a single
38 image can be extracted in this mode, and only extracting to the root of the NTFS
39 volume (not a subdirectory thereof) is supported.
41 \fIWIMFILE\fR may be "-" to read the WIM from standard input rather than from a
42 file, but see \fBPIPABLE WIMS\fR for more information.
44 \fB@IMAGEX_PROGNAME@ apply\fR supports applying images from stand-alone WIMs as
45 well as split WIMs. See \fBSPLIT WIMS\fR.
46 .SH DIRECTORY EXTRACTION (UNIX)
47 This section documents how \fB@IMAGEX_PROGNAME@ apply\fR (and also
48 \fB@IMAGEX_PROGNAME@ extract\fR) extract a WIM image (or a possibly a subset
49 thereof, in the case of \fB@IMAGEX_PROGNAME@ extract\fR) to a directory on
50 UNIX-like systems. See \fBDIRECTORY EXTRACTION (WINDOWS)\fR for the
51 corresponding documentation for Windows.
53 As mentioned, a WIM image can be applied to a directory on a UNIX-like system by
54 providing a \fITARGET\fR directory. However, it is important to keep in mind
55 that the WIM format was designed for Windows, and as a result WIM files can
56 contain data or metadata that cannot be represented on UNIX-like systems. The
57 main information that \fB@IMAGEX_PROGNAME@\fR will \fInot\fR be able to extract
58 on UNIX-like systems is the following:
60 Windows security descriptors (which include the file owner, group, and ACLs).
64 Reparse points other than symbolic links and junction points.
66 Certain file attributes such as compression, encryption, and sparseness.
68 Short (DOS) names for files.
70 File creation timestamps.
72 Notes: Unsupported data and metadata is simply not extracted, but
73 \fB@IMAGEX_PROGNAME@\fR will attempt to warn you when the contents of the WIM
74 image can't be exactly represented when extracted. Last access and last
75 modification timestamps are specified to 100 nanosecond granularity in the WIM
76 file, but will only be extracted to the highest precision supported by the
77 underlying operating system, C library, and filesystem. Compressed files will
78 be extracted as uncompressed, while encrypted files will not be extracted at
80 .SH NTFS VOLUME EXTRACTION (UNIX)
81 This section documents how \fB@IMAGEX_PROGNAME@ apply\fR extracts a WIM image
82 directly to an NTFS volume image on UNIX-like systems.
84 As mentioned, \fB@IMAGEX_PROGNAME@\fR running on a UNIX-like system can apply a
85 WIM image directly to an NTFS volume by specifying \fITARGET\fR as a regular file
86 or block device containing an NTFS filesystem. The NTFS filesystem need not be
87 empty, although it's expected that it be empty for the intended use cases. A
88 new NTFS filesystem can be created using the \fBmkntfs\fR(8) command provided
91 In this NTFS volume extraction mode, the WIM image is extracted to the root of
92 the NTFS volume in a way preserves almost all information contained in the WIM
93 image. It therefore does not suffer from the limitations described in
94 \fBDIRECTORY EXTRACTION (UNIX)\fR. This support relies on libntfs-3g to write
95 to the NTFS volume and handle NTFS-specific and Windows-specific data.
97 Please note that this NTFS volume extraction mode is \fInot\fR entered if
98 \fITARGET\fR is a directory, even if an NTFS filesystem is mounted on
99 \fITARGET\fR. You must specify the NTFS volume itself (and it must be
100 unmounted, and you must have permission to write to it).
102 This NTFS volume extraction mode attempts to extract as much information as
105 All data streams of all files except encrypted files, including the unnamed data
106 stream as well as all named data streams.
108 Reparse points, including symbolic links, junction points, and other reparse
111 File and directory creation, access, and modification timestamps, using the
112 native NTFS resolution of 100 nanoseconds.
114 Windows security descriptors, including all components (owner, group, DACL, and
117 DOS/Windows file attribute flags.
119 All names of all files, including names in the Win32 namespace, DOS namespace,
120 Win32+DOS namespace, and POSIX namespace. This includes hard links.
122 However, there are also several known limitations of the NTFS volume extraction
125 Encrypted files will not be extracted.
127 Although sparse file attributes will be applied, the full data will be extracted
128 to each sparse file, so extracted "sparse" files may not actually contain any
131 Regardless, since almost all information from the WIM image is restored in this
132 mode, it is possible to restore an image of an actual Windows installation using
133 \fB@IMAGEX_PROGNAME@\fR on UNIX-like systems in addition to with
134 \fB@IMAGEX_PROGNAME@\fR on Windows. In the examples at the end of this manual
135 page, there is an example of applying an image from the "install.wim" file
136 contained in the installation media for Windows Vista, Windows 7, and Windows 8
137 in the "sources" directory.
139 But in order to actually boot Windows from an applied image, you must understand
140 the boot process of Windows versions Vista and later. Basically, it is the
144 The Master Boot Record loads the Volume Boot Record (also called the Boot
145 Sector) of the active partition, which is on an NTFS filesystem. This partition
146 is called the "system partition".
148 The "bootmgr" program on the "system partition" is loaded (\\BOOTMGR).
150 bootmgr loads the Boot Configuration Data (\\Boot\\BCD) from the "system
153 Based on the information contained in the Boot Configuration Data, a loader for
154 the Windows kernel is executed from the "Boot" partition, which is where Windows
157 So let's say you applied an image from an existing "install.wim" as in the
158 example, or you've applied a custom Windows image that you've created using the
159 \fB@IMAGEX_PROGNAME@ capture\fR (1) command. You've just applied the "Boot" partition, or
160 the main Windows partition, but there is no "System" partition yet (i.e. no
161 \\BOOTMGR and no \\Boot\\BCD).
163 A "System" partition can be created created by running the "bcdboot.exe" program
164 from within Windows or Windows PE. Alternatively, you can capture a separate
165 WIM image containing the "System" partition. Or, the "System" partition may the
166 same as the "Boot" partition, so the two "partitions" may be combined in one WIM
167 image. However, as the \\Boot\\BCD file contains the Windows bootloader
168 configuration, a WIM containing it can only be used on systems where you are
169 setting up the same bootloader configuration, including the same partition
172 Besides setting up the files on the "System" partition, don't forget to set the
173 bootable flag on it, and have a master boot record that loads the bootable
174 partition (Windows' MBR does, and SYSLINUX provides an equivalent MBR).
175 .SH DIRECTORY EXTRACTION (WINDOWS)
176 On Windows, \fB@IMAGEX_PROGNAME@ apply\fR and \fB@IMAGEX_PROGNAME@ extract\fR
177 natively support Windows-specific and NTFS-specific data. For best results, the
178 target directory should be located on an NTFS volume and \fB@IMAGEX_PROGNAME@\fR
179 should be run with Administrator privileges; however, non-NTFS filesystems and
180 running without Administrator privileges are also supported.
182 On Windows, \fB@IMAGEX_PROGNAME@ apply\fR and \fB@IMAGEX_PROGNAME@ extract\fR
183 try to extract as much data and metadata as possible, including:
185 All data streams of all files. This includes the default file contents, as well
186 as named data streams if supported by the target volume.
188 Reparse points, including symbolic links, junction points, and other reparse
189 points, if supported by the target volume. (Note: see \fB--rpfix\fR and
190 \fB--norpfix\fR for documentation on exactly how absolute symbolic links and
191 junctions are extracted.) However, as per the default security settings of
192 Windows, it is impossible to create a symbolic link or junction point without
193 Administrator privileges; therefore, you must run \fB@IMAGEX_PROGNAME@\fR as the
194 Administrator if you wish to fully restore an image containing symbolic links
195 and/or junction points. (Otherwise, merely a warning will be issued when a
196 symbolic link or junction point cannot be extracted due to insufficient
199 File and directory creation, access, and modification timestamps, to the highest
200 resolution supported by the target volume.
202 Security descriptors, if supported by the filesystem and \fB--no-acls\fR is not
203 specified. Furthermore, unless \fB--strict-acls\fR is specified, the security
204 descriptors for individual files or directories may be omitted or only partially
205 set if the user does not have permission to set them, which can be a problem if
206 \fB@IMAGEX_PROGNAME@\fR is run as a non-Administrator.
208 File attributes, including hidden, sparse, compressed, encrypted, etc, when
209 supported by the filesystem.
211 DOS names (8.3) names of files; however, the failure to set them is not
212 considered an error condition.
214 Hard links, if supported by the filesystem.
216 Additional notes about extracting files on Windows:
218 \fB@IMAGEX_PROGNAME@\fR will issue a warning when it is unable to extract the
219 exact metadata and data of the WIM image, for example due to features mentioned
220 above not being supported by the target filesystem.
222 Since encrypted files (with FILE_ATTRIBUTE_ENCRYPTED) are not stored in
223 plaintext in the WIM image, \fB@IMAGEX_PROGNAME@\fR cannot restore encrypted
224 files to filesystems not supporting encryption. Therefore, on such filesystems,
225 encrypted files will not be extracted. Furthermore, even if encrypted
226 files are restored to a filesystem that supports encryption, they will only be
227 decryptable if the decryption key is available.
229 Files with names that cannot be represented on Windows will not
230 be extracted by default; see \fB--include-invalid-names\fR.
232 Files with full paths over 260 characters (the so-called MAX_PATH) will be
233 extracted, but beware that such files will be inaccessible to most Windows
234 software and may not be able to be deleted easily.
236 On Windows, unless the \fB--no-acls\fR option is specified, wimlib will attempt
237 to restore files' security descriptors exactly as they are provided in the WIM
238 image. Beware that typical Windows installations contain files whose security
239 descriptors do not allow the Administrator to delete them. Therefore, such
240 files will not be able to be deleted, or in some cases even read, after
241 extracting, unless processed with a specialized program that knows to acquire
242 the SE_RESTORE_NAME and/or SE_BACKUP_NAME privileges which allow overriding
243 access control lists. This is not a bug in wimlib, which works as designed to
244 correctly restore the data that was archived, but rather a problem with the
245 access rights Windows uses on certain files. But if you just want the file data
246 and don't care about security descriptors, use \fB--no-acls\fR to skip restoring
247 all security descriptors.
249 A similar caveat to the above applies to file attributes such as Readonly,
250 Hidden, and System. By design, on Windows wimlib will restore such file
251 attributes; therefore, extracted files may have those attributes. If this is
252 not what you want, use the \fB--no-attributes\fR option.
254 You may use \fB@IMAGEX_PROGNAME@ apply\fR to apply images from a split WIM. The
255 \fIWIMFILE\fR argument must specify the first part of the split WIM, while the
256 additional parts of the split WIM must be specified in one or more
257 \fB--ref\fR="\fIGLOB\fR" options. Since globbing is built into the \fB--ref\fR
258 option, typically only one \fB--ref\fR option is necessary. For example, the
259 names for the split WIM parts usually go something like:
271 To apply the first image of this split WIM to the directory "dir", run:
274 @IMAGEX_PROGNAME@ apply mywim.swm 1 dir --ref="mywim*.swm"
277 As a special case, if you are applying an image from standard input from a split
278 WIM that is also pipable (as described in \fBPIPABLE WIMS\fR), the \fB--ref\fR
279 option is unneeded; instead you must ensure that all the split WIM parts are
280 concatenated together on standard input. They can be provided in any order,
281 with the exception of the first part, which must be first.
283 As of wimlib 1.5.0, \fB@IMAGEX_PROGNAME@ apply\fR supports applying a WIM from a
284 nonseekable file, such as a pipe, provided that the WIM was captured with
285 \fB--pipable\fR (see \fB@IMAGEX_PROGNAME@ capture\fR(1)). To use standard input
286 as the WIM, specify "-" as \fIWIMFILE\fR. A useful use of this ability is to
287 apply an image from a WIM while streaming it from a server. For example, to
288 apply the first image from a WIM file available on a HTTP server to an NTFS
289 volume on /dev/sda1, run something like:
292 wget -O - http://myserver/mywim.wim | wimapply - 1 /dev/sda1
295 (The above also used the \fBwimapply\fR abbreviation for \fB@IMAGEX_PROGNAME@
296 apply\fR.) Note: WIM files are \fInot\fR pipable by default; you have to
297 explicitly capture them with \fB--pipable\fR, and they are \fInot\fR compatible
298 with Microsoft's software. See \fB@IMAGEX_PROGNAME@ capture\fR(1) for more
301 It is possible to apply an image from a pipable WIM split into multiple parts;
302 see \fBSPLIT WIMS\fR.
306 When reading \fIWIMFILE\fR, verify its integrity if the integrity table is
309 \fB--ref\fR="\fIGLOB\fR"
310 File glob of additional WIMs or split WIM parts to reference resources from.
311 See \fBSPLIT_WIMS\fR. This option can be specified multiple times. Note:
312 \fIGLOB\fR is listed in quotes because it is interpreted by
313 \fB@IMAGEX_PROGNAME@\fR and may need to be quoted to protect against shell
316 \fB--rpfix\fR, \fB--norpfix\fR
317 Set whether to fix targets of absolute symbolic links (reparse points in Windows
318 terminology) or not. When enabled (\fB--rpfix\fR), extracted absolute symbolic
319 links that are marked in the WIM image as being fixed are assumed to have
320 absolute targets relative to the image root, and therefore \fB@IMAGEX_PROGNAME@
321 apply\fR prepends the absolute path to the extraction target directory to their
322 targets. The intention is that you can apply an image containing absolute
323 symbolic links and still have them be valid after it has been applied to any
326 The default behavior is \fB--rpfix\fR if any images in \fIWIMFILE\fR have been
327 captured with reparse-point fixups done. Otherwise, it is \fB--norpfix\fR.
329 Reparse point fixups are never done in the NTFS volume extraction mode on
333 When extracting a file from the WIM that is identical to a file that has already
334 extracted, create a hard link rather than creating a separate file. This option
335 causes all identical files to be hard-linked, overriding the hard link groups
336 that are specified in the WIM image(s). In the case of extracting all images
337 from the WIM, files may be hard-linked even if they are in different WIM images.
339 However, hard-linked extraction mode does have some additional quirks. Named
340 data streams will not be extracted, and files can be hard linked even if their
341 metadata is not fully consistent.
344 This option is similar to \fB--hardlink\fR, except symbolic links are created
348 (UNIX-like systems only) By default, in the directory extraction mode on UNIX,
349 \fB@IMAGEX_PROGNAME@ apply\fR will ignore both Windows-style security
350 descriptors and UNIX-specific file owners, groups, and modes set when using
351 \fB@IMAGEX_PROGNAME@ capture\fR with the \fB--unix-data\fR flag. By passing
352 \fB--unix-data\fR to \fB@IMAGEX_PROGNAME@ apply\fR instead, this causes this
353 UNIX-specific data to be restored when available. However, by default, if
354 \fB@IMAGEX_PROGNAME@\fR does not have permission to set the UNIX owner, group or
355 file mode on an extracted file, a warning will be printed and it will not be
356 considered an error condition; use \fB--strict-acls\fR to get stricter behavior.
359 Do not restore security descriptors on extracted files and directories.
362 Fail immediately if the full security descriptor of any file or directory cannot
363 be set exactly as specified in the WIM file. If this option is not specified,
364 when \fB@IMAGEX_PROGNAME@\fR on Windows does not have permission to set a
365 security descriptor on an extracted file, it falls back to setting it only
366 partially (e.g. with SACL omitted), and in the worst case omits it entirely.
367 However, this should only be a problem when running \fB@IMAGEX_PROGNAME@\fR
368 without Administrator rights. Also, on UNIX-like systems, this flag can also be
369 combined with \fB--unix-data\fR to cause \fB@IMAGEX_PROGNAME@\fR to fail
370 immediately if the UNIX owner, group, or mode on an extracted file cannot be set
373 \fB--no-attributes\fR
374 Do not restore Windows file attributes such as readonly, hidden, etc.
376 \fB--include-invalid-names\fR
377 Extract files and directories with invalid names by replacing characters and
378 appending a suffix rather than ignoring them. Exactly what is considered an
379 "invalid" name is platform-dependent.
381 On POSIX-compliant systems, filenames are case-sensitive and may contain any
382 byte except '\\0' and \'/', so on a POSIX-compliant system this option will only
383 have an effect in the unlikely case that the WIM image for some reason has a
384 filename containing one of these characters.
386 On Windows, filenames are case-insensitive, cannot include the characters '/',
387 \'\\0', '\\', ':', '*', '?', '"', '<', '>', or '|', and cannot end with a space
388 or period. Ordinarily, files in WIM images should meet these conditions as
389 well. However, it is not guaranteed, and in particular a WIM image captured with
390 \fB@IMAGEX_PROGNAME@\fR on a POSIX-compliant system could contain such files. By
391 default, invalid names will be ignored, and if there are multiple names
392 differing only in case, one will be chosen to extract arbitrarily; however, with
393 \fB--include-invalid-names\fR, all names will be sanitized and extracted in some
396 \fIData integrity\fR: WIM files include SHA1 message digests for file data.
397 \fB@IMAGEX_PROGNAME@ apply\fR calculates the SHA1 message digest of every file
398 it extracts and issues an error if it is not equal to the SHA1 message digest
399 provided in the WIM. (This default behavior seems equivalent to the
400 \fB/verify\fR option of ImageX.) Note that this is separate from the integrity
401 table of the WIM, which provides SHA1 message digests over raw chunks of the
402 entire WIM file and is checked separately if the \fB--check\fR option is
405 \fIESD files\fR: wimlib v1.6.0 and later can extract files from version 3584
406 WIMs, which usually contain LZMS-compressed solid blocks and may carry the
407 \fI.esd\fR file extension rather than \fI.wim\fR. However, \fI.esd\fR files
408 downloaded directly by the Windows 8 web downloader have encrypted segments, and
409 wimlib cannot extract such files until they are first decrypted.
411 \fIDirectory traversal attacks\fR: wimlib validates filenames before extracting
412 them and is not vulnerable to directory traversal attacks. This is in contrast
413 to Microsoft WIMGAPI/Imagex/Dism which can overwrite arbitrary files on the
414 target drive when extracting a malicious WIM file containing files named
415 \fI..\fR or containing path separators.
417 Extract the first image from the Windows PE image on the Windows Vista/7/8
418 installation media to the directory "boot":
421 @IMAGEX_PROGNAME@ apply /mnt/windows/sources/boot.wim 1 boot
424 Same as above, but using the \fBwimapply\fR abbreviation:
427 wimapply /media/windows/sources/boot.wim 1 boot
430 On Windows, apply an image of an entire volume, for example from "install.wim"
431 which can be found on the Windows Vista/7/8 installation media:
434 @IMAGEX_PROGNAME@ apply install.wim 1 E:\\
437 Same as above, but running on a UNIX-like system where the corresponding
438 partition is /dev/sda2:
441 @IMAGEX_PROGNAME@ apply install.wim 1 /dev/sda2
444 Note that before running either of the above commands, an NTFS filesystem may
445 need to be created on the partition, for example with format.exe on Windows or
446 \fBmkntfs\fR(8) (part of NTFS-3g) on UNIX-like systems. For example, you might
450 mkntfs /dev/sda2 && wimapply install.wim 1 /dev/sda2
453 (Of course don't do that if you don't want to destroy all existing data on the
456 An example of applying a pipable WIM from a pipe can be found in \fBPIPABLE
457 WIMS\fR, and an example of applying a split WIM can be found in \fBSPLIT
460 .BR @IMAGEX_PROGNAME@ (1)
461 .BR @IMAGEX_PROGNAME@-capture (1)
462 .BR @IMAGEX_PROGNAME@-extract (1)
463 .BR @IMAGEX_PROGNAME@-info (1)