WIMEXPORT(1)

✨ WIMEXPORT(1) ✨

okay bestie, welcome to wimexport β€” part of the wimlib family, living in the User Commands section of the manual, and fr fr it's about to be your new fave πŸ’–


πŸ’« NAME πŸ’«

wimexport β€” export image(s) from a WIM archive 🫢


πŸŽ€ SYNOPSIS πŸŽ€

wimexport SRC_WIMFILE SRC_IMAGE DEST_WIMFILE
 [DEST_IMAGE_NAME [DEST_IMAGE_DESC]] [OPTION...]

(also known as wimlib-imagex export, same energy, different spelling πŸ’…)


🌸 DESCRIPTION 🌸

so like. wimexport β€” or, equivalently, wimlib-imagex export β€” takes the image you point at inside SRC_WIMFILE and exports it into DEST_WIMFILE, and you can also glow it up with a new name and/or description on the way out. ✨ If DEST_WIMFILE already exists, the image just gets appended to it, no biggie. If it doesn't exist? A whole new WIM archive gets created to hold the exported image. main character origin story fr.

SRC_IMAGE is which image in SRC_WIMFILE you're exporting, and it can be any of these three vibes:

  • the 1-based index of an image (so the first image is 1, not 0, okay πŸ’€)
  • the name of an image
  • the keyword "all" β€” which, yes, means literally all the images

and if you need to see what images are even in there, run wiminfo(1), she'll tell you πŸ‘‘

If you specify DEST_IMAGE_NAME, that's the name you're giving the image being exported. Default? Whatever its name was in SRC_WIMFILE, no notes. But bestie, heads up: if you do specify it, DEST_IMAGE_NAME has to be either a name that isn't already used in DEST_WIMFILE, or the empty string, which leaves the image unnamed. And you absolutely cannot specify DEST_IMAGE_NAME if you're exporting "all" the images. that's just the rules πŸ™ˆ

If you specify DEST_IMAGE_DESC, that's the description you're giving the image being exported. Default is its description in SRC_WIMFILE.

wimexport can export images from stand-alone WIMs and from split WIMs and delta WIMs too. peep the SPLIT WIMS section below ⬇️

She also does conversions, periodt: non-pipable WIM β†’ pipable WIM, pipable WIM β†’ non-pipable WIM, non-solid WIM β†’ solid WIM, solid WIM β†’ non-solid WIM. versatile icon πŸ’… And she can even export a pipable WIM straight to standard output if DEST_WIMFILE is "-" β€” see --pipable.


🌈 OPTIONS 🌈

  • --boot β€” mark the exported image as the "bootable" image of the WIM. or, if you're exporting multiple images, make whichever image was the bootable one in the source WIM also be the bootable one in the destination WIM. πŸ‘‘
  • --check β€” before exporting anything, verify the integrity of the source WIM, the destination WIM, and any referenced WIMs β€” but only whenever they actually have extra integrity information present. Also: stick extra integrity information into the destination WIM, even if it wasn't there before. double duty bestie ✨
  • --nocheck β€” do not include extra integrity information in the destination WIM, even if it was present before.
  • --include-integrity β€” include extra integrity information in the destination WIM. it's giving --check but without doing any of the verification beforehand, lowkey efficient 🫢
  • --compress=TYPE[:LEVEL] β€” specify the compression type β€” and optionally the compression level for that type β€” for DEST_WIMFILE. ⚠️ note that if DEST_WIMFILE already exists, this option cannot change its compression type. want the full deets? see the documentation for this option under wimcapture(1).
  • --chunk-size=SIZE β€” set the WIM compression chunk size to SIZE. again, the full tea lives in the docs for this option under wimcapture(1).
  • --recompress β€” force all exported data to be recompressed, even if the destination WIM is gonna use the same compression type as the source WIM. no shortcuts, she's doing the work πŸ’ͺ
  • --solid β€” create a "solid" archive that compresses multiple files together. usually this means a significantly better compression ratio πŸŽ‰ but it comes with disadvantages, like reduced compatibility 😭. see the docs for this option under wimcapture(1) for more.
  • --solid-compress=TYPE[:LEVEL] β€” like --compress, but it sets the compression type used in solid resources. see the docs for this option under wimcapture(1).
  • --solid-chunk-size=SIZE β€” like --chunk-size, but it sets the chunk size used in solid resources. see the docs for this option under wimcapture(1).
  • --threads=NUM_THREADS β€” how many threads to use for compressing data. default: autodetect, i.e. the number of processors. she multitasks πŸ’…
  • --rebuild β€” if you're exporting into an existing WIM, rebuild it instead of appending to it. rebuilding is slower, yeah, but it saves some space that would otherwise be left as a hole in the WIM. also peep wimoptimize(1).
  • --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 gets interpreted by wimexport and might need quoting to protect it from shell expansion. protect her at all costs 🫢
  • --pipable β€” build or rebuild DEST_WIMFILE as a "pipable WIM" that can be applied fully sequentially, including from a pipe. see wimcapture(1) for more about creating pipable WIMs. without this option, the default is to make DEST_WIMFILE pipable only if it was "-" (standard output) or was already an existing pipable WIM. iykyk ✨
  • --not-pipable β€” rebuild DEST_WIMFILE as a normal, non-pipable WIM. this is only useful if you're exporting image(s) into a pipable WIM but you want it rebuilt as non-pipable instead. vibe switch πŸ¦‹
  • --wimboot β€” mark the destination image as WIMBoot-compatible. also, if you're exporting into a new archive, set the compression type to whatever is recommended for WIMBoot (currently, XPRESS with 4096 byte chunks).
  • --unsafe-compact β€” compact the existing destination WIM in-place and append any new data, eliminating "holes". it's efficient, sure, but bestie in general this option should not be used because a failed or interrupted compaction will corrupt the WIM archive πŸ’€πŸ’€ for more info, see the documentation for this option under wimoptimize(1).

🧚 SPLIT WIMS 🧚

you can use wimexport to export images from a split WIM β€” but not to one, okay? πŸ™ˆ

SRC_WIMFILE has to point at the first part of the split WIM, and the additional parts get specified in one or more --ref="GLOB" options. and since globbing is built right into --ref, typically only one --ref option is necessary. slay.

for example, the names for the split WIM parts usually go something like:

mywim.swm
mywim2.swm
mywim3.swm
mywim4.swm
mywim5.swm

so to export the first image of this split WIM into a new or existing WIM file "other.wim", run:

wimexport mywim.swm 1 other.wim --ref="mywim*.swm"

πŸ’œ NOTES πŸ’œ

Data consistency: except when you're using --unsafe-compact, it is safe to abort a wimexport command partway through. 🫢 however β€” after doing that, it's recommended to run wimoptimize on the destination WIM to remove any data that got appended to the physical WIM file but never got incorporated into the structure of the WIM. unless the WIM was being rebuilt (e.g. with --rebuild), in which case you should just delete the temporary file left over. cleanup era ✨

Data deduplication: the WIM format has built-in deduplication (also called "single instancing") of file contents. so when an image is exported, only the file contents that aren't already present in the destination WIM get physically copied. πŸŽ‰ however, a new copy of the image's metadata resource β€” which describes the image's directory structure β€” will always be created. no skipping that one.

ESD files: wimexport supports solid-compressed WIMs, aka "ESD" (.esd) files β€” except for encrypted ESDs, which have to be decrypted first πŸ”. the source and destination files of wimexport can be solid WIMs, non-solid WIMs, or a combination of the two, mix and match bestie. if the destination file doesn't exist, then by default it gets created as solid if the source was solid, or as non-solid if the source was non-solid. want to override that? either specify --solid to create a solid WIM (.esd file), or specify --compress=LZX to create a standard non-solid WIM (.wim file). your call πŸ‘‘


🌟 EXAMPLES 🌟

export the second image of 'boot.wim' into the new WIM file 'new.wim':

wimexport boot.wim 2 new.wim

the example above creates "new.wim" with the same compression type as "boot.wim". if you want to change the compression type, specify --compress=TYPE; for example:

wimexport boot.wim 2 new.wim --compress=LZX

export "ESD to WIM" β€” that is, solid WIM to non-solid WIM:

wimexport install.esd all install.wim --compress=LZX

export "WIM to ESD" β€” that is, non-solid WIM to solid WIM:

wimexport install.wim all install.esd --solid

πŸ‘€ SEE ALSO πŸ‘€

wimlib-imagex(1) wiminfo(1) wimoptimize(1)


and that's the whole page bestie, you ate it πŸ’… this was wimlib version 1.14.5, dated January 2026 β€” go forth and export, icon πŸ‘‘πŸ’–

πŸ“¦ where this page comes from