From: Eric Biggers Date: Tue, 18 Dec 2012 02:03:13 +0000 (-0600) Subject: imagex unmount --rebuild X-Git-Tag: v1.2.1~37 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=699b3220ae03778e1673d9980b273a78961b507e imagex unmount --rebuild --- diff --git a/doc/imagex-mount.1.in b/doc/imagex-mount.1.in index 51098671..70853220 100644 --- a/doc/imagex-mount.1.in +++ b/doc/imagex-mount.1.in @@ -9,7 +9,7 @@ imagex-mount, imagex-mountrw, imagex-unmount \- Mount and unmount an image from \fBimagex mountrw\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [--check] [--streams-interface=\fIINTERFACE\fR] [--staging-dir=\fIDIR\fR] .br -\fBimagex unmount\fR \fIDIRECTORY\fR [--commit] [--check] +\fBimagex unmount\fR \fIDIRECTORY\fR [--commit] [--check] [--rebuild] .SH DESCRIPTION .PP @@ -77,6 +77,13 @@ descriptor. Although there is support for accessing named data streams (see the to set or get DOS names, file attributes, or security descriptors in a mounted WIM. +By default, changes to a read-write WIM are made in-place by appending to the +WIM. This is ideal 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 \fB--rebuild\fR option to \fBimagex unmount\fR to force the WIM to +be rebuilt, or else run \fBimagex optimize\fR on the WIM afterwards. + .SH MOUNT OPTIONS .TP @@ -122,12 +129,20 @@ Store temporary staging files in the directory \fIDIR\fR. Only valid for .TP \fB--commit\fR -Recreate the WIM file with the changes that have been made. Has no effect if -the mount is read-only. -.TP 6 +Update the WIM file with the changes that have been made. Has no effect if the +mount is read-only. +.TP \fB--check\fR When writing \fIWIMFILE\fR, include an integrity table. Has no effect if the mount is read-only or if --commit was not specified. +.TP +\fB--rebuild\fR +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 +\fBimagex optimize\fR. Has no effect if the mount is read-only or if --commit +was not specified. .SH IMPLEMENTATION DETAILS diff --git a/programs/imagex.c b/programs/imagex.c index 90eac384..7cfc91c0 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -105,7 +105,7 @@ static const char *usage_strings[] = { [SPLIT] = "imagex split WIMFILE SPLIT_WIMFILE PART_SIZE_MB [--check]\n", [UNMOUNT] = -"imagex unmount DIRECTORY [--commit] [--check]\n", +"imagex unmount DIRECTORY [--commit] [--check] [--rebuild]\n", }; static const struct option common_options[] = { @@ -187,8 +187,9 @@ static const struct option split_options[] = { }; static const struct option unmount_options[] = { - {"commit", no_argument, NULL, 'c'}, - {"check", no_argument, NULL, 'C'}, + {"commit", no_argument, NULL, 'c'}, + {"check", no_argument, NULL, 'C'}, + {"rebuild", no_argument, NULL, 'R'}, {NULL, 0, NULL, 0}, }; @@ -1636,6 +1637,9 @@ static int imagex_unmount(int argc, const char **argv) case 'C': unmount_flags |= WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY; break; + case 'R': + unmount_flags |= WIMLIB_UNMOUNT_FLAG_REBUILD; + break; default: usage(UNMOUNT); return -1;