INTRODUCTION
-This is wimlib version 1.4.0 (May 2013). wimlib is a C library for creating,
+This is wimlib version 1.5.0 (August 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.
+"wimlib-imagex" for both UNIX-like systems and Windows.
INSTALLATION
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.
+To install wimlib and wimlib-imagex on UNIX-like systems (with Linux being the
+primary supported and tested platform), you must compile the source code, which
+is also available at http://sourceforge.net/projects/wimlib/. Alternatively,
+check if a package has been prepared for your Linux distribution. Example files
+for Debian and RPM packaging are in the debian/ and rpm/ directories.
WIM FILES
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.
+as additional capabilities. wimlib-imagex works on both UNIX-like systems 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 installed wimlib-imagex on a UNIX-like system, 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,
available in wimlib v1.1.0 and later.
The following tables compare the compression ratio and performance for creating
-a compressed Windows PE image (disk usage of about 524 MB, uncompressed WIM size
-361 MB):
+a compressed x86_64 Windows PE image. Note: these timings were done on Windows
+7 so that the times would be fully comparable; however, wimlib-imagex may have
+even better performance on Linux.
Table 1. WIM size
XPRESS Compression LZX Compression
- wimlib-imagex (v1.2.1): 138,971,353 bytes 131,379,943 bytes
- Microsoft imagex.exe: 140,406,981 bytes 127,249,176 bytes
+ wimlib-imagex (v1.4.0): 165,301,379 bytes 155,254,385 bytes
+ Microsoft imagex.exe: 167,212,939 bytes 149,973,212 bytes
Table 2. Time to create WIM
XPRESS Compression LZX Compression
- wimlib-imagex (v1.2.1, 2 threads): 11 sec 17 sec
- Microsoft imagex.exe: 25 sec 89 sec
+ wimlib-imagex (v1.4.0, 2 threads): 18 sec 51 sec
+ Microsoft imagex.exe: 25 sec 93 sec
NTFS SUPPORT
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, the Windows Preinstallation Environment, on either UNIX-like systems
+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
Windows 8, in the file `sources/boot.wim'. Windows PE can also be found in the
Windows Automated Installation Kit (WAIK), which is free to download from
Microsoft, inside the `WinPE.cab' file, which you can extract natively on
-Windows, or on UNIX if you install either the `cabextract' or `p7zip' programs.
+Windows, or on UNIX-like systems if you install either the `cabextract' or
+`p7zip' programs.
In addition, Windows installations and recovery partitions frequently contain a
WIM containing an image of the Windows Recovery Environment, which is similar to
Windows PE.
-A shell script `mkwinpeimg' is distributed with wimlib on UNIX to ease the
-process of creating and customizing a bootable Windows PE image.
+A shell script `mkwinpeimg' is distributed with wimlib on UNIX-like systems to
+ease the process of creating and customizing a bootable Windows PE image.
DEPENDENCIES
This section documents the dependencies of wimlib and the programs distributed
-with it, when building for UNIX from source. If you have downloaded the Windows
-binary distribution of wimlib and wimlib-imagex then all dependencies were
-already included and this section is irrelevant.
+with it, when building for a UNIX-like system from source. If you have
+downloaded the Windows binary distribution of wimlib and wimlib-imagex then all
+dependencies were already included and this section is irrelevant.
* libxml2 (required)
This is a commonly used free library to read and write XML files. You
CONFIGURATION
This section documents the most important options that may be passed to the
-"configure" script when building the UNIX version from source:
+"configure" script when building from source:
--without-ntfs-3g
If libntfs-3g is not available or is not version 2011-4-12 or later,
wimlib with --without-ntfs-3g. On FreeBSD, before mounting a WIM you need to
load the POSIX message queue module (run `kldload mqueuefs').
-wimlib has not been tested on big-endian CPU architectures.
+The code has primarily been tested on x86 and x86_64 CPUs, but it's written to
+be portable to other architectures and I've also tested it on ARM. However,
+although the code is written to correctly deal with endianness, it has not yet
+actually been tested on a big-endian architecture.
REFERENCES
as it exists in reality and not as it exists in Microsoft's poorly written
documentation.
-The code in ntfs-apply.c and ntfs-capture.c uses the NTFS-3g library, which is a
-library for reading and writing to NTFS filesystems (the filesystem used by
-recent versions of Windows). See
+The code in ntfs-3g_apply.c and ntfs-3g_capture.c uses the NTFS-3g library,
+which is a library for reading and writing to NTFS filesystems (the filesystem
+used by recent versions of Windows). See
http://www.tuxera.com/community/ntfs-3g-download/ for more information.
lzx-decompress.c, the code to decompress WIM file resources that are compressed
You can see the documentation about Microsoft's version of ImageX at
http://technet.microsoft.com/en-us/library/cc749447(v=ws.10).aspx, so you can
-see how it compares to the version provided by this library.
+see how it compares to wimlib-imagex.
If you are looking for a UNIX archive format that provides features similar to
WIM, I recommend you take a look at SquashFS (http://squashfs.sourceforge.net/).
wimlib is independently developed and does not contain any code, data, or files
copyrighted by Microsoft. It is not known to be affected by any patents.
-On UNIX, if you do not want wimlib to be dynamically linked with libcrypto
-(OpenSSL), configure with --without-libcrypto. This replaces the SHA1
+On UNIX-like systems, if you do not want wimlib to be dynamically linked with
+libcrypto (OpenSSL), configure with --without-libcrypto. This replaces the SHA1
implementation with built-in code and there will be no difference in
functionality.