IMAGEX_NO_ACLS_OPTION,
IMAGEX_NO_WILDCARDS_OPTION,
IMAGEX_NOT_PIPABLE_OPTION,
+ IMAGEX_PACK_CHUNK_SIZE_OPTION,
IMAGEX_PACK_STREAMS_OPTION,
IMAGEX_PATH_OPTION,
IMAGEX_PIPABLE_OPTION,
{T("compress"), required_argument, NULL, IMAGEX_COMPRESS_OPTION},
{T("compress-slow"), no_argument, NULL, IMAGEX_COMPRESS_SLOW_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
+ {T("pack-chunk-size"), required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
+ {T("solid-chunk-size"),required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
{T("pack-streams"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("config"), required_argument, NULL, IMAGEX_CONFIG_OPTION},
{T("pack-streams"),no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
+ {T("pack-chunk-size"), required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
+ {T("solid-chunk-size"),required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
{T("ref"), required_argument, NULL, IMAGEX_REF_OPTION},
{T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION},
{T("rebuild"), no_argument, NULL, IMAGEX_REBUILD_OPTION},
{T("compress-slow"), no_argument, NULL, IMAGEX_COMPRESS_SLOW_OPTION},
{T("recompress-slow"), no_argument, NULL, IMAGEX_COMPRESS_SLOW_OPTION},
{T("chunk-size"), required_argument, NULL, IMAGEX_CHUNK_SIZE_OPTION},
+ {T("pack-chunk-size"), required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
+ {T("solid-chunk-size"),required_argument, NULL, IMAGEX_PACK_CHUNK_SIZE_OPTION},
{T("pack-streams"),no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("solid"), no_argument, NULL, IMAGEX_PACK_STREAMS_OPTION},
{T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION},
int write_flags = 0;
int compression_type = WIMLIB_COMPRESSION_TYPE_INVALID;
uint32_t chunk_size = UINT32_MAX;
+ uint32_t pack_chunk_size = UINT32_MAX;
const tchar *wimfile;
int wim_fd;
const tchar *name;
if (chunk_size == UINT32_MAX)
goto out_err;
break;
+ case IMAGEX_PACK_CHUNK_SIZE_OPTION:
+ pack_chunk_size = parse_chunk_size(optarg);
+ if (pack_chunk_size == UINT32_MAX)
+ goto out_err;
+ break;
case IMAGEX_PACK_STREAMS_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_PACK_STREAMS;
break;
if (ret)
goto out_free_wim;
}
+ if (pack_chunk_size != UINT32_MAX) {
+ ret = wimlib_set_output_pack_chunk_size(wim, pack_chunk_size);
+ if (ret)
+ goto out_free_wim;
+ }
#ifndef __WIN32__
/* Detect if source is regular file or block device and set NTFS volume
STRING_SET(refglobs);
unsigned num_threads = 0;
uint32_t chunk_size = UINT32_MAX;
+ uint32_t pack_chunk_size = UINT32_MAX;
for_opt(c, export_options) {
switch (c) {
if (chunk_size == UINT32_MAX)
goto out_err;
break;
+ case IMAGEX_PACK_CHUNK_SIZE_OPTION:
+ pack_chunk_size = parse_chunk_size(optarg);
+ if (pack_chunk_size == UINT32_MAX)
+ goto out_err;
+ break;
case IMAGEX_REF_OPTION:
ret = string_set_append(&refglobs, optarg);
if (ret)
if (ret)
goto out_free_dest_wim;
}
+ if (pack_chunk_size != UINT32_MAX) {
+ ret = wimlib_set_output_pack_chunk_size(dest_wim, pack_chunk_size);
+ if (ret)
+ goto out_free_dest_wim;
+ }
image = wimlib_resolve_image(src_wim, src_image_num_or_name);
ret = verify_image_exists(image, src_image_num_or_name, src_wimfile);
int write_flags = WIMLIB_WRITE_FLAG_REBUILD;
int compression_type = WIMLIB_COMPRESSION_TYPE_INVALID;
uint32_t chunk_size = UINT32_MAX;
+ uint32_t pack_chunk_size = UINT32_MAX;
int ret;
WIMStruct *wim;
const tchar *wimfile;
if (chunk_size == UINT32_MAX)
goto out_err;
break;
+ case IMAGEX_PACK_CHUNK_SIZE_OPTION:
+ pack_chunk_size = parse_chunk_size(optarg);
+ if (pack_chunk_size == UINT32_MAX)
+ goto out_err;
+ break;
case IMAGEX_PACK_STREAMS_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_PACK_STREAMS;
write_flags |= WIMLIB_WRITE_FLAG_RECOMPRESS;
if (ret)
goto out_wimlib_free;
}
+ if (pack_chunk_size != UINT32_MAX) {
+ ret = wimlib_set_output_pack_chunk_size(wim, pack_chunk_size);
+ if (ret)
+ goto out_wimlib_free;
+ }
old_size = file_get_size(wimfile);
tprintf(T("\"%"TS"\" original size: "), wimfile);