Implement user-specified staging directory
[wimlib] / doc / imagex-mount.1.in
1 .TH IMAGEX "1" "November 2012" "imagex (wimlib) wimlib @VERSION@" "User Commands"
2 .SH NAME
3 imagex-mount, imagex-mountrw, imagex-unmount \- Mount and unmount an image from a WIM archive
4
5 .SH SYNOPSIS
6 \fBimagex mount\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [--check]
7 [--streams-interface=\fIINTERFACE\fR] [--ref="\fIGLOB\fR"]
8 .br
9 \fBimagex mountrw\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [--check]
10 [--streams-interface=\fIINTERFACE\fR] [--staging-dir=\fIDIR\fR]
11 .br
12 \fBimagex unmount\fR \fIDIRECTORY\fR [--commit] [--check]
13
14 .SH DESCRIPTION
15 .PP
16 The \fBimagex mount\fR and \fBimagex mountrw\fR commands will mount the image in
17 the Windows Imaging (WIM) file \fIWIMFILE\fR specified by \fIIMAGE\fR on the
18 directory \fIDIRECTORY\fR using FUSE (Filesystem in Userspace).  \fBimagex
19 mount\fR will mount the image read-only, while \fBimagex mountrw\fR will mount
20 the image read-write.
21
22 \fIIMAGE\fR may be a 1-based index of the image in the WIM to mount, or it may
23 be the name of an image in the WIM.  Use the \fBimagex info\fR (1) command to
24 see the available images in the WIM.  It is possible to omit \fIIMAGE\fR, but
25 only if the WIM contains only one image.
26
27 The WIM image can be unmounted using the \fBimagex unmount\fR command.  Changes
28 made to a WIM mounted read-write will be discarded unless the \fB--commit\fR
29 flag is provided to \fBimagex unmount\fR.
30
31 .SH SPLIT WIMS
32
33 You may use \fBimagex mount\fR to mount an image from a split WIM read-only.
34 However, you may not mount an image from a split WIM read-write.
35
36 The \fIWIMFILE\fR argument is used to specify the first part of the split WIM, and
37 the \fB--refs\fR="\fIGLOB\fR" option is used to provide a shell-style file glob
38 that specifies the additional parts of the split WIM.  \fIGLOB\fR is expected to
39 be a single string on the command line, so \fIGLOB\fR must be quoted so that it
40 is protected against shell expansion.  \fIGLOB\fR must expand to all parts of
41 the split WIM, except optionally the first part which may either omitted or
42 included in the glob (but the first part MUST be specified as \fIWIMFILE\fR as
43 well).
44
45 Here's an example.  The names for the split WIMs usually go something like:
46         
47 .RS
48 .PP
49 .nf
50 mywim.swm
51 mywim2.swm
52 mywim3.swm
53 mywim4.swm
54 mywim5.swm
55 .RE
56
57 To mount the first image of this split WIM to the directory "dir", we would do:
58 .PP
59 .RS
60 imagex mount mywim.swm 1 dir --ref="mywim*.swm"
61 .RE
62 .PP
63
64 .SH NOTES
65
66 If wimlib was configured using the --without-fuse flag, then the \fBimagex
67 mount\fR, \fBimagex mountrw\fR, and \fBimagex unmount\fR commands will not work.
68
69 You can mount multiple images from a WIM file read-only at the same time, but
70 you can only mount one image at a time from a WIM read-write.
71
72 All files in the mounted WIM will be accessible regardless of whether there is a
73 security descriptor in the WIM associated with the file or not.  New files or
74 directories created in a read-write mounted WIM will be created with no security
75 descriptor.  Although there is support for accessing named data streams (see the
76 \fB--streams-interface\fR option), it is currently not possible
77 to set or get DOS names, file attributes, or security
78 descriptors in a mounted WIM.
79
80 .SH MOUNT OPTIONS
81
82 .TP
83 \fB--check\fR
84 When reading the WIM, verify its integrity if it contains an integrity table.
85 .TP
86 \fB--streams-interface\fR=\fIINTERFACE\fR
87 This option is inspired by the ntfs-3g filesystem driver (see \fBntfs-3g\fR
88 (8)).  It controls how alternate data streams, or named data streams, in WIM
89 files are made available.
90
91 If "none", it will be impossible to read or write the named data streams.
92
93 If "xattr" (default), named data streams will be accessible through extended
94 file attributes, unless this support was disabled when compiling wimlib.  The
95 named data streams may be accessed through extended attributes named "user.*",
96 where the * is the name of the named data stream.  See \fBsetfattr\fR (1) and
97 \fBgetfattr\fR (1).
98
99 If "windows", the named data streams will be accessible by specifying the
100 filename, then a colon, then the name of the named data stream; for example,
101 "myfile:mystream".
102
103 Please note that named data streams are a somewhat obscure NTFS feature that
104 aren't actually used much, even though they complicate the WIM file format
105 considerably.  Normally, all you care about is the default or "unnamed" data
106 stream.
107 .TP
108 \fB--debug\fR
109 Turn on debugging information printed by the FUSE library, and do not fork into
110 the background.
111 .TP
112 \fB--ref\fR="\fIGLOB\fR"
113 File glob of additional split WIM parts that are part of the split WIM being
114 mounted.  This option is valid for \fBimagex mount\fR but not \fBimagex
115 mountrw\fR.  See \fBSPLIT_WIMS\fR.
116 .TP
117 \fB--staging-dir\fR=\fIDIR\fR
118 Store temporary staging files in the directory \fIDIR\fR.  Only valid for
119 \fBimagex mountrw\fR.
120
121 .SH UNMOUNT OPTIONS
122
123 .TP
124 \fB--commit\fR
125 Recreate the WIM file with the changes that have been made.  Has no effect if
126 the mount is read-only.
127 .TP 6
128 \fB--check\fR
129 When writing \fIWIMFILE\fR, include an integrity table.  Has no effect if the
130 mount is read-only or if --commit was not specified.
131
132 .SH IMPLEMENTATION DETAILS
133
134 Since a WIM is an archive and not a filesystem, \fBimagex mountrw\fR creates a
135 temporary staging directory to contain files that are created or modified.  This
136 directory is located in the same directory as \fIWIMFILE\fR by default, but the
137 location can be set using the \fB--staging-dir\fR option.  When the filesystem
138 is unmounted with \fB--commit\fR, the WIM is rebuilt, merging in the staging
139 files as needed.  Then, the temporary staging directory is deleted.
140
141 \fBimagex unmount\fR executes the \fBfusermount\fR (1) program, which should be
142 installed as part of libfuse, to unmount the filesystem.  It then uses a POSIX
143 message queue (see \fBmq_overview\fR (7)) to communicate with the filesystem
144 daemon (the instance of \fBimagex\fR that has mounted the WIM image) so that it
145 can know whether whether changes are to be committed and whether an integrity
146 table is to be included.  A message is then sent from the filesystem daemon to
147 unmounting process when the unmounting has been completed, and this message
148 indicates whether the unmounting was successful or not.
149
150 If the filesystem daemon has crashed or been killed, is possible for \fBimagex
151 unmount\fR to wait a very long time before timing out.  A solution to this
152 problem may be implemented in the future.
153
154 .SH SEE ALSO
155 .BR imagex (1)
156