- WIMLIB
-
-This is wimlib version 1.0.0 (September 2012). wimlib can be used to read,
-write, and mount files in the Windows Imaging Format (WIM files). These
-files are normally created by using the `imagex.exe' utility on Windows,
-but this library provides a free implementetion of imagex for UNIX-based
-systems.
-
- WIM FILES
-
-A Windows Imaging (WIM) file is an archive. Like some other archive formats
-such as ZIP, files in WIM archives may be compressed. WIM archives support two
-Microsoft-specific compression formats: LZX and XPRESS. Both are based on LZ77
-and Huffman encoding, and both are supported by wimlib.
-
-Unlike ZIP files, WIM files can contain multiple independent toplevel directory
-trees known as images. While each image has its own metadata describing a
-directory tree and file access modes, files are not duplicated for each image;
-instead, each file is included only once in the entire WIM. Microsoft did this
-so that in one WIM file, they could do things like have 5 different versions of
-Windows that are almost exactly the same.
-
-Microsoft provides documentation for the WIM file format, XPRESS compression
-format, and LZX compression format. The XPRESS documentation is acceptable, but
-the LZX documentation is not entirely correct, and the WIM documentation itself
-is very incomplete and is of unacceptable quality.
-
- WINDOWS PE
-
-A major use for this library is to create customized images of Windows PE, the
-Windows Preinstallation Environment, without having to rely on Windows. Windows
-PE is a lightweight version of Windows that can run entirely from memory and can
-be used to install Windows from local media or a network drive or perform
-maintenance. Windows PE is the operating system that runs when you boot from
+ INTRODUCTION
+
+This is wimlib version 1.4.0 (May 2013). wimlib is a C library for creating,
+modifying, extracting, and mounting files in the Windows Imaging Format (WIM
+files). These files are normally created by using the `imagex.exe' utility on
+Windows, but wimlib is distributed with a free implementation of ImageX called
+"wimlib-imagex" for both UNIX and Windows.
+
+ INSTALLATION
+
+To install wimlib and wimlib-imagex on Windows you simply need to download and
+extract the ZIP file containing the latest binaries from the SourceForge page
+(http://sourceforge.net/projects/wimlib/), which you may have already done.
+
+To install wimlib and wimlib-imagex on UNIX (with Linux being the primary
+supported and tested platform), you must compile it from the source code. At
+some point I might start posting RPMs and Debian packages for convenience.
+
+ WIM FILES
+
+A Windows Imaging (WIM) file is an archive designed primarily for archiving
+Windows filesystems. However, it can be used on other platforms as well, with
+some limitations. Like some other archive formats such as ZIP, files in WIM
+archives may be compressed. WIM files support two compression formats: LZX and
+XPRESS. Both are supported by wimlib.
+
+A WIM file consists of one or more "images". Each image is an independent
+top-level directory structure and is logically separate from all other images in
+the WIM. Each image has a name as well as a 1-based index in the WIM file. To
+save space, WIM archives automatically combine all duplicate files across all
+images.
+
+A WIM file may be either stand-alone or split into multiple parts. Split WIMs
+are read-only and cannot be modified.
+
+ IMAGEX IMPLEMENTATION
+
+wimlib itself is a C library, and it provides a documented public API (See:
+http://wimlib.sourceforge.net) for other programs to use. However, it is also
+distributed with a command-line program called "wimlib-imagex" that uses this
+library to implement an imaging tool similar to Microsoft's ImageX.
+wimlib-imagex supports almost all the capabilities of Microsoft's ImageX as well
+as additional capabilities. wimlib-imagex works on both UNIX and Windows,
+although some features differ between the platforms.
+
+Run `wimlib-imagex' with no arguments to see an overview of the available
+commands and their syntax. For additional documentation:
+
+ * If you have installed wimlib-imagex on UNIX, you will find further
+ documentation in the man pages; run `man wimlib-imagex' to get started.
+
+ * If you have downloaded the Windows binary distribution, you will find the
+ documentation for wimlib-imagex in PDF format in the "doc" directory,
+ ready for viewing with any PDF viewer. Please note that although the PDF
+ files are converted from UNIX-style "man pages", they do document
+ Windows-specific behavior when appropriate.
+
+ COMPRESSION RATIO
+
+wimlib (and wimlib-imagex) can create XPRESS or LZX compressed WIM archives.
+Currently, the XPRESS compression ratio is slightly better than that provided by
+Microsoft's software, while the LZX compression ratio is approaching that of
+Microsoft's software but is not quite there yet. Running time is as good as or
+better than Microsoft's software, especially with multithreaded compression,
+available in wimlib v1.1.0 and later.
+
+The following tables compare the compression ratio and performance for creating
+a compressed x86_64 Windows PE image. Note: these timings were done in a
+Windows 7 virtual machine so that the times would be fully comparable; however,
+wimlib-imagex will have even better performance on Linux.
+
+ Table 1. WIM size
+
+ XPRESS Compression LZX Compression
+ wimlib-imagex (v1.4.0): 176,724,198 bytes 165,919,718 bytes
+ Microsoft imagex.exe: 178,763,991 bytes 160,138,533 bytes
+
+ Table 2. Time to create WIM
+
+ XPRESS Compression LZX Compression
+ wimlib-imagex (v1.4.0, 2 threads): 44 sec 66 sec
+ Microsoft imagex.exe: 60 sec 115 sec
+
+ NTFS SUPPORT
+
+WIM images may contain data, such as alternate data streams and
+compression/encryption flags, that are best represented on the NTFS filesystem
+used on Windows. Also, WIM images may contain security descriptors which are
+specific to Windows and cannot be represented on other operating systems.
+wimlib handles this NTFS-specific or Windows-specific data in a
+platform-dependent way:
+
+ * In the Windows version of wimlib and wimlib-imagex, NTFS-specific and
+ Windows-specific data are supported natively.
+
+ * In the UNIX version of wimlib and wimlib-imagex, NTFS-specific and
+ Windows-specific data are ordinarily ignored; however, there is also special
+ support for capturing and extracting images directly to/from unmounted NTFS
+ volumes. This was made possible with the help of libntfs-3g from the
+ NTFS-3g project.
+
+For both platforms the code for NTFS capture and extraction is complete enough
+that it is possible to apply an image from the "install.wim" contained in recent
+Windows installation media (Vista, Windows 7, or Windows 8) directly to a NTFS
+filesystem, and then boot Windows from it after preparing the Boot Configuration
+Data. In addition, a Windows installation can be captured (or backed up) into a
+WIM file, and then re-applied later.
+
+ WINDOWS PE
+
+A major use for wimlib and wimlib-imagex is to create customized images of
+Windows PE, the Windows Preinstallation Environment, on either UNIX or Windows
+without having to rely on Microsoft's software and its restrictions and
+limitations.
+
+Windows PE is a lightweight version of Windows that can run entirely from memory
+and can be used to install Windows from local media or a network drive or
+perform maintenance. It is the operating system that runs when you boot from