ntfs capture: can no longer get DOS name from multi-linked files
[wimlib] / doc / imagex-capture.1.in
1 .TH IMAGEX "1" "January 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands"
2 .SH NAME
3 imagex-capture, imagex-append \- Capture a WIM image from a directory tree
4
5 .SH SYNOPSIS
6 \fBimagex capture\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \
7 [\fIDESCRIPTION\fR] [\fIOPTION\fR]...
8 .br
9 \fBimagex append\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \
10 [\fIDESCRIPTION\fR] [\fIOPTION\fR]...
11
12 .SH DESCRIPTION
13 .PP
14
15 The \fBimagex capture\fR and \fBimagex append\fR commands create a Windows
16 Imaging (WIM) image from a directory tree.  The \fBimagex capture\fR command
17 creates a new WIM file containing the captured image, while the \fBimagex
18 append\fR command appends the captured image to an existing WIM file.
19
20 A WIM image is an independent directory tree in the WIM file.  A WIM file may
21 contain any number of separate images.  However, files are stored only one time
22 in the entire WIM, regardless of how many images the file appears in.
23
24 \fISOURCE\fR specifies the location of the files to create the new WIM image
25 from.  If \fISOURCE\fR is a directory, the WIM image is captured from that
26 directory.  If \fISOURCE\fR is a regular file or block device, it is interpreted
27 as a NTFS volume from which a WIM image is to be captured.
28
29 \fIIMAGE_NAME\fR and \fIDESCRIPTION\fR specify the name and description of the
30 new image.  If \fIIMAGE_NAME\fR is not given, it is taken to be the same as the
31 base name of \fISOURCE\fR.  If \fIDESCRIPTION\fR is not given, no description is
32 given to the new image.
33
34 .SH NORMAL MODE
35
36 The normal image capture mode is entered when \fISOURCE\fR specifies a
37 directory.  The WIM image will be captured from the directory tree rooted at
38 this directory.  The directory may be on any type of filesystem.
39
40 In this normal image capture mode, we capture the following information from the
41 directory tree:
42
43 .IP \[bu] 4
44 The "normal" name and contents of each file and directory
45 .IP \[bu]
46 File and directory creation, access, and modification timestamps to the nearest
47 100 nanoseconds, if supported by the underlying filesystem
48 .IP \[bu]
49 Hard links and symbolic links
50
51 .PP
52
53 However, in the normal image capture mode, we do \fInot\fR capture the following
54 information from the directory tree:
55
56 .IP \[bu] 4
57 File permissions.  The resulting WIM image will not contain any security
58 descriptors because the format of the security descriptors is Windows-specific,
59 and they cannot contain UNIX file modes.
60 .IP \[bu]
61 No alternate data streams will be captured, since these do not exist on
62 POSIX-compliant filesystems.  The resulting WIM image will not contain any
63 alternate data streams.
64
65 .SH NTFS MODE
66
67 A special image capture mode is entered when \fISOURCE\fR is a regular file or
68 block device.  \fISOURCE\fR is interpreted as an NTFS volume and opened using
69 libntfs-3g.  If successful, a WIM image is captured containing the contents of
70 the NTFS volume, including NTFS-specific data.
71
72 Please note that the NTFS image capture mode is \fInot\fR entered if
73 \fISOURCE\fR is a directory, even if a NTFS filesystem is mounted on
74 \fISOURCE\fR.  You must specify the NTFS volume itself (and it must be
75 unmounted, and you must have permission to read from it).
76
77 More specifically, in this mode, we capture the following types of information
78 from the NTFS volume:
79
80 .IP \[bu] 4
81 All data streams of all files, including the un-named data stream as well as all
82 named data streams.
83 .IP \[bu]
84 Reparse points, including symbolic links, junction points, and other reparse
85 points.
86 .IP \[bu]
87 File and directory creation, access, and modification timestamps from NTFS
88 inodes (these have a resolution of 100 nanoseconds).
89 .IP \[bu]
90 The security descriptor for each NTFS inode.
91 .IP \[bu]
92 File attribute flags.
93 .IP \[bu]
94 All names of all singly-linked files, including names in the Win32 namespace,
95 DOS namespace, Win32+DOS namespace, and POSIX namespace; all names of all
96 multi-linked files except DOS names.
97
98 .SH OPTIONS
99 .TP 6
100 \fB--boot\fR
101 Specifies that the new image is to be made the bootable image of the WIM archive.
102 .TP
103 \fB--check\fR
104 Include an integrity table in the new WIM file or the modified WIM file.  If
105 this option is not specified, no integrity table is included in \fIWIMFILE\fR,
106 even if there was one before in the case of \fBimagex append\fR.
107 .TP
108 \fB--compress\fR=\fITYPE\fR
109 Specifies the compression type for the new WIM file.  This flag is only valid
110 for \fBimagex capture\fR, since the compression mode for \fBimagex append\fR
111 must be the same as that of the existing WIM.  \fITYPE\fR may be "none",
112 "maximum", or "fast".  By default, it is "fast".
113
114 You may also specify the actual names of the compression algorithms, "XPRESS"
115 and "LZX", instead of "fast" and "maximum", respectively.
116 .TP
117 \fB--threads\fR=\fINUM_THREADS\fR
118 Number of threads to use for compressing data.  Default: autodetect (number of
119 processors).  Note: if creating or appending to an uncompressed WIM, additional
120 threads will not be used, regardless of this parameter, since no compression
121 needs to be done in this case.
122 .TP
123 \fB--rebuild\fR
124 For \fBimagex append\fR: rebuild the entire WIM rather than appending the new
125 data to the end of it.  Rebuilding the WIM is slower, but will save a little bit
126 of space that would otherwise be left as a hole in the WIM.  Also see \fBimagex
127 optimize\fR.
128 .TP
129 \fB--flags\fR=\fIEDITIONID\fR
130 Specify a string to use in the <FLAGS> element of the XML data for the new
131 image.
132 .TP
133 \fB--verbose\fR
134 Print the names of files and directories as they are captured, as well as a few
135 other informational messages.
136 .TP
137 \fB--dereference\fR
138 Follow symlinks; archive and dump the files they point to.  (The default is to
139 archive the symlinks themselves.)  This flag is only valid in the normal image
140 capture mode.
141 .TP
142 \fB--config\fR=\fIFILE\fR
143 Specifies a configuration file for capturing the new image.  The configuration
144 file specifies files that are to be treated specially during the image capture.
145
146 The format of the configuration file is a number of sections containing file
147 globs one per line, where each section begins with the tag [ExclusionList],
148 [ExclusionException], [CompressionExclusionList], or [AlignmentList].
149 Currently, only the [ExclusionList] and [ExclusionException] sections are
150 implemented.  The [ExclusionList] section specifies a list of file globs to
151 exclude from capture, while the [ExclusionException] section specifies a list of
152 file globs to include in the capture even if the matched file or directory name
153 also appears in the [ExclusionList].
154
155 Relative globs with only one path component match against a filename in any
156 directory.  Relative globs with multiple path components, as well as absolute
157 globs, are treated as paths starting at the root directory of capture, or the
158 root of the NTFS volume for NTFS capture mode.  If a directory is matched by a
159 glob in the [ExclusionList], the entire directory tree rooted at that directory
160 is excluded from the capture, unless \fB--dereference\fR is specified and there
161 is another path into that directory through a symbolic link.
162
163 For compatibility with Windows, the path separators in the globs may be either
164 forward slashes or backslashes, and the line separators may be either UNIX-style
165 or DOS-style.  However, globs with spaces in them currently must not be quoted.
166 Empty lines are ignored.
167
168 If this option is not specified the following default configuration file is
169 used:
170
171 .RS
172 .RS
173 .PP
174 .nf
175 [ExclusionList]
176 \\$ntfs.log
177 \\hiberfil.sys
178 \\pagefile.sys
179 \\System Volume Information
180 \\RECYCLER
181 \\Windows\\CSC
182
183 [CompressionExclusionList]
184 *.mp3
185 *.zip
186 *.cab
187 \\WINDOWS\\inf\\*.pnf
188 .RE
189 .RE
190
191 .SH NOTES
192
193 \fBimage append\fR does not support appending an image to a split WIM.
194
195 The two different capture modes only specify the data that is captured and don't
196 specify a special WIM format.  A WIM file can contain images captured using
197 different modes.  However, all images in a WIM must have the same compression
198 type, and \fBimagex\fR always enforces this.
199
200 \fBimagex\fR writes WIMs having the version number 0x10d00 and a compressed
201 stream chunk size of 32768.  The only WIMs I've seen that are different from
202 this are some pre-Vista WIMs that had a different version number.
203
204 Unless \fB--rebuild\fR is specified, aborting an \fBimagex append\fR command
205 mid-way through has a small chance of corrupting the WIM file.  However, a
206 precaution is taken against this, so it should be very unlikely.  In the event
207 of an aborted \fBimagex append\fR, \fBimagex optimize\fR may be run to remove
208 extra data that may have been partially appended to the physical WIM file but
209 not yet incorporated into the structure of the WIM.
210
211 Capturing or appending an image happens in two main phases: (1) scanning the
212 directory or NTFS volume to checksum all the files and determine the streams to
213 be written, and (2) writing the new streams to the WIM file.  Streams are not
214 stored in memory after (1), since there could easily be gigabytes of data;
215 instead, they are read again during step (2); however, duplicate streams in the
216 image, and streams already existing in any other image in the WIM, are not read
217 again.  In the future, it may be possible to introduce the ability to capture an
218 image with reading each file only one time, although this mode would have some
219 limitations--- for example, a stream might be compressed only to be thrown away
220 as a duplicate once it's been checksummed.
221
222 .SH EXAMPLES
223 Create a new WIM 'mywim.wim' from the directory 'somedir', using LZX compression and
224 including an integrity table:
225 .RS
226 .PP
227 imagex capture somedir mywim.wim --compress=maximum --check
228 .RE
229 .PP
230 Append an image to the WIM we just captured, but do it from a NTFS volume on the
231 partition /dev/sda2, and name the image "Windows 7" and give it a description.
232 You do not need to specify the compression type, because the WIM already is
233 using LZX compression and this cannot be changed.  You need to specify --check
234 if you don't want the integrity table to be discarded.
235 .RS
236 .PP
237 imagex append /dev/sda2 mywim.wim --check "Windows 7" "Warning: This operating
238 system has been approved by Bill Gates"
239 .RE
240 .PP
241
242 .SH SEE ALSO
243 .BR imagex (1)
244