]> wimlib.net Git - wimlib/blobdiff - README
Split WIM mount and split WIM documentation
[wimlib] / README
diff --git a/README b/README
index 6542e251d5f03cdfeb1175dbc67ab5bf0a7da9d1..91deb1c064ff4ad895e2647b0512c6231d523b31 100644 (file)
--- a/README
+++ b/README
@@ -6,6 +6,27 @@ 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.
+
+A WIM file may be either stand-alone or split into multiple parts.
+
                                   WINDOWS PE
 
 A major use for this library is to create customized images of Windows PE, the
@@ -63,19 +84,21 @@ server for PXE booting.  See the main page `doc/mkwinpeiso.1' for more details.
 
 * libfuse
        Unless configured with --without-fuse, wimlib requires a non-ancient
-       version of libfuse to be installed.  see above).  Most GNU/Linux
-       distributions already include this, but make sure you have the libfuse
-       package installed (libfuse-dev if your distribution distributes header
-       files separately).  FUSE also requires a kernel module.
-       If the kernel module is available it will automatically be loaded if you
-       try to mount a WIM file.  For more information see
-       http://fuse.sourceforge.net/.  FUSE is also available for FreeBSD.
+       version of libfuse to be installed.  Most GNU/Linux distributions
+       already include this, but make sure you have the libfuse package
+       installed, and also libfuse-dev if your distribution distributes header
+       files separately.  FUSE also requires a kernel module.  If the kernel
+       module is available it will automatically be loaded if you try to mount
+       a WIM file.  For more information see http://fuse.sourceforge.net/.
+       FUSE is also available for FreeBSD.
 
 * libntfs-3g
        Unless configured with --without-ntfs-3g, wimlib requires the library
-       and headers for libntfs-3g to be installed.  Currently, the version
-       dated 2012-1-15 is required because I've cloned some of the code from
-       the library.
+       and headers for libntfs-3g to be installed.  Currently, the libntfs-3g
+       version dated 2012-1-15 is required because I've cloned some of the code
+       from the library, and it needs to compiled against the same version.
+       I'm hoping to be able to use future version of libntfs-3g without code
+       cloning after submitting some patches, however.
 
 * cdrkit (optional)
 * mtools (optional)