wimlib-imagex documentation updates
[wimlib] / doc / imagex.1.in
1 .TH WIMLIB-IMAGEX 1 "August 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands"
2 .SH NAME
3 @IMAGEX_PROGNAME@ \- Create, modify, extract, mount, or unmount a WIM (Windows Imaging Format) archive
4 .SH SYNOPSIS
5 \fB@IMAGEX_PROGNAME@ append\fR \fIarguments...\fR
6 .br
7 \fB@IMAGEX_PROGNAME@ apply\fR \fIarguments...\fR
8 .br
9 \fB@IMAGEX_PROGNAME@ capture\fR \fIarguments...\fR
10 .br
11 \fB@IMAGEX_PROGNAME@ delete\fR \fIarguments...\fR
12 .br
13 \fB@IMAGEX_PROGNAME@ dir\fR \fIarguments...\fR
14 .br
15 \fB@IMAGEX_PROGNAME@ export\fR \fIarguments...\fR
16 .br
17 \fB@IMAGEX_PROGNAME@ extract\fR \fIarguments...\fR
18 .br
19 \fB@IMAGEX_PROGNAME@ info\fR \fIarguments...\fR
20 .br
21 \fB@IMAGEX_PROGNAME@ join\fR \fIarguments...\fR
22 .br
23 \fB@IMAGEX_PROGNAME@ mount\fR \fIarguments...\fR
24 .br
25 \fB@IMAGEX_PROGNAME@ mountrw\fR \fIarguments...\fR
26 .br
27 \fB@IMAGEX_PROGNAME@ optimize\fR \fIarguments...\fR
28 .br
29 \fB@IMAGEX_PROGNAME@ split\fR \fIarguments...\fR
30 .br
31 \fB@IMAGEX_PROGNAME@ unmount\fR \fIarguments...\fR
32 .br
33 \fB@IMAGEX_PROGNAME@ update\fR \fIarguments...\fR
34 .SH DESCRIPTION
35 \fB@IMAGEX_PROGNAME@\fR is able to deal with archives in the Windows Imaging
36 Format (.wim files). Its interface is meant to be similar to Microsoft's
37 imagex.exe program.
38 .PP
39 To do its work, \fB@IMAGEX_PROGNAME@\fR uses \fBwimlib\fR, a library which
40 provides interfaces for manipulating WIM archives.  You could wimlib in your own
41 programs if you wanted to.  wimlib's public interface is documented.
42 .SH COMMANDS
43 The available commands were listed above, and there is a separate manual page
44 for each.  Note: to save typing, if the appropriate hard links are installed, a
45 command \fB@IMAGEX_PROGNAME@ \fICOMMAND\fR can be accessed as simply
46 \fBwim\fICOMMAND\fR; for example, \fBwimapply\fR for
47 \fB@IMAGEX_PROGNAME@ apply\fR.
48 .SH SUPPORTED FEATURES
49 The following general features are currently supported (note: this is not a
50 complete list; also, certain features, such as mounting, are supported on UNIX
51 but not Windows):
52 .IP \[bu] 4
53 Create a stand-alone WIM from a directory or NTFS volume (\fB@IMAGEX_PROGNAME@ capture\fR)
54 .IP \[bu]
55 Capture a WIM image directly to standard output in a special pipable format
56 (\fB@IMAGEX_PROGNAME@ capture\fR)
57 .IP \[bu]
58 Append a directory or NTFS volume onto a stand-alone WIM as a new image (\fB@IMAGEX_PROGNAME@
59 append\fR)
60 .IP \[bu]
61 Apply an image from a stand-alone or split WIM to a directory or NTFS volume
62 (\fB@IMAGEX_PROGNAME@ apply\fR)
63 .IP \[bu]
64 Apply an image from a special pipable WIM format sent over standard input
65 (\fB@IMAGEX_PROGNAME@ apply\fR)
66 .IP \[bu]
67 Mount an image from a stand-alone or split WIM read-only (\fB@IMAGEX_PROGNAME@ mount\fR)
68 .IP \[bu]
69 Mount an image from a stand-alone WIM read-write (\fB@IMAGEX_PROGNAME@ mountrw\fR)
70 .IP \[bu]
71 Extract individual files or directories from a WIM without mounting it
72 (\fB@IMAGEX_PROGNAME@ extract\fR)
73 .IP \[bu]
74 Make changes to a WIM image without mounting it (\fB@IMAGEX_PROGNAME@ update\fR)
75 .IP \[bu]
76 Delete image(s) from a stand-alone WIM (\fB@IMAGEX_PROGNAME@ delete\fR)
77 .IP \[bu]
78 Export image(s) from a stand-alone or split WIM (\fB@IMAGEX_PROGNAME@ export\fR)
79 .IP \[bu]
80 Display information about a WIM file (\fB@IMAGEX_PROGNAME@ info\fR, \fB@IMAGEX_PROGNAME@ dir\fR)
81 .IP \[bu]
82 Change the name or description of an image in the WIM (\fB@IMAGEX_PROGNAME@ info\fR)
83 .IP \[bu]
84 Change which image in a WIM is bootable (\fB@IMAGEX_PROGNAME@ info\fR)
85 .IP \[bu]
86 Combine split WIMs into one stand-alone WIM (\fB@IMAGEX_PROGNAME@ join\fR)
87 .IP \[bu]
88 Split a stand-alone WIM into multiple parts (\fB@IMAGEX_PROGNAME@ split\fR)
89 .IP \[bu]
90 Support for all WIM compression types, both compression and decompression (LZX,
91 XPRESS, and none)
92 .IP \[bu]
93 WIM integrity table is supported (\fB--check\fR option to many commands)
94 .IP \[bu]
95 WIM XML data (parsed and written using \fBlibxml\fR(3))
96 .SH DIFFERENCES FROM MICROSOFT IMAGEX
97 Although \fB@IMAGEX_PROGNAME@\fR is similar to Microsoft's implementation of
98 ImageX, there are a number of key differences between the two programs:
99 .IP \[bu] 6
100 \fB@IMAGEX_PROGNAME@\fR is supported on both UNIX-based systems and Windows;
101 thus, much functionality was designed around this.
102 .IP \[bu]
103 The command-line syntax of the two programs is similar but not exactly the same.
104 .IP \[bu]
105 As of wimlib v1.5.0, for convenience \fB@IMAGEX_PROGNAME@\fR automatically
106 preserves the integrity table in WIMs that have one, even when \fB--check\fR is
107 not specified.
108 .IP \[bu]
109 As of wimlib v1.5.0, a special "pipable" WIM format that is not compatible with
110 Microsoft's software is supported.  This allows capturing and applying images
111 directly to standard output or from standard input, respectively; this can be
112 used to pipe images to or from a server over the network to implement fast
113 filesystem imaging and restore.
114 .IP \[bu]
115 On UNIX, because Microsoft designed the WIM file format to accomodate
116 Windows-specific and NTFS-specific features, wimlib must have two separate image
117 capture and application modes (although the \fB@IMAGEX_PROGNAME@\fR subcommands
118 for the modes are the same): one for general image capture and application, and
119 one for the capture or application of an image specifically from/to an NTFS
120 volume.
121 .IP ""
122 Note: the above applies to UNIX builds of \fB@IMAGEX_PROGNAME@\fR.  On the
123 Windows build, there is only one image capture and application mode, similar to
124 Microsoft's ImageX.
125 .IP \[bu]
126 Microsoft's version has some weird limitations, like it won't let you extract a
127 WIM on a shared folder, and it requires some commands to be run only from
128 Windows PE and not from regular Windows.  \fB@IMAGEX_PROGNAME@\fR does not have
129 these unusual limitations.
130 .IP \[bu]
131 There are bugs in Microsoft's WIM library and I obviously have not included the
132 same bugs in wimlib, although in some cases I have had to work around bugs for
133 compatibility purposes.
134 .IP \[bu]
135 \fB@IMAGEX_PROGNAME@\fR offers the extra command \fB@IMAGEX_PROGNAME@ optimize\fR,
136 which lets you easily remove wasted space in a WIM (which can arise after
137 a WIM image is appended or mounted read-write).
138 .IP \[bu]
139 \fB@IMAGEX_PROGNAME@\fR also offers the command \fB@IMAGEX_PROGNAME@ join\fR, which lets you
140 easily join the parts of a split WIM.
141 .IP \[bu]
142 \fB@IMAGEX_PROGNAME@\fR offers the extra commands \fB@IMAGEX_PROGNAME@
143 extract\fR and \fB@IMAGEX_PROGNAME@ update\fR, which let you quickly extract
144 files from or make changes to a WIM image without mounting it.
145 .IP \[bu]
146 \fB@IMAGEX_PROGNAME@ apply\fR supports keeping files hard-linked or symlinked
147 across WIM images when extracted from a WIM.  So you can, for example, extract
148 different versions of Windows from an install.wim without using much extra
149 space.  (Note: this functionality is only available in UNIX builds of wimlib.)
150 .IP \[bu]
151 \fB@IMAGEX_PROGNAME@ capture\fR supports combining multiple separate directories
152 and files together in a configurable way to create a WIM image.
153 .IP \[bu]
154 wimlib's XPRESS compressor is better than Microsoft's.
155 .IP \[bu]
156 wimlib's LZX compressor is worse than Microsoft's.
157 .IP \[bu]
158 wimlib supports multithreaded compression, which can make it much faster to
159 create compressed WIM files.
160 .IP \[bu]
161 \fB@IMAGEX_PROGNAME@ capture\fR supports a special mode where UNIX file modes,
162 owners, and groups are stored.  (Note: this functionality is only available in
163 UNIX builds.)
164 .IP \[bu]
165 \fB@IMAGEX_PROGNAME@ mount\fR and \fB@IMAGEX_PROGNAME@ mountrw\fR are much faster than
166 Microsoft's versions for some reason.  I don't know what they have their program
167 do that takes so long to simply set up a mountpoint.  (Note: this functionality
168 is only available in UNIX builds.)
169 .IP \[bu]
170 \fB@IMAGEX_PROGNAME@ mount\fR supports mounting an image from a split WIM, but
171 Microsoft's software does not.  (Note: this functionality is only available in
172 UNIX builds.)
173 .SH LOCALES AND CHARACTER ENCODINGS
174 On Windows, wimlib works in UTF-16LE, and there should be no problems with
175 character encodings.
176 .PP
177 On UNIX, wimlib works primarily in the locale-dependent multibyte encoding,
178 which you are strongly recommended to set to UTF-8 to avoid any problems.
179 .SH CASE SENSITIVITY
180 The case sensitivity of \fB@IMAGEX_PROGNAME@\fR differs somewhat between UNIX
181 and Windows.  \fB@IMAGEX_PROGNAME@\fR internally treats filenames as
182 case-sensitive, but on Windows it will treat paths actually provided by the user
183 as case-insensitive in order to get the "expected" behavior.  Otherwise, options
184 and non-path arguments should be specified in lower case.
185 .SH WARNING
186 Note: \fBwimlib\fR and \fB@IMAGEX_PROGNAME@\fR are experimental.  Use Microsoft's
187 imagex.exe if you have to make sure your WIM files are made "correctly".  Feel
188 free to submit a bug report if you find a bug.
189 .PP
190 Some parts of the WIM file format are poorly documented or even completely
191 undocumented, so I've just had to do the best I can to read and write WIMs in a
192 way that appears to be compatible with Microsoft's software.
193 .SH REPORTING BUGS
194 Report bugs to ebiggers3@gmail.com.
195 .SH SEE ALSO
196 .BR @IMAGEX_PROGNAME@-append (1),
197 .BR @IMAGEX_PROGNAME@-apply (1),
198 .BR @IMAGEX_PROGNAME@-capture (1),
199 .BR @IMAGEX_PROGNAME@-delete (1),
200 .BR @IMAGEX_PROGNAME@-dir (1),
201 .BR @IMAGEX_PROGNAME@-export (1),
202 .BR @IMAGEX_PROGNAME@-extract (1),
203 .BR @IMAGEX_PROGNAME@-info (1),
204 .BR @IMAGEX_PROGNAME@-join (1),
205 .BR @IMAGEX_PROGNAME@-mount (1),
206 .BR @IMAGEX_PROGNAME@-mountrw (1),
207 .BR @IMAGEX_PROGNAME@-optimize (1),
208 .BR @IMAGEX_PROGNAME@-split (1),
209 .BR @IMAGEX_PROGNAME@-unmount (1),
210 .BR @IMAGEX_PROGNAME@-update (1),