1WIMCAPTURE(1) User Commands WIMCAPTURE(1)
2
3
4
6 wimcapture, wimappend - Capture or append a WIM image
7
9 wimcapture SOURCE WIMFILE [IMAGE_NAME [IMAGE_DESC]] [OPTION...]
10 wimappend SOURCE WIMFILE [IMAGE_NAME [IMAGE_DESC]] [OPTION...]
11
13 The wimcapture (equivalently: wimlib-imagex capture) and wimappend
14 (equivalently: wimlib-imagex append) commands create ("capture") a new
15 Windows Imaging (WIM) image. wimcapture creates a new WIM archive WIM‐
16 FILE to contain the new image, while wimappend adds the image to the
17 existing WIM archive WIMFILE (or with --create, creating it if needed).
18
19 SOURCE specifies the location of the files from which to create the WIM
20 image. If SOURCE is a directory or a symbolic link pointing to a di‐
21 rectory, then the image is captured from that directory as per DIREC‐
22 TORY CAPTURE (UNIX) or DIRECTORY CAPTURE (WINDOWS). Alternatively, if
23 --source-list is specified, then SOURCE is interpreted as a file con‐
24 taining a list of files and directories to include in the image. Still
25 alternatively, if SOURCE is a UNIX block device, then an image is cap‐
26 tured from the NTFS volume on it as per NTFS VOLUME CAPTURE (UNIX).
27
28 IMAGE_NAME and IMAGE_DESC specify the name and description to give the
29 new image. If IMAGE_NAME is unspecified, it defaults to the filename
30 component of SOURCE, appending a unique suffix if needed. Otherwise,
31 IMAGE_NAME must be either a name not already used by an image in WIM‐
32 FILE, or the empty string to create an unnamed image. If IMAGE_DESC is
33 unspecified then the new image is given no description.
34
35 If WIMFILE is specified as "-", then the --pipable option is assumed
36 and a pipable WIM is written to standard output (this is a wimlib ex‐
37 tension).
38
40 On UNIX-like systems, if SOURCE specifies a directory or a symbolic
41 link to a directory, then the WIM image will be captured from that di‐
42 rectory. The directory can be on any type of filesystem, and mount‐
43 points are followed. In this mode, the following types of information
44 are captured:
45
46 • Directories and regular files, and the contents of regular files
47
48 • Hard links
49
50 • Symbolic links (translated losslessly to Windows reparse points)
51
52 • Last modification times (mtime) and last access times (atime) with
53 100 nanosecond granularity
54
55 • Files that appear to be sparse will be flagged as such, but their
56 full data will still be stored, subject to the usual compression.
57
58 • With --unix-data: standard UNIX file permissions (owner, group, and
59 mode)
60
61 • With --unix-data: device nodes, named pipes, and sockets
62
63 • With --unix-data: extended attributes (Linux only)
64
65 There is no support for storing last status change times (ctimes), or
66 hard link information for symlinks (each symlink will be stored as a
67 separate file). Also, filenames and symlink targets which are not
68 valid UTF-8 with the addition of surrogate codepoints are unsupported.
69 Note that if you have a filesystem containing filenames in another
70 multibyte encoding, such as ISO-8859-1, and you wish to archive it with
71 wimlib, you may be able to mount it with an option which causes its
72 filenames to be presented as UTF-8.
73
75 On UNIX-like systems, SOURCE may also be specified as a block device
76 (e.g. /dev/sda3) containing an unmounted NTFS volume. In this mode,
77 wimcapture uses libntfs-3g to capture a WIM image from root directory
78 of the NTFS volume. In this mode, as much data and metadata as possi‐
79 ble is captured, including NTFS-specific and Windows-specific metadata:
80
81 • All data streams of all unencrypted files, including the unnamed
82 data stream as well as all named data streams.
83
84 • Reparse points. See REPARSE POINTS AND SYMLINKS for details.
85
86 • File and directory creation, access, and modification timestamps,
87 using the native NTFS resolution of 100 nanoseconds.
88
89 • Windows security descriptors, including all components (owner,
90 group, DACL, and SACL).
91
92 • DOS/Windows file attribute flags.
93
94 • All names of all files, including names in the Win32 namespace, DOS
95 namespace, Win32+DOS namespace, and POSIX namespace. This includes
96 hard links.
97
98 • Object IDs.
99
100 However, the main limitations of this mode are:
101
102 • Encrypted files are excluded.
103
104 • Extended attributes (EAs) are not stored yet.
105
106 • Sparse files will be flagged as such, but their full data will
107 still be stored, subject to the usual compression.
108
109 • Some types of reparse points are transparently dereferenced by Win‐
110 dows but not by NTFS-3G. See REPARSE POINTS AND SYMLINKS.
111
112 Note that this mode uses libntfs-3g directly, without going through the
113 ntfs-3g(8) driver. Hence, there is no special support for capturing a
114 WIM image from a directory on which an NTFS filesystem has been mounted
115 using ntfs-3g(8); you have to unmount it first. There is also no sup‐
116 port for capturing a subdirectory of the NTFS volume; you can only cap‐
117 ture the full volume.
118
120 On Windows, wimcapture and wimappend natively support Windows-specific
121 and NTFS-specific data. They therefore act similarly to the corre‐
122 sponding commands of Microsoft's ImageX or DISM. For best results, the
123 directory being captured should be on an NTFS volume and the program
124 should be run with Administrator privileges; however, non-NTFS filesys‐
125 tems and running without Administrator privileges are also supported,
126 subject to limitations.
127
128 On Windows, wimcapture and wimappend try to capture as much data and
129 metadata as possible, including:
130
131 • All data streams of all files.
132
133 • Reparse points, if supported by the source filesystem. See REPARSE
134 POINTS AND SYMLINKS for details.
135
136 • File and directory creation, access, and modification timestamps.
137 These are stored with Windows' native timestamp resolution of 100
138 nanoseconds.
139
140 • Security descriptors, if supported by the source filesystem and
141 --no-acls is not specified. Note: when not running as an Adminis‐
142 trator, security descriptors may be only partially captured (see
143 --strict-acls).
144
145 • File attributes, including hidden, sparse, compressed, encrypted,
146 etc. Encrypted files will be stored in encrypted form rather than
147 in plain text. Transparently compressed files will be read as un‐
148 compressed and stored subject to the WIM's own compression. There
149 is no special handling for storing sparse files, but they are
150 likely to compress to a small size.
151
152 • DOS names (8.3) names of files; however, the failure to read them
153 is not considered an error condition.
154
155 • Hard links, if supported by the source filesystem.
156
157 • Object IDs, if supported by the source filesystem.
158
159 • Extended attributes (EAs), if supported by the source filesystem.
160
162 A "symbolic link" (or "symlink") is a special file which "points to"
163 some other file or directory. On Windows, a "reparse point" is a gen‐
164 eralization of a symlink which allows access to a file or directory to
165 be redirected in a more complex way. Windows uses reparse points to
166 implement symlinks and sometimes uses them for various other features
167 as well. Normally, applications can choose whether they want to
168 "dereference" reparse points and symlinks or not.
169
170 The default behavior of wimcapture is that reparse points and symlinks
171 are not dereferenced, meaning that the reparse points or symlinks them‐
172 selves are stored in the archive rather than the files or data they
173 point to. There is a --dereference option, but it is currently only
174 supported by the UNIX version of wimcapture on UNIX filesystems (it's
175 not yet implemented for Windows filesystems).
176
177 Windows also treats certain types of reparse points specially. For ex‐
178 ample, Windows applications reading from deduplicated, WIM-backed, or
179 system-compressed files always see the dereferenced data, even if they
180 ask not to. Therefore, wimcapture on Windows will store these files
181 dereferenced, not as reparse points. But wimcapture on UNIX in NTFS-3G
182 mode cannot dereference these files and will store them as reparse
183 points instead. This difference can be significant in certain situa‐
184 tions, e.g. when capturing deduplicated files which, to be readable af‐
185 ter extraction, require that the chunk store also be present.
186
188 --boot
189 Mark the new image as the "bootable" image of the WIM. The
190 "bootable" image is the image which the Windows bootloader will
191 use when loading Windows PE from the WIM.
192
193 --check
194 Include extra integrity information in the resulting WIM. With
195 wimappend, also check the integrity of the WIM before appending
196 to it. Also verify the integrity of any WIMs specified by --up‐
197 date-of and/or --delta-from.
198
199 --include-integrity
200 Include extra integrity information in the resulting WIM, i.e.
201 like --check but don't do any verification beforehand.
202
203 --compress=TYPE[:LEVEL]
204 With wimcapture, use the specified compression format in the new
205 WIM file. TYPE may be "none", "XPRESS" (alias: "fast"), "LZX"
206 (alias: "maximum"), or "LZMS" (alias: "recovery"). TYPE is
207 matched case-insensitively. The default is "LZX".
208
209 You can optionally also specify an integer compression LEVEL.
210 The compression level specifies how hard the compression algo‐
211 rithm for the specified compression TYPE will work to compress
212 the data. The values are scaled so that 20 is quick compression,
213 50 is medium compression, and 100 is high compression. However,
214 you can choose any value and not just these particular values.
215 The default is 50.
216
217 This option only affects the compression type used in non-solid
218 WIM resources. If you are creating a solid WIM (using the
219 --solid option), then you probably want --solid-compress instead.
220
221 Be careful if you choose LZMS compression. It is not compatible
222 with wimlib before v1.6.0, WIMGAPI before Windows 8, DISM before
223 Windows 8.1, and 7-Zip before v15.12. Also note that choosing
224 LZMS compression does not automatically imply solid-mode compres‐
225 sion, as it does with DISM. Use --solid if you want to create a
226 solid WIM, or "ESD file".
227
228 --chunk-size=SIZE
229 With wimcapture, use a compression chunk size of SIZE bytes. A
230 larger compression chunk size results in a better compression ra‐
231 tio. wimlib supports different chunk sizes depending on the com‐
232 pression type:
233
234 • XPRESS: 4K, 8K, 16K, 32K, 64K
235
236 • LZX: 32K, 64K, 128K, 256K, 512K, 1M, 2M
237
238 • LZMS: 32K, 64K, 128K, 256K, 512K, 1M, 2M, 4M, 8M, 16M, 32M,
239 64M, 128M, 256M, 512M, 1G
240
241 You can provide the full number (e.g. 32768), or you can use one
242 of the K, M, or G suffixes. KiB, MiB, and GiB are also accepted.
243
244 This option only affects the chunk size used in non-solid WIM re‐
245 sources. If you are creating a solid WIM (using the --solid op‐
246 tion), then you probably want --solid-chunk-size instead.
247
248 Use this option with caution if compatibility with Microsoft's
249 WIM software is desired, since their software has limited support
250 for non-default chunk sizes.
251
252 --solid
253 With wimcapture, create a "solid" WIM file that compresses files
254 together rather than independently. This results in a signifi‐
255 cantly better compression ratio, but it comes at the cost of slow
256 compression with very high memory usage, reduced compatibility,
257 and slow random access to the resulting WIM file.
258
259 By default this enables solid LZMS compression, thereby creating
260 a file equivalent to one created with DISM's /compress:recovery
261 option. Such files are also called "ESD files" and were first
262 supported by WIMGAPI in Windows 8, by DISM in Windows 8.1, and by
263 7-Zip 15.12.
264
265 --solid-compress=TYPE[:LEVEL]
266 Like --compress, but set the compression type used in solid re‐
267 sources. The default is LZMS compression. This option only has
268 an effect when --solid is also specified.
269
270 --solid-chunk-size=SIZE
271 Like --chunk-size, but set the chunk size used in solid re‐
272 sources. The default, assuming LZMS compression, is 64MiB
273 (67108864); this requires about 640MiB of memory per thread.
274 This option only has an effect when --solid is also specified.
275 Note: Microsoft's WIM software is not compatible with LZMS chunk
276 sizes larger than 64MiB.
277
278 --threads=NUM_THREADS
279 Number of threads to use for compressing data. Default: autode‐
280 tect (number of available CPUs).
281
282 --rebuild
283 With wimappend, rebuild the entire WIM rather than appending the
284 new data to the end of it. Rebuilding the WIM is slower, but
285 will save some space that would otherwise be left as a hole in
286 the WIM. Also see wimoptimize(1).
287
288 --flags=EDITIONID
289 Specify a string to use in the <FLAGS> element of the XML data
290 for the new image.
291
292 --image-property NAME=VALUE
293 Assign an arbitrary property to the new image in the XML document
294 of the WIM. VALUE is the string to set as the property value.
295 NAME is the name of the image property, for example "NAME", "DE‐
296 SCRIPTION", or "TOTALBYTES". The name can contain forward
297 slashes to indicate a nested XML element; for example, "WIN‐
298 DOWS/VERSION/BUILD" indicates the BUILD element nested within the
299 VERSION element nested within the WINDOWS element. A bracketed
300 number can be used to indicate one of several identically-named
301 elements; for example, "WINDOWS/LANGUAGES/LANGUAGE[2]" indicates
302 the second "LANGUAGE" element nested within the "WINDOWS/LAN‐
303 GUAGES" element. When adding a list of elements in this way,
304 they must be specified in sequential order. Note that element
305 names are case-sensitive. This option may be specified multiple
306 times.
307
308 --dereference
309 (UNIX-like systems only) Follow symbolic links and archive the
310 files they point to, rather than archiving the links themselves.
311
312 --config=FILE
313 Specifies a configuration file (UTF-8 or UTF-16LE encoded; plain
314 ASCII also works) for capturing the new image. The configuration
315 file specifies files that are to be treated specially during the
316 image capture.
317
318 The format of the configuration file is INI-style; that is, it is
319 arranged in bracketed sections. Currently, the following sec‐
320 tions are recognized:
321
322 • [ExclusionList] --- contains a list of path globs to exclude
323 from capture. If a directory is matched, both the directory
324 and its contents are excluded.
325
326 • [ExclusionException] --- contains a list of path globs to in‐
327 clude, even when the file or directory also matches a glob in
328 [ExclusionList]. If a directory is matched, then all its
329 contents are included as well. Files or directories within a
330 directory excluded by [ExclusionList] may even be included
331 using this, though currently it only works for absolute globs
332 (those that begin with "/" or "\"); for example, "/dir/file"
333 can be included while "/dir" can be excluded, but including
334 simply "file" won't work in that case.
335
336 • [PrepopulateList] --- this does not affect capture, but if
337 the image is applied later with --wimboot, these are globs of
338 files that shall be extracted normally, not as WIMBoot
339 "pointer files". If a directory is matched, all files and
340 subdirectories are also matched recursively.
341
342 Path globs may contain the '*' and '?' meta-characters. Relative
343 globs (e.g. *.mp3) match against a filename in any directory.
344 Absolute globs (e.g. /dir/file), are treated as paths starting
345 at the main directory being captured, or the root of the NTFS
346 volume for NTFS volume capture mode. Do not use drive letters in
347 the paths; they will be ignored. Path separators may be either
348 forwards slashes or backwards slashes.
349
350 Lines beginning with the '#' or ';' characters are treated as
351 comments and ignored. Globs with whitespace in them need not be
352 quoted; however, if they are, both double and single quotes are
353 accepted.
354
355 If this option is not specified the following default configura‐
356 tion file is used:
357
358
359 [ExclusionList]
360 \$ntfs.log
361 \hiberfil.sys
362 \pagefile.sys
363 \swapfile.sys
364 \System Volume Information
365 \RECYCLER
366 \$RECYCLE.BIN
367 \$Recycle.Bin
368 \Windows\CSC
369
370 However, special behavior applies if --wimboot is also specified.
371 By default, with --wimboot specified, the file Windows/Sys‐
372 tem32/WimBootCompress.ini in the directory being captured will be
373 used as the configuration file. However, this can be overridden
374 using --config; and this also causes the specified configuration
375 file to be saved in the WIM image as Windows/System32/WimBootCom‐
376 press.ini, overriding any that may be present on the filesystem.
377
378 --unix-data
379 (UNIX-like systems only) Store UNIX-specific metadata and spe‐
380 cial files. This includes: standard UNIX file permissions
381 (owner, group, and mode); device nodes, named pipes, and sockets;
382 and extended attributes (Linux only). This information can later
383 be restored by wimapply with the --unix-data option.
384
385 UNIX-specific information is ignored by Microsoft's WIM software
386 and by the Windows version of wimlib.
387
388 --no-acls
389 Do not capture files' security descriptors.
390
391 --strict-acls
392 Fail immediately if the full security descriptor of any file can‐
393 not be read. On Windows, the default behavior without this op‐
394 tion is to first try omitting the SACL from the security descrip‐
395 tor, then to try omitting the security descriptor entirely. The
396 purpose of this is to capture as much data as possible without
397 always requiring Administrator privileges. However, if you de‐
398 sire that all security descriptors be captured exactly, you may
399 wish to provide this option, although the Administrator should
400 have permission to read everything anyway.
401
402 --rpfix, --norpfix
403 Set whether to fix targets of absolute symbolic links (reparse
404 points in Windows terminology) or not. When enabled (--rpfix),
405 absolute symbolic links that point inside the directory tree be‐
406 ing captured will be adjusted to be absolute relative to the root
407 of the directory tree being captured. When disabled (--norpfix),
408 absolute symbolic links will be captured exactly as is.
409
410 The default behavior of wimcapture is equivalent to --rpfix. The
411 default behavior of wimappend is equivalent to --rpfix if reparse
412 point fixups have previously been done on WIMFILE, otherwise
413 --norpfix.
414
415 In the case of a multi-source capture, (--source-list specified),
416 passing --norpfix is recommended. Otherwise, reparse point fix‐
417 ups will be disabled on all capture sources destined for non-root
418 locations in the WIM image, while capture sources destined for
419 the WIM root will get the default behavior from the previous
420 paragraph.
421
422 --source-list
423 wimcapture and wimappend support creating a WIM image from multi‐
424 ple separate files or directories. When --source-list is speci‐
425 fied, the SOURCE argument specifies the name of a text file, each
426 line of which is either 1 or 2 whitespace separated file paths.
427 The first file path, the source, specifies the path to a file or
428 directory to capture into the WIM image. It may be either abso‐
429 lute or relative to the current working directory. The second
430 file path, if provided, is the target and specifies the path in
431 the WIM image that this file or directory will be saved as.
432 Leading and trailing slashes in the target are ignored, except if
433 it consists entirely of slashes (e.g. "/"), which indicates that
434 the directory is to become the root of the WIM image. If omit‐
435 ted, the target string defaults to the same as the source string.
436
437 An example source list file is as follows:
438
439
440 # Make the WIM image from the 'winpe' directory
441 winpe /
442
443 # Send the 'overlay' directory to '/overlay' in the WIM image
444 overlay /overlay
445
446 # Overlay a separate directory directly on the root of the WIM image.
447 /data/stuff /
448
449 Subdirectories in the WIM are created as needed. Multiple source
450 directories may share the same target, which implies an overlay.
451 In the event that this results a nondirectory file being added to
452 the WIM image multiple times, the last version (as listed in the
453 source list file) overrides any earlier version.
454
455 File paths containing whitespace may be quoted with either single
456 quotes or double quotes. Quotes may not be escaped.
457
458 Lines consisting only of whitespace and lines beginning with '#'
459 preceded by optional whitespace are ignored.
460
461 As a special case, if SOURCE is "-", the source list is read from
462 standard input rather than an external file.
463
464 The NTFS volume capture mode on UNIX-like systems cannot be used
465 with --source-list, as only capturing a full NTFS volume is sup‐
466 ported.
467
468 --pipable
469 With wimcapture, create a wimlib-specific "pipable" WIM which can
470 be captured and applied fully sequentially. If WIMFILE is speci‐
471 fied as "-", then the pipable WIM is written directly to standard
472 output; otherwise, it is written to disk as usual. The image in
473 the pipable WIM can be later be applied with wimapply, either
474 from disk or from standard input. A typical use of pipable WIMs
475 might involve streaming the WIM image to a remote server when
476 capturing it and/or streaming the WIM image from a remote server
477 when applying it.
478
479 Generally, all the wimlib-imagex commands work on both pipable
480 and non-pipable WIMs. wimoptimize and wimexport may also be used
481 to convert between pipable WIMs and non-pipable WIMs. However,
482 there are a few limitations of pipable WIMs:
483
484 • Pipable WIMs are a wimlib extension which are not compatible
485 with Microsoft's WIM software or with other programs such as
486 7-Zip.
487
488 • Using wimappend, multiple images may be added to a pipable
489 WIM. This is supported, though it is less efficient than do‐
490 ing so with non-pipable WIMs because a pipable WIM is fully
491 rebuilt each time it is appended to; and when piping such a
492 WIM to wimapply to extract an image, some unneeded data will
493 be sent over the pipe.
494
495 • Although a pipable WIM image may be updated using wimupdate,
496 it requires a full rebuild of the WIM file, making it less
497 efficient than updating a non-pipable WIM.
498
499 • Solid pipable WIMs are not yet supported.
500
501 --not-pipable
502 With wimappend, rebuild the WIM file in the non-pipable (regular)
503 format. This option is only useful if you happen to be adding an
504 image to a pipable WIM (see --pipable) which you want in non-pi‐
505 pable format instead. Note that wimoptimize(1) can also be used
506 to convert between non-pipable and pipable WIMs.
507
508 --update-of=[WIMFILE:]IMAGE
509 Hint that the image being captured or appended from SOURCE is
510 mostly the same as the existing image IMAGE in WIMFILE, but cap‐
511 tured at a later point in time, possibly with some modifications
512 in the intervening time. This is designed to be used in incre‐
513 mental backups of the same filesystem or directory tree. IMAGE
514 can be a 1-based index or name of an existing image in WIMFILE.
515 It can also be a negative integer to index backwards into the im‐
516 ages (e.g. -1 means the last existing image in WIMFILE).
517
518 When this option is provided, the capture or append of the new
519 image will be optimized by not reading files that, based on meta‐
520 data such as timestamps, appear not to have been modified since
521 they were archived in the existing IMAGE. Barring manipulation
522 of timestamps, this option only affects performance and does not
523 change the resulting WIM image (but see note below).
524
525 As shown, the full syntax for the argument to this option is to
526 specify the WIM file, a colon, and the image; for example, "--up‐
527 date-of mywim.wim:1". However, the WIM file and colon may be
528 omitted if --delta-from is specified exactly once, in which case
529 the WIM defaults to that specified in --delta-from, or if the op‐
530 eration is wimappend rather wimcapture, in which case the WIM de‐
531 faults to the one being appended to.
532
533 Note: in the Windows version of wimlib, it has been observed that
534 --update-of mode is not completely reliable at detecting changes
535 in file contents, sometimes causing the old contents of a few
536 files to be archived rather than the current contents. The cause
537 of this problem is that Windows does not immediately update a
538 file's last modification timestamp after every write to that
539 file. Unfortunately, there is no known way for applications like
540 wimlib to automatically work around this bug. Manual workarounds
541 are possible; theoretically, taking any action that causes the
542 problematic files to be closed, such as restarting applications
543 or the computer itself, should cause the files' last modification
544 timestamps to be updated. Also note that wimlib compares file
545 sizes as well as timestamps in determining whether a file has
546 changed, which helps make the problem less likely to occur; and
547 the problem does not occur on other operating systems such as
548 Linux which maintain files' last modification timestamps cor‐
549 rectly.
550
551 --delta-from=WIMFILE
552 Capture or append the new image as a "delta" from WIMFILE. Any
553 file data that would ordinarily need to be archived in the new or
554 updated WIM is omitted if it is already present in the WIMFILE on
555 which the delta is being based. The resulting WIM will still
556 contain a full copy of the image metadata, but this is typically
557 only a small fraction of a WIM's total size.
558
559 This option can be specified multiple times, in which case the
560 resulting delta WIM will only contain file data not present in
561 any of the specified base WIMs.
562
563 To operate on the resulting delta WIM using other commands such
564 as wimapply, you must specify the delta WIM as the WIM file to
565 operate on, but also reference the base WIM(s) using the --ref
566 option. Beware: to retain the proper functioning of the delta
567 WIM, you can only add, not delete, files and images to the base
568 WIM(s) following the capture of a delta from it.
569
570 --delta-from may be combined with --update-of to increase the
571 speed of capturing a delta WIM.
572
573 As an example, consider the following backup and restore se‐
574 quence:
575
576
577 (initial backup)
578
579 $ wimcapture /some/directory bkup-base.wim
580
581 (some days later, create second backup as delta from first)
582
583 $ wimcapture /some/directory bkup-2013-08-20.dwm \
584 --update-of bkup-base.wim:-1 --delta-from bkup-base.wim
585
586 (restoring the second backup)
587
588 $ wimapply bkup-2013-08-20.dwm --ref=bkup-base.wim 1 \
589 /some/directory
590
591 However, note that as an alternative to the above sequence that
592 used a delta WIM, the second backup could have simply been ap‐
593 pended to the WIM as new image using wimappend. Delta WIMs
594 should be used only if it's desired to base the backups or images
595 on a separate, large file that is rarely modified.
596
597 --delta-from is supported by both wimcapture and wimappend.
598
599 Delta WIMs are compatible with Microsoft's WIM software. For ex‐
600 ample, you can use the /ref option of ImageX to reference the
601 base WIM(s), similar to above.
602
603 Additional note: wimlib is generalized enough that you can in
604 fact combine --pipable and --delta-from to create pipable delta
605 WIMs. In such cases, the base WIM(s) must be captured as pipable
606 as well as the delta WIM, and when applying an image, the base
607 WIM(s) must be sent over the pipe after the delta WIM.
608
609 --wimboot
610 Mark the image as WIMBoot-compatible. See Microsoft's documenta‐
611 tion for more information about WIMBoot. With wimcapture this
612 option will set the compression type to XPRESS and the chunk size
613 to 4096 bytes; these can, however, still be overridden through
614 the --compress and --chunk-size parameters, respectively. In ad‐
615 dition, this option will set the configuration file to
616 SOURCE\Windows\System32\WimBootCompress.ini if present and acces‐
617 sible; however, this may still be overridden through the --config
618 parameter.
619
620 --unsafe-compact
621 With wimappend, compact the WIM archive in-place and append any
622 new data, eliminating "holes". This is efficient, but in general
623 this option should not be used because a failed or interrupted
624 compaction will corrupt the WIM archive. For more information,
625 see the documentation for this option to wimoptimize(1).
626
627 --snapshot
628 Create a temporary filesystem snapshot of the source directory
629 and capture the files from it. Currently, this option is only
630 supported on Windows, where it uses the Volume Shadow Copy Ser‐
631 vice (VSS). Using this option, you can create a consistent
632 backup of the system volume of a running Windows system without
633 running into problems with locked files. For the VSS snapshot to
634 be successfully created, wimlib-imagex must be run as an Adminis‐
635 trator, and it cannot be run in WoW64 mode (i.e. if Windows is
636 64-bit, then wimlib-imagex must be 64-bit as well).
637
638 --create
639 With wimappend, if the WIM file doesn't exist yet, then create it
640 (like wimcapture).
641
643 wimappend does not support appending an image to a split WIM.
644
645 Except when using --unsafe-compact, it is safe to abort a wimappend
646 command partway through; however, after doing this, it is recommended
647 to run wimoptimize to remove any data that was appended to the physical
648 WIM file but not yet incorporated into the structure of the WIM, unless
649 the WIM was being fully rebuilt (e.g. with --rebuild), in which case
650 you should delete the temporary file left over.
651
652 wimlib-imagex creates WIMs compatible with Microsoft's software (WIM‐
653 GAPI, ImageX, DISM), with some caveats:
654
655 • With wimlib-imagex on UNIX-like systems, it is possible to create a
656 WIM image containing files with names differing only in case, or
657 files with names containing the characters ':', '*', '?', '"', '<',
658 '>', '|', or '\', which are valid on POSIX-compliant filesystems
659 but not Windows. Be warned that such files will not be extracted
660 by default by the Windows version of wimlib-imagex, and (even
661 worse) Microsoft's ImageX can be confused by such names and quit
662 extracting the image partway through.
663
664 • Pipable WIMs are incompatible with Microsoft's software. Pipable
665 WIMs are created only if WIMFILE was specified as "-" (standard
666 output) or if the --pipable flag was specified.
667
668 • WIMs captured with a non-default chunk size (with the --chunk-size
669 option) or as solid archives (with the --solid option) or with LZMS
670 compression (with --compress=LZMS or --compress=recovery) have
671 varying levels of compatibility with Microsoft's software. Gener‐
672 ally, more recent versions of Microsoft's software are more compat‐
673 ible.
674
676 First example: Create a new WIM 'mywim.wim' with LZX ("maximum") com‐
677 pression that will contain a captured image of the directory tree
678 'somedir'. Note that the image name need not be specified and will de‐
679 fault to 'somedir':
680
681 wimcapture somedir mywim.wim
682
683 Next, append the image of a different directory tree to the WIM created
684 above:
685
686 wimappend anotherdir mywim.wim
687
688 Easy enough, and the above examples of imaging directory trees work on
689 both UNIX-like systems and Windows. Next, capture a WIM with several
690 non-default options, including XPRESS ("fast") compression, extra in‐
691 tegrity information, no messing with absolute symbolic links, and an
692 image name and description:
693
694 wimcapture somedir mywim.wim --compress=fast \
695 --check --norpfix "Some Name" "Some Description"
696
697 On a UNIX-like system, capture a full NTFS volume into a new WIM using
698 the NTFS VOLUME CAPTURE (UNIX) mode, and name the image "Windows 7":
699
700 wimcapture /dev/sda2 windows7.wim "Windows 7"
701
702 or, on Windows, to capture a full NTFS volume you instead need to spec‐
703 ify the root directory of the mounted volume, for example:
704
705 wimcapture E:\ windows7.wim "Windows 7"
706
707 Same as UNIX example above, but capture the WIM in the wimlib-specific
708 "pipable" format that can be piped to wimapply:
709
710 wimcapture /dev/sda2 windows7.wim "Windows 7" --pipable
711
712 Same as above, but instead of writing the pipable WIM to the file "win‐
713 dows7.wim", write it directly to standard output through a pipe into
714 some other program "someprog", which could, for example, be a program
715 or script that streams the data to a server:
716
717 wimcapture /dev/sda2 - "Windows 7" | someprog
718
720 wimlib-imagex(1), wimapply(1) wimoptimize(1)
721
722
723
724wimlib 1.14.3 September 2023 WIMCAPTURE(1)