wimmount, wimmountrw, wimunmount - Mount or unmount a WIM
image
wimmount WIMFILE [IMAGE] DIRECTORY
[OPTION...]
wimmountrw WIMFILE [IMAGE] DIRECTORY
[OPTION...]
wimunmount DIRECTORY [OPTION...]
On Linux, the wimmount (equivalently: wimlib-imagex
mount) and wimmountrw (equivalently: wimlib-imagex
mountrw) commands mount the specified IMAGE in the Windows
Imaging (WIM) archive WIMFILE on the directory DIRECTORY using
FUSE (Filesystem in Userspace). wimmount will mount the image
read-only, while wimmountrw will mount the image read-write.
IMAGE specifies the image in WIMFILE to mount. It
may be the 1-based index of an image or the name of an image. It may be
omitted if WIMFILE contains only one image. You can use
wiminfo(1) to list the images contained in WIMFILE.
The WIM image can be unmounted using wimunmount
(equivalently: wimlib-imagex unmount). Changes made to an image
mounted read-write will be discarded unless the --commit flag is
provided to wimunmount.
WIM images can contain a variety of types of files and file
metadata, some of which is Windows-specific. Currently, the mount feature
can translate some, but not all, Windows concepts to Linux equivalents.
Briefly, the following features are supported (read/write):
- •
- Hard links
- •
- Symbolic links. Native Windows symbolic links and junctions in a mounted
WIM image will automatically be translated into UNIX symbolic links,
potentially with their targets fixed to be valid given the actual
mountpoint directory. UNIX symbolic links created in a read-write mounted
WIM image will automatically be translated into native Windows symbolic
links.
- •
- Named data streams (mostly). See the --streams-interface
option.
In addition, standard UNIX file permissions (owner, group, and
mode) and special files are supported if the --unix-data option is
used.
However, the following features are unsupported and not
exposed in mounted images:
- •
- Windows security descriptors. New files are not given security
descriptors.
- •
- DOS names (8.3 names) (short names). New files are not given DOS
names.
- •
- Windows file attributes. New files are assigned default attributes based
on the UNIX file mode bits.
- •
- Object IDs. New files are not given object IDs.
- •
- EFS-encrypted files. The files themselves will be visible in mounted WIM
images but their data will not be available.
- •
- Extended attributes. Although wimlib supports WIM images containing
extended attributes, these are not yet exposed in mounted WIM images.
(This may be implemented in the future, though it would conflict with the
use of extended attributes to expose Windows concepts like named data
streams.)
You may use wimmount to mount an image from a split WIM
read-only. However, you may not mount an image from a split WIM
read-write.
The WIMFILE argument must specify the first part of the
split WIM, while the additional parts of the split WIM must be specified in
one or more --ref="GLOB" options. Since globbing is
built into the --ref option, typically only one --ref option
is necessary. For example, the names for the split WIM parts usually go
something like:
mywim.swm
mywim2.swm
mywim3.swm
mywim4.swm
mywim5.swm
To mount the first image of this split WIM to the directory "dir", run:
wimmount mywim.swm 1 dir --ref="mywim*.swm"
Availability: Mounting WIM images is only supported on
Linux-based systems. These commands will not work on other platforms.
Furthermore, the library cannot have been configured
--without-fuse.
Multiple mounts: You are free to mount many WIM images at
the same time, provided that there are not two images mounted read-write
from the same file at the same time.
Appends vs. rebuilds: By default, changes to a read-write
WIM are made in-place by appending to the WIM. This is nice for big WIM
files, since the entire file doesn't have to be rebuilt to make a small
change. But, if you are making many changes to a read-write mounted WIM,
especially deleting large files, it is suggested to provide the
--rebuild option to wimunmount to force the WIM to be rebuilt,
or else run wimoptimize afterwards.
ESD files (solid WIMs): You can mount version 3584 WIMs,
which usually contain LZMS-compressed solid resources and may carry the
.esd file extension rather than .wim. However, such files are
not designed for random access, so reading data from them when mounted may
be very slow. In addition, .esd files downloaded directly by the
Windows 8 web downloader have encrypted segments, and wimlib cannot mount
such files until they are first decrypted.
- --check
- Before mounting the WIM image, verify the integrity of the WIM if it
contains extra integrity information.
- --streams-interface=INTERFACE
- This option is inspired by the ntfs-3g(8) filesystem driver. It
controls how named data streams (also called "alternate data
streams") in WIM files are made available.
-
- If "none", it will be impossible to read or write the named data
streams.
-
- If "xattr" (default), named data streams will be accessible
through extended file attributes, unless this support was disabled when
compiling wimlib. The named data streams may be accessed through extended
attributes named "user.*", where the * is the name of the named
data stream. See setfattr(1) and getfattr(1). Note that this
is not an ideal interface, since named data streams may be larger than the
maximum allowed extended attribute size.
-
- If "windows", the named data streams will be accessible by
specifying the filename, then a colon, then the name of the named data
stream; for example, "myfile:mystream".
- --debug
- Turn on debugging information printed by the FUSE library, and do not fork
into the background.
- --ref="GLOB"
- File glob of additional WIMs or split WIM parts to reference resources
from. See SPLIT_WIMS. This option can be specified multiple times.
Note: GLOB is listed in quotes because it is interpreted by
wimlib-imagex and may need to be quoted to protect against shell
expansion.
- --staging-dir=DIR
- Store temporary staging files in a subdirectory of the directory
DIR. Only valid for wimmountrw.
- --unix-data
- Honor UNIX-specific metadata that was captured by wimcapture with
the --unix-data option. By default, wimmount (and
wimmountrw) will ignore both Windows-style security descriptors and
UNIX-specific metadata. In this default mode, all files will simply be
owned by the user running wimmount and will have mode 0777. (They
will still not be accessible to other users unless you also specify
--allow-other.) If you instead provide the --unix-data
option, these default permissions will be overridden on a per-file basis
with the UNIX-specific metadata from the WIM image when available, and in
the case of wimmountrw it will also be possible to change the UNIX
permissions on files in the mounted image using the standard UNIX tools
and functions, and (if appropriately privileged) create UNIX special files
such as device nodes.
- --allow-other
- Pass the allow_other option to the FUSE mount. See
mount.fuse (8). Note: to do this as a non-root user,
user_allow_other needs to be specified in /etc/fuse.conf.
- --commit
- Update the WIM file with the changes that have been made. Has no effect if
the mount is read-only.
- --force
- In combination with --commit, force the WIM image to be committed
even if there are open file descriptors to the WIM image. Any such file
descriptors will be immediately closed, and the WIM image will be
committed and unmounted.
- --check
- If committing changes to the WIM, include extra integrity information,
even if it was not present before.
- --rebuild
- Rebuild the entire WIM rather than appending any new data to the end of
it. Rebuilding the WIM is slower, but will save a little bit of space that
would otherwise be left as a hole in the WIM. Even more space will be
saved if the read-write mount resulted in streams being deleted from the
WIM. Also see
- --new-image
- In combination with --commit for a read-write mounted image, causes
the modified image to be committed as a new, unnamed image appended to the
WIM archive. The original image will be unmodified.
Since a WIM is an archive and not a filesystem per se,
wimmountrw creates a temporary staging directory to contain files
that are created or modified. This directory is located in the same
directory as WIMFILE by default, but the location can be set using
the --staging-dir option. When the filesystem is unmounted with
--commit, the WIM is modified in-place (or rebuilt completely with
--rebuild), merging in the staging files as needed. Then, the
temporary staging directory is deleted.
wimunmount runs in a separate process from the process that
previously ran wimmount. When unmounting a read-write mounted WIM
image with --commit, these two processes communicate using a POSIX
message queue so that the unmount process can track the progress of the
mount process. See src/mount_image.c in the source code for
details.