Wimlib: ImageX / DISM Alternative To Manipulate WIM Files In Linux [Ubuntu PPA]

Wimlib is a library that allows creating, modifying, extracting and mounting WIM (Windows Imaging Format) files. It comes with a free implementations of ImageX called “wimlib-imagex”, available for both Linux and Windows.

WIM is a file-based disk image format developed by Microsoft for Windows Vista and later. The Windows Setup DVD uses such files for the installation process. For more information, see the WIM article on Wikipedia.

wimlib

Besides WIM extract, create and update support, this free software alternative to ImageX or DISM (Deployment Image Servicing and Management) allows users to mount WIM images, either readonly or read-write and on Linux, it can even be used to extract or create WIM images to/from unmounted NTFS volumes, by using ntfs-3g. Using it from Linux, you can back up, install or restore Windows directly from a WIM file.

Extracting a WIM file can also be achieved by using p7zip (for example, you can extract a WIM file using Archive Manager, by renaming the file extension to .7z, or you can do it via command line, using “7z”) however, the latest stable p7zip 9.20.1 seems to fail with Windows 8 WIM images. Wimlib on the other hand should handle Windows 8 WIM files properly.

Wimlib features (via Wimlib Sourceforge page):

  • Support for both Linux and Windows;
  • Apply/extract an image from a WIM file to a directory;
  • Apply/extract an image from a WIM file directly to a NTFS volume;
  • Capture a directory tree as a WIM image in a new or existing WIM;
  • Capture a NTFS volume as a WIM image in a new or existing WIM;
  • Mount an image from a WIM file read-only or read-write (Linux only);
  • Add or delete files from a WIM image without mounting it;
  • Extract individual files or directories without mounting it;
  • Delete an image from a WIM file;
  • Display information about a WIM file;
  • Change WIM image name, description, or bootable status;
  • Export image(s) from one WIM to an existing or new WIM;
  • Support for both compression formats used in WIMs (LZX and XPRESS);
  • Split a WIM file into parts, or join a split WIM into a standalone WIM;
  • Directly apply, export, or mount an image from a split WIM.

Wimlib isn’t available in the official Ubuntu repositories and the Launchpad PPAs I’ve found either don’t have Wimlib for all the supported Ubuntu versions or they have old Wimlib packages so to make it easier to install in Ubuntu (and derivatives), I’ve uploaded the latest Wimlib to the main WebUpd8 PPA.

Install Wimlib in Ubuntu via PPA

To add the main WebUpd8 PPA (note: our PPA has quite a few packages, so check out the package list before adding the PPA) and install Wimlib in Ubuntu, use the following commands:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install wimtools

Once installed, run “man wimlib-imagex” (for the command, you can simply use “imagex” instead of “wimblib-imagex“) in a terminal to see the available options. To create a customized bootable image of Windows PE, check out “man mkwinpeimg“.

Arch Linux users can install Wimlib via AUR.

For other Linux distributions and windows, download Wimlib from Sourceforge.


Web Upd8 – Ubuntu / Linux blog