Allow "imagex" to be renamed (default: wimlib-imagex)
[wimlib] / doc / imagex.1.in
1 .TH IMAGEX 1 "March 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@ info\fR \fIarguments...\fR
18 .br
19 \fB@IMAGEX_PROGNAME@ join\fR \fIarguments...\fR
20 .br
21 \fB@IMAGEX_PROGNAME@ mount\fR \fIarguments...\fR
22 .br
23 \fB@IMAGEX_PROGNAME@ mountrw\fR \fIarguments...\fR
24 .br
25 \fB@IMAGEX_PROGNAME@ optimize\fR \fIarguments...\fR
26 .br
27 \fB@IMAGEX_PROGNAME@ split\fR \fIarguments...\fR
28 .br
29 \fB@IMAGEX_PROGNAME@ unmount\fR \fIarguments...\fR
30
31 .SH DESCRIPTION
32 \fB@IMAGEX_PROGNAME@\fR is able to deal with archives in the Windows Imaging Format (.wim
33 files). Its interface is meant to be similar to Microsoft's imagex.exe program.
34
35 To do its work, \fB@IMAGEX_PROGNAME@\fR uses \fBwimlib\fR, a library which provides
36 interfaces for manipulating WIM archives.  You could wimlib in your own programs
37 if you wanted to.  wimlib's public interface is documented.
38
39 .SH COMMANDS
40
41 There is a separate manual page for each \fB@IMAGEX_PROGNAME@\fR command.
42
43 .SH SUPPORTED FEATURES
44
45 The following general features are currently supported (note: this is not a
46 complete list):
47
48 .IP \[bu] 3
49 Create a stand-alone WIM from a directory or NTFS volume (\fB@IMAGEX_PROGNAME@ capture\fR)
50 .IP \[bu]
51 Append a directory or NTFS volume onto a stand-alone WIM as a new image (\fB@IMAGEX_PROGNAME@
52 append\fR)
53 .IP \[bu]
54 Apply an image from a stand-alone or split WIM to a directory or NTFS volume
55 (\fB@IMAGEX_PROGNAME@ apply\fR)
56 .IP \[bu]
57 Mount an image from a stand-alone or split WIM read-only (\fB@IMAGEX_PROGNAME@ mount\fR)
58 .IP \[bu]
59 Mount an image from a stand-alone WIM read-write (\fB@IMAGEX_PROGNAME@ mountrw\fR)
60 .IP \[bu]
61 Delete image(s) from a stand-alone WIM (\fB@IMAGEX_PROGNAME@ delete\fR)
62 .IP \[bu]
63 Export image(s) from a stand-alone or split WIM (\fB@IMAGEX_PROGNAME@ export\fR)
64 .IP \[bu]
65 Display information about a WIM file (\fB@IMAGEX_PROGNAME@ info\fR, \fB@IMAGEX_PROGNAME@ dir\fR)
66 .IP \[bu]
67 Change the name or description of an image in the WIM (\fB@IMAGEX_PROGNAME@ info\fR)
68 .IP \[bu]
69 Change which image in a WIM is bootable (\fB@IMAGEX_PROGNAME@ info\fR)
70 .IP \[bu]
71 Combine split WIMs into one stand-alone WIM (\fB@IMAGEX_PROGNAME@ join\fR)
72 .IP \[bu]
73 Split a stand-alone WIM into multiple parts (\fB@IMAGEX_PROGNAME@ split\fR)
74 .IP \[bu]
75 Support for all WIM compression types, both compression and decompression (LZX,
76 XPRESS, and none)
77 .IP \[bu]
78 WIM integrity table is supported (\fB--check\fR option to many commands)
79 .IP \[bu]
80 WIM XML data (parsed and written using \fBlibxml\fR(3))
81
82 .SH DIFFERENCES FROM MICROSOFT IMAGEX
83
84 While similar to Microsoft's "imagex.exe" program, this program is designed for
85 UNIX-based systems and by the nature of the platform cannot be exactly the same
86 as Microsoft's version.  In addition, I have added additional useful features
87 when appropriate.
88
89 .IP \[bu] 4
90 Because Microsoft designed the WIM file format to accomodate Windows-specific
91 and NTFS-specific features, wimlib must have two separate image capture and
92 application modes (although the \fB@IMAGEX_PROGNAME@\fR subcommands for the modes are the
93 same): one for general image capture and application, and one for the capture or
94 application of an image specifically from/to an NTFS volume.
95
96 Note: the above applies to UNIX builds.  On the Windows builds of wimlib, there
97 is only one image capture and application mode, similar to Microsoft's ImageX.
98
99 .IP \[bu]
100 Microsoft's version has some weird limitations, like it won't let you extract a
101 WIM on a shared folder, and it requires some commands to be run only from
102 Windows PE and not from regular Windows.  This version does not have these
103 unusual limitations.
104
105 .IP \[bu]
106 There are bugs in Microsoft's WIM library and I obviously have not included the
107 same bugs in wimlib, although in some cases I have had to work around bugs for
108 compatibility purposes.
109
110 .IP \[bu]
111 wimlib's \fB@IMAGEX_PROGNAME@\fR offers the extra command \fB@IMAGEX_PROGNAME@ optimize\fR,
112 which lets you easily remove wasted space in a WIM (which can arise after
113 a WIM image is appended or mounted read-write).
114
115 .IP \[bu]
116 wimlib's \fB@IMAGEX_PROGNAME@\fR also offers the command \fB@IMAGEX_PROGNAME@ join\fR, which lets you
117 easily join the parts of a split WIM.
118
119 .IP \[bu]
120 wimlib's \fB@IMAGEX_PROGNAME@ apply\fR supports keeping files hard-linked or symlinked
121 across WIM images when extracted from a WIM.  So you can, for example, extract
122 different versions of Windows from an install.wim without using much extra
123 space.  (Note: this functionality is only available in UNIX builds of wimlib.)
124
125 .IP \[bu]
126 wimlib's \fB@IMAGEX_PROGNAME@ capture\fR supports combining multiple separate directories
127 and files together in a configurable way to create a WIM image.
128
129 .IP \[bu]
130 wimlib's XPRESS compressor is better than Microsoft's.
131
132 .IP \[bu]
133 wimlib supports multithreaded compression, which can make it much faster to
134 create compressed WIM files.
135
136 .IP \[bu]
137 wimlib's \fB@IMAGEX_PROGNAME@ capture\fR supports a special mode where UNIX file modes,
138 owners, and groups are stored.  (Note: this functionality is only available on
139 UNIX builds.)
140
141 .IP \[bu]
142 wimlib's \fB@IMAGEX_PROGNAME@ mount\fR and \fB@IMAGEX_PROGNAME@ mountrw\fR are much faster than
143 Microsoft's versions for some reason.  I don't know what they have their program
144 do that takes so long to simply set up a mountpoint.  (Note: this functionality
145 is only available on UNIX builds.)
146
147 .IP \[bu]
148 wimlib's \fB@IMAGEX_PROGNAME@ mount\fR supports mounting an image from a split WIM, but
149 Microsoft's software does not.  (Note: this functionality is only available on
150 UNIX builds.)
151
152 .SH LOCALES AND CHARACTER ENCODINGS
153
154 wimlib 1.3.0 has improved support for alternate character encodings.
155 However, not everything has been well tested, and on UNIX you are strongly
156 encouraged to use a UTF-8 locale so that you do not run into any problems.
157 In particular, if your locale uses a character encoding that is
158 not UTF-8, then you will not be able to open or capture WIM files containing
159 files with paths not representable in the current locale's character encoding.
160
161 Similar restrictions apply to the Windows-native build of wimlib, but
162 unfortunately Windows does not support UTF-8 locales.  So you will not be able
163 to apply a WIM image containing files with names not representable in the
164 current Windows code page, nor will you be able to capture a directory tree
165 containing files with names not representable in the current Windows code page.
166
167 .SH WARNING
168
169 Note: \fBwimlib\fR and \fB@IMAGEX_PROGNAME@\fR are experimental.  Use Microsoft's
170 imagex.exe if you have to make sure your WIM files are made "correctly".  Feel
171 free to submit a bug report if you find a bug.
172
173 Some parts of the WIM file format are poorly documented or even completely
174 undocumented, so I've just had to do the best I can to read and write WIMs in a
175 way that appears to be compatible with Microsoft's software.
176
177 .SH REPORTING BUGS
178
179 Report bugs to ebiggers3@gmail.com.
180
181 .SH SEE ALSO
182 .BR @IMAGEX_PROGNAME@-append (1),
183 .BR @IMAGEX_PROGNAME@-apply (1),
184 .BR @IMAGEX_PROGNAME@-capture (1),
185 .BR @IMAGEX_PROGNAME@-delete (1),
186 .BR @IMAGEX_PROGNAME@-dir (1),
187 .BR @IMAGEX_PROGNAME@-export (1),
188 .BR @IMAGEX_PROGNAME@-info (1),
189 .BR @IMAGEX_PROGNAME@-join (1),
190 .BR @IMAGEX_PROGNAME@-mount (1),
191 .BR @IMAGEX_PROGNAME@-mountrw (1),
192 .BR @IMAGEX_PROGNAME@-optimize (1),
193 .BR @IMAGEX_PROGNAME@-split (1),
194 .BR @IMAGEX_PROGNAME@-unmount (1),