]> wimlib.net Git - wimlib/blob - doc/imagex-update.1.in
ceca0fcdc990196c7df3b715a0d2d6d9e941e6a3
[wimlib] / doc / imagex-update.1.in
1 .TH IMAGEX "1" "May 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands"
2 .SH NAME
3 @IMAGEX_PROGNAME@-update \- Update a WIM image
4 .SH SYNOPSIS
5 \fB@IMAGEX_PROGNAME@ update\fR \fIWIMFILE\fR [\fIIMAGE\fR] [\fIOPTION\fR...] [< \fICMDFILE\fR]
6 .SH DESCRIPTION
7 \fB@IMAGEX_PROGNAME@ update\fR modifies the specified \fIIMAGE\fR in the Windows
8 Imaging (WIM) file \fIWIMFILE\fR by adding, deleting, or renaming files or
9 directories in it.
10 .PP
11 \fIIMAGE\fR specifies the image in \fIWIMFILE\fR to update.  It may be a 1-based
12 index of an image in the WIM or the name of an image in the WIM.  Use the
13 \fB@IMAGEX_PROGNAME@ info\fR (1) command to list the images a WIM file contains.
14 \fIIMAGE\fR may be omitted if \fIWIMFILE\fR contains only one image.
15 .PP
16 The modifications to perform on the WIM image are specified as a sequence of
17 commands, one per line, read in a text file from standard input.  It is
18 recommended that standard input be redirected from a file (\fICMDFILE\fR), as
19 shown above, rather than typing in commands interactively.  Alternatively, to
20 specify a command directly on the command line, see the \fB--command\fR option.
21 .SH AVAILABLE COMMANDS
22 This section documents the commands that may appear in the \fICMDFILE\fR
23 described above.
24 .SS \fBadd\fR [\fIOPTION\fR...] \fISOURCE\fR \fIDESTINATION\fR
25 Add a file or directory tree to the WIM image.  \fISOURCE\fR must specify the
26 path to a file or directory on your filesystem.  \fIDESTINATION\fR must specify
27 the path inside the WIM image at which to add the file or directory tree.  If
28 \fIDESTINATION\fR already exists in the WIM image, then an overlay is attempted
29 if it is a directory; this feature can be used to add multiple files to an
30 existing directory in the WIM image in one command.  If \fIDESTINATION\fR does
31 not exist in the WIM image, then any prerequisite directories are created as
32 needed to add the \fISOURCE\fR at that location.
33 .PP
34 The available options for the \fBadd\fR command are:
35 .TP 6
36 \fB--verbose\fR
37 Print the names of files as they are captured.
38 .TP
39 \fB--dereference\fR
40 (UNIX only) Follow symbolic links and archive the files they point to, rather
41 than archiving the links themselves.
42 .TP
43 \fB--unix-data\fR
44 (UNIX only) Store the UNIX owner, group, and mode of all captured files.  This
45 is done by adding a special alternate data stream to each directory entry that
46 contains this information.  Please note that this flag is for convenience only,
47 in case you want to use \fB@IMAGEX_PROGNAME@\fR to archive files on UNIX.
48 Microsoft's software will not understand this special information.
49 .TP
50 \fB--no-acls\fR
51 (Windows only) Do not capture files' security descriptors.
52 .TP
53 \fB--strict-acls\fR
54 (Windows only) Fail immediately if the full security descriptor of any file
55 cannot be read.  The default behavior without this option is to first try
56 omitting the SACL from the security descriptor, then to try omitting the
57 security descriptor entirely.  The purpose of this is to capture as much data as
58 possible without always requiring Administrator privileges.  However, if you
59 desire that all security descriptors be captured exactly, you may wish to
60 provide this option, although the Administrator should have permission to read
61 everything anyway.
62 .SS \fBdelete\fR [\fIOPTION\fR...] \fIPATH\fR
63 Delete a file or directory tree from the WIM image.  \fIPATH\fR must specify the
64 path inside the WIM image of the file or directory tree to delete.
65 .PP
66 The available options for the \fBdelete\fR command are:
67 .TP 6
68 \fB--force\fR
69 Do not issue an error if the path to delete does not exist.
70 .TP
71 \fB--recursive\fR
72 Delete the file or directory tree recursively; if not specified, an error is
73 issued if the path to delete is a directory.
74 .SS \fBrename\fR \fIOLD_PATH\fR \fINEW_PATH\fR
75 Rename a file or directory tree inside the WIM image.  \fIOLD_PATH\fR must
76 specify the old path of the file or directory tree inside the WIM image, and
77 \fINEW_PATH\fR must specify the new path for the file or directory tree.  This
78 command follows the semantics of the POSIX \fBrename\fR (3) function; in
79 particular, a pre-existing file at \fINEW_PATH\fR will be deleted if present,
80 except in certain cases such as attempting to rename a directory to a
81 non-directory, which is not allowed.
82 .PP
83 There are no options available for the \fBrename\fR command.
84 .SH OPTIONS
85 The following options are accepted on the command line by \fB@IMAGEX_PROGNAME@
86 update\fR itself:
87 .TP 6
88 \fB--verbose\fR
89 Use \fB--verbose\fR for all \fBadd\fR commands.
90 .TP
91 \fB--dereference\fR
92 Use \fB--dereference\fR for all \fBadd\fR commands.
93 .TP
94 \fB--unix-data\fR
95 Use \fB--unix-data\fR for all \fBadd\fR commands.
96 .TP
97 \fB--no-acls\fR
98 Use \fB--no-acls\fR for all \fBadd\fR commands.
99 .TP
100 \fB--strict-acls\fR
101 Use \fB--strict-acls\fR for all \fBadd\fR commands.
102 .TP
103 \fB--config\fR=\fIFILE\fR
104 Set the capture configuration file for all \fBadd\fR commands.  See the
105 description of this option in \fB@IMAGEX_PROGNAME@-capture\fR (1).
106 .TP
107 \fB--force\fR
108 Use \fB--force\fR for all \fBdelete\fR commands.
109 .TP
110 \fB--recursive\fR
111 Use \fB--recursive\fR for all \fBdelete\fR commands.
112 .TP
113 \fB--check\fR
114 When reading \fIWIMFILE\fR, verify its integrity if the integrity table is
115 present; in addition, include an integrity table in the updated WIM.  If this
116 option is not specified, no integrity table is included in the updated WIM, even
117 if there was one in the original WIM.
118 .TP
119 \fB--threads\fR=\fINUM_THREADS\fR
120 Number of threads to use for compressing newly added files.  Default: autodetect
121 (number of processors).
122 .TP
123 \fB--rebuild\fR
124 Rebuild the entire WIM rather than appending the updated data to the end of it.
125 Rebuilding the WIM is slower, but will save a little bit of space that would
126 otherwise be left as a hole in the WIM.  Also see
127 \fB@IMAGEX_PROGNAME@-optimize\fR (1).
128 .TP
129 \fB--command\fR=\fISTRING\fR
130 Instead of reading update commands from standard input, read a single update
131 command directly from the string \fISTRING\fR specified on the command line.
132 This option cannot be provided more than one time and cannot be used to specify
133 more than one update command.
134 .SH NOTES
135 \fB@IMAGEX_PROGNAME@ update\fR is partly redundant with \fB@IMAGEX_PROGNAME@
136 mountrw\fR, since if a WIM image can be mounted read-write, then there
137 theoretically is no need for \fB@IMAGEX_PROGNAME@ update\fR.  The main advantage
138 of \fB@IMAGEX_PROGNAME@ update\fR is that it works on both UNIX and Windows,
139 whereas \fB@IMAGEX_PROGNAME@ mountrw\fR only works on UNIX.
140 .PP
141 Symbolic links inside a WIM image are not dereferenced when being interpreted.
142 So, for example, if you have a WIM image that contains a symbolic link
143 "/Documents and Settings" -> "/Users" where "/Users" is a directory, then a
144 subdirectory named "Public" in this directory must be specified as
145 "/Users/Public" rather than "/Documents and Settings/Public".
146 .PP
147 All paths to files or directories within the WIM image must be specified
148 relative to the root of the image.  However, the leading slash is optional, and
149 both forward slashes and backslashes are accepted.  On Windows, the paths are
150 treated case-insensitively, while on UNIX, the paths are treated
151 case-sensitively.
152 .PP
153 The command file (\fICMDFILE\fR) is parsed by \fB@IMAGEX_PROGNAME@ update\fR
154 itself and not by the system shell.  Therefore, its syntax is limited.  However,
155 comment lines beginning with '#' are allowed, and it is also possible to quote
156 arguments with whitespace inside them.
157 .PP
158 On UNIX, you cannot use \fB@IMAGEX_PROGNAME@ update\fR to add files to an image
159 directly from a NTFS volume using libntfs-3g, even though \fB@IMAGEX_PROGNAME@
160 capture\fR supports capturing a full image this way.
161 .PP
162 It is safe to abort an \fB@IMAGEX_PROGNAME@ update\fR command partway through;
163 however, after doing this, it is recommended to run \fB@IMAGEX_PROGNAME@
164 optimize\fR to remove any data that was appended to the physical WIM file but
165 not yet incorporated into the structure of the WIM, unless \fB--rebuild\fR was
166 specified, in which case you should delete the temporary file left over.
167 .SH EXAMPLES
168 All the examples below show the update command file to be created as well as the
169 \fB@IMAGEX_PROGNAME@ update\fR command to run to perform the updates.
170 .PP
171 Delete two files from a WIM image:
172 .PP
173 .RS
174 \fIupdate_commands.txt\fR:
175 .RS
176 .PP
177 .nf
178 delete /setup.exe
179 delete /sources/setup.exe
180 .fi
181 .RE
182 .RE
183 .PP
184 .RS
185 $ @IMAGEX_PROGNAME@ update boot.wim 2 < update_commands.txt
186 .RE
187 .PP
188 Add some files and directories to a WIM image.  Note that the first path of each
189 \fBadd\fR command specifies the files to add, while the second path of each
190 \fBadd\fR command specify the locations at which to to add them inside the WIM
191 image:
192 .PP
193 .RS
194 \fIupdate_commands.txt\fR:
195 .RS
196 .PP
197 .nf
198 add somedir     /dir
199 add somefile    /dir/file
200 .fi
201 .RE
202 .RE
203 .PP
204 .RS
205 $ @IMAGEX_PROGNAME@ update boot.wim 2 < update_commands.txt
206 .RE
207 .PP
208 Rename a file inside a WIM image.
209 .PP
210 .RS
211 \fIupdate_commands.txt\fR:
212 .RS
213 .PP
214 .nf
215 rename /dir_in_wim/oldfile.txt /dir_in_wim/newfile.txt
216 .fi
217 .RE
218 .RE
219 .PP
220 .RS
221 $ @IMAGEX_PROGNAME@ update boot.wim 2 < update_commands.txt
222 .RE
223 .PP
224 Using additional features, such as comments, options, and overlays, and
225 including an integrity table in the updated WIM:
226 .PP
227 .RS
228 \fIupdate_commands.txt\fR:
229 .RS
230 .PP
231 .nf
232 #
233 # This file specifies some changes to make to a WIM image.
234 #
235
236 # Add a new directory containing files I want in the image.
237 # The quotes are necessary because the directory name
238 # contains a space.
239 add "My Directory" "/My Directory"
240
241 # Add the contents of "Another Directory" to the
242 # "/My Directory" we just created in the WIM image.  Since
243 # the destination path already exists, this performs an
244 # overlay.
245 add "Another Directory" "/My Directory"
246
247 # Rename some file for some reason.
248 rename /dir_in_wim/oldfile.txt /dir_in_wim/newfile.txt
249
250 # Delete an unwanted directory.
251 delete --recursive /Users/Me/Documents/Junk
252 .fi
253 .RE
254 .RE
255 .PP
256 .RS
257 $ @IMAGEX_PROGNAME@ update boot.wim 2 --check < update_commands.txt
258 .RE
259 .PP
260 .SH SEE ALSO
261 .BR @IMAGEX_PROGNAME@ (1)
262 .BR @IMAGEX_PROGNAME@-capture (1)
263 .BR @IMAGEX_PROGNAME@-info (1)
264 .BR @IMAGEX_PROGNAME@-mountrw (1)
265 .BR @IMAGEX_PROGNAME@-optimize (1)