The --check option currently does two things: verify the integrity table
of the input WIM(s), and include an integrity table in the output
WIM(s). Some users would like to do the latter only, especially if
there are large input WIM(s).
Add an option --include-integrity which does this.
.TP
\fB--check\fR
Include extra integrity information in the resulting WIM. With \fBwimappend\fR,
.TP
\fB--check\fR
Include extra integrity information in the resulting WIM. With \fBwimappend\fR,
-also check the integrity of the WIM before appending to it.
+also check the integrity of the WIM before appending to it. Also verify the
+integrity of any WIMs specified by \fB--update-of\fR and/or \fB--delta-from\fR.
+.TP
+\fB--include-integrity\fR
+Include extra integrity information in the resulting WIM, i.e. like
+\fB--check\fR but don't do any verification beforehand.
.TP
\fB--compress\fR=\fITYPE\fR[:\fILEVEL\fR]
With \fBwimcapture\fR, use the specified compression format in the new WIM file.
.TP
\fB--compress\fR=\fITYPE\fR[:\fILEVEL\fR]
With \fBwimcapture\fR, use the specified compression format in the new WIM file.
Before deleting the image, verify the WIM's integrity if extra integrity
information is present. In addition, include extra integrity information in the
modified WIM, even if it was not present before.
Before deleting the image, verify the WIM's integrity if extra integrity
information is present. In addition, include extra integrity information in the
modified WIM, even if it was not present before.
+.TP
+\fB--include-integrity\fR
+Include extra integrity information in the modified WIM, i.e. like \fB--check\fR
+but don't do any verification beforehand.
+.TP
\fB--soft\fR
Perform a "soft delete". Specifying this flag overrides the default behavior of
rebuilding the entire WIM after deleting an image. Instead, only minimal
\fB--soft\fR
Perform a "soft delete". Specifying this flag overrides the default behavior of
rebuilding the entire WIM after deleting an image. Instead, only minimal
source WIM also the bootable image of the destination WIM.
.TP
\fB--check\fR
source WIM also the bootable image of the destination WIM.
.TP
\fB--check\fR
-Before exporting the image(s), verify the integrity of the source and
-destination WIMs if extra integrity information is present. Also include extra
-integrity information in the destination WIM, even if it was not present before.
+Before exporting the image(s), verify the integrity of the source WIM,
+destination WIM, and any referenced WIMs whenever they have extra integrity
+information present. Also include extra integrity information in the
+destination WIM, even if it was not present before.
.TP
\fB--nocheck\fR
Do not include extra integrity information in the destination WIM, even if it
was present before.
.TP
.TP
\fB--nocheck\fR
Do not include extra integrity information in the destination WIM, even if it
was present before.
.TP
+\fB--include-integrity\fR
+Include extra integrity information in the destination WIM, i.e. like
+\fB--check\fR but don't do any verification beforehand.
+.TP
\fB--compress\fR=\fITYPE\fR[:\fILEVEL\fR]
Specify the compression type, and optionally the compression level for that
compression type, for \fIDEST_WIMFILE\fR. Note that if \fIDEST_WIMFILE\fR
\fB--compress\fR=\fITYPE\fR[:\fILEVEL\fR]
Specify the compression type, and optionally the compression level for that
compression type, for \fIDEST_WIMFILE\fR. Note that if \fIDEST_WIMFILE\fR
.TP
\fB--check\fR
Verify the integrity of WIM if it contains extra integrity information. In
.TP
\fB--check\fR
Verify the integrity of WIM if it contains extra integrity information. In
-addition, if modifying the WIM, include extra integrity information in the
-modified WIM, even if it was not present before.
+addition, if modifying the WIM, add extra integrity information if it was not
+present before.
.TP
\fB--nocheck\fR
If modifying the WIM, remove its extra integrity information, if it had any.
.TP
.TP
\fB--nocheck\fR
If modifying the WIM, remove its extra integrity information, if it had any.
.TP
+\fB--include-integrity\fR
+If modifying the WIM, add extra integrity information if it was not present
+before, i.e. like \fB--check\fR but don't also do the verification beforehand.
+.TP
\fB--image-property\fR \fINAME\fR=\fIVALUE\fR
Assign an arbitrary property to the specified \fIIMAGE\fR in the XML document of
the WIM. \fINAME\fR is an element path such as "WINDOWS/VERSION/MAJOR", and
\fB--image-property\fR \fINAME\fR=\fIVALUE\fR
Assign an arbitrary property to the specified \fIIMAGE\fR in the XML document of
the WIM. \fINAME\fR is an element path such as "WINDOWS/VERSION/MAJOR", and
extra integrity information. In addition, include extra integrity information
in \fIOUT_WIMFILE\fR, even if the split WIM parts did not contain this
information.
extra integrity information. In addition, include extra integrity information
in \fIOUT_WIMFILE\fR, even if the split WIM parts did not contain this
information.
+.TP
+\fB--include-integrity\fR
+Include extra integrity information in \fIOUT_WIMFILE\fR, i.e. like
+\fB--check\fR but don't also verify the split WIM parts beforehand.
.SH EXAMPLES
Join a split WIM, with the parts named `windows*.swm' where the * is anything
(usually the number of the part, except for the first part which may have no
.SH EXAMPLES
Join a split WIM, with the parts named `windows*.swm' where the * is anything
(usually the number of the part, except for the first part which may have no
Do not include extra integrity information in the optimized WIM, even if it was
present before.
.TP
Do not include extra integrity information in the optimized WIM, even if it was
present before.
.TP
+\fB--include-integrity\fR
+Include extra integrity information in the optimized WIM, i.e. like
+\fB--check\fR but don't also verify the WIM beforehand.
+.TP
\fB--recompress\fR
Recompress all data in the WIM while optimizing it. This will significantly
increase the time needed to optimize the WIM, but it may result in a better
\fB--recompress\fR
Recompress all data in the WIM while optimizing it. This will significantly
increase the time needed to optimize the WIM, but it may result in a better
Before splitting the WIM, verify its integrity if it contains extra integrity
information. Also include extra integrity information in each split WIM part,
even if \fIWIMFILE\fR did not contain it.
Before splitting the WIM, verify its integrity if it contains extra integrity
information. Also include extra integrity information in each split WIM part,
even if \fIWIMFILE\fR did not contain it.
+.TP
+\fB--include-integrity\fR
+Include extra integrity information in each split WIM part, i.e. like
+\fB--check\fR but don't also verify \fIWIMFILE\fR beforehand.
.SH EXAMPLES
Splits the WIM 'windows.wim' into 'windows.swm', 'windows2.swm', 'windows3.swm',
etc. where each part is at most 100 MiB:
.SH EXAMPLES
Splits the WIM 'windows.wim' into 'windows.swm', 'windows2.swm', 'windows3.swm',
etc. where each part is at most 100 MiB:
information. Also include extra integrity information in the updated WIM even
if it was not present before.
.TP
information. Also include extra integrity information in the updated WIM even
if it was not present before.
.TP
+\fB--include-integrity\fR
+Include extra integrity information in the updated WIM, i.e. like \fB--check\fR
+but don't also verify the WIM beforehand.
+.TP
\fB--threads\fR=\fINUM_THREADS\fR
Number of threads to use for compressing newly added files. Default: autodetect
(number of processors).
\fB--threads\fR=\fINUM_THREADS\fR
Number of threads to use for compressing newly added files. Default: autodetect
(number of processors).
IMAGEX_FORCE_OPTION,
IMAGEX_HEADER_OPTION,
IMAGEX_IMAGE_PROPERTY_OPTION,
IMAGEX_FORCE_OPTION,
IMAGEX_HEADER_OPTION,
IMAGEX_IMAGE_PROPERTY_OPTION,
+ IMAGEX_INCLUDE_INTEGRITY_OPTION,
IMAGEX_INCLUDE_INVALID_NAMES_OPTION,
IMAGEX_LAZY_OPTION,
IMAGEX_METADATA_OPTION,
IMAGEX_INCLUDE_INVALID_NAMES_OPTION,
IMAGEX_LAZY_OPTION,
IMAGEX_METADATA_OPTION,
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
{T("solid"), no_argument, NULL, IMAGEX_SOLID_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
{T("solid"), no_argument, NULL, IMAGEX_SOLID_OPTION},
static const struct option delete_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
static const struct option delete_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("soft"), no_argument, NULL, IMAGEX_SOFT_OPTION},
{T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
{T("soft"), no_argument, NULL, IMAGEX_SOFT_OPTION},
{T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("recompress"), no_argument, NULL, IMAGEX_RECOMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("recompress"), no_argument, NULL, IMAGEX_RECOMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("extract-xml"), required_argument, NULL, IMAGEX_EXTRACT_XML_OPTION},
{T("header"), no_argument, NULL, IMAGEX_HEADER_OPTION},
{T("lookup-table"), no_argument, NULL, IMAGEX_BLOBS_OPTION},
{T("extract-xml"), required_argument, NULL, IMAGEX_EXTRACT_XML_OPTION},
{T("header"), no_argument, NULL, IMAGEX_HEADER_OPTION},
{T("lookup-table"), no_argument, NULL, IMAGEX_BLOBS_OPTION},
static const struct option join_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
static const struct option join_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("nocheck"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
{T("no-check"), no_argument, NULL, IMAGEX_NOCHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("recompress"), no_argument, NULL, IMAGEX_RECOMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("recompress"), no_argument, NULL, IMAGEX_RECOMPRESS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
static const struct option split_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
static const struct option split_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
* update_command_add_option(). */
{T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
* update_command_add_option(). */
{T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION},
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
+ {T("include-integrity"), no_argument, NULL, IMAGEX_INCLUDE_INTEGRITY_OPTION},
{T("rebuild"), no_argument, NULL, IMAGEX_REBUILD_OPTION},
{T("command"), required_argument, NULL, IMAGEX_COMMAND_OPTION},
{T("wimboot-config"), required_argument, NULL, IMAGEX_WIMBOOT_CONFIG_OPTION},
{T("rebuild"), no_argument, NULL, IMAGEX_REBUILD_OPTION},
{T("command"), required_argument, NULL, IMAGEX_COMMAND_OPTION},
{T("wimboot-config"), required_argument, NULL, IMAGEX_WIMBOOT_CONFIG_OPTION},
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_SOFT_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_SOFT_OPTION:
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
{
int c;
bool boot = false;
{
int c;
bool boot = false;
- bool check = false;
- bool nocheck = false;
bool header = false;
bool blobs = false;
bool xml = false;
bool header = false;
bool blobs = false;
bool xml = false;
int image;
int ret;
int open_flags = 0;
int image;
int ret;
int open_flags = 0;
struct wimlib_wim_info info;
for_opt(c, info_options) {
struct wimlib_wim_info info;
for_opt(c, info_options) {
boot = true;
break;
case IMAGEX_CHECK_OPTION:
boot = true;
break;
case IMAGEX_CHECK_OPTION:
+ open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
break;
case IMAGEX_NOCHECK_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY;
break;
case IMAGEX_HEADER_OPTION:
header = true;
break;
case IMAGEX_HEADER_OPTION:
header = true;
- if (check && nocheck) {
- imagex_error(T("Can't specify both --check and --nocheck"));
- goto out_err;
- }
-
- if (check)
- open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
-
ret = wimlib_open_wim_with_progress(wimfile, open_flags, &wim,
imagex_progress_func, NULL);
if (ret)
ret = wimlib_open_wim_with_progress(wimfile, open_flags, &wim,
imagex_progress_func, NULL);
if (ret)
/* Only call wimlib_overwrite() if something actually needs to
* be changed. */
if (boot || any_property_changes ||
/* Only call wimlib_overwrite() if something actually needs to
* be changed. */
if (boot || any_property_changes ||
- (check && !info.has_integrity_table) ||
- (nocheck && info.has_integrity_table))
+ ((write_flags & WIMLIB_WRITE_FLAG_CHECK_INTEGRITY) &&
+ !info.has_integrity_table) ||
+ ((write_flags & WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY) &&
+ info.has_integrity_table))
- int write_flags = 0;
-
- if (check)
- write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
- if (nocheck)
- write_flags |= WIMLIB_WRITE_FLAG_NO_CHECK_INTEGRITY;
ret = wimlib_overwrite(wim, write_flags, 1);
} else {
imagex_printf(T("The file \"%"TS"\" was not modified "
ret = wimlib_overwrite(wim, write_flags, 1);
} else {
imagex_printf(T("The file \"%"TS"\" was not modified "
out_usage:
usage(CMD_INFO, stderr);
out_usage:
usage(CMD_INFO, stderr);
switch (c) {
case IMAGEX_CHECK_OPTION:
swm_open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
switch (c) {
case IMAGEX_CHECK_OPTION:
swm_open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
wim_write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
default:
wim_write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
default:
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_NOCHECK_OPTION:
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
switch (c) {
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
default:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
default:
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_CHECK_OPTION:
open_flags |= WIMLIB_OPEN_FLAG_CHECK_INTEGRITY;
+ /* fall-through */
+ case IMAGEX_INCLUDE_INTEGRITY_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_REBUILD_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_CHECK_INTEGRITY;
break;
case IMAGEX_REBUILD_OPTION: