INTRODUCTION
-This is wimlib version 1.9.2 (June 2016). wimlib is a C library for
+This is wimlib version 1.14.0-BETA2 (March 2023). wimlib is a C library for
creating, modifying, extracting, and mounting files in the Windows Imaging
Format (WIM files). wimlib and its command-line frontend 'wimlib-imagex'
provide a free and cross-platform alternative to Microsoft's WIMGAPI, ImageX,
To install wimlib and wimlib-imagex on UNIX-like systems, you can compile from
source (e.g. './configure && make && sudo make install'). Alternatively, check
-if a package has already been prepared for your operating system. Example files
-for Debian and RPM packaging are in the debian/ and rpm/ directories.
+if a package has already been prepared for your operating system.
To install wimlib and wimlib-imagex on Windows, just download and extract the
ZIP file containing the latest binaries. See README.WINDOWS for more details.
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:
+commands and their syntax. Note that the commands have both long and short
+forms, e.g. `wimlib-imagex apply' is equivalent to `wimapply'. For additional
+documentation:
* 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,
- 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.
+ documentation for wimlib-imagex in PDF format in the "doc" directory. Note
+ that although the documentation is written in the style of UNIX manual
+ pages, it does document Windows-specific behavior when relevant.
COMPRESSION
NTFS SUPPORT
-WIM images may contain data, such as alternate data streams and
+WIM images may contain data, such as named 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.
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-like systems
-or Windows without having to rely on Microsoft's software and its restrictions
-and limitations.
+wimlib can also be used to create customized images of Windows PE on either
+UNIX-like systems or Windows. Windows PE (Preinstallation Environment) is a
+lightweight version of Windows that runs entirely from memory and can be used to
+perform maintenance or to install Windows. It is the operating system that runs
+when you boot from the Windows installation media.
-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
-the Windows installation media.
+A copy of Windows PE can be found on the installation media for Windows (Vista
+or later) as the file `sources/boot.wim', or in the Windows Automated
+Installation Kit (WAIK), which is free to download from Microsoft.
-You can find Windows PE on the installation media for Windows (Vista or later)
-as 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-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-like systems to
-ease the process of creating and customizing a bootable Windows PE image.
+A shell script `mkwinpeimg' is provided with wimlib on UNIX-like systems to
+simplify the process of creating and customizing a bootable Windows PE image,
+sourcing the needed files from the Windows installation media or from the WAIK.
DEPENDENCIES
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 documents.
- Almost all Linux distributions should include this; however, you may
- need to install the header files, which might be in a package named
- "libxml2-dev" or similar. For more information see http://xmlsoft.org/.
-
-* libfuse (optional but recommended)
- Unless configured --without-fuse, wimlib requires a non-ancient version
- of libfuse. Most 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 should
- automatically be loaded if you try to mount a WIM image. For more
- information see http://fuse.sourceforge.net/.
-
-* libattr (optional but recommended)
- Unless configured --without-fuse, wimlib also requires libattr. Almost
- all Linux distributions should include this; however, you may need to
- install the header files, which might be in a package named "attr-dev",
- "libattr1-dev", or similar.
+* libfuse3 (optional but recommended)
+ Unless configured --without-fuse, wimlib requires libfuse3, for the
+ support for mounting WIM images. Most Linux distributions already
+ include this, but make sure you have the fuse3 package installed, and
+ also libfuse3-dev if your distribution distributes development files
+ separately. FUSE also requires a kernel module. If the kernel module
+ is available it should automatically be loaded if you try to mount a WIM
+ image. For more information, see https://github.com/libfuse/libfuse/.
* libntfs-3g (optional but recommended)
Unless configured --without-ntfs-3g, wimlib requires the library and
headers for libntfs-3g to be installed. The minimum required version is
2011-4-12, but newer versions contain important bug fixes.
-* OpenSSL / libcrypto (optional)
- wimlib can use the SHA-1 message digest implementation from libcrypto
- (usually provided by OpenSSL) instead of compiling in yet another SHA-1
- implementation.
-
* cdrkit (optional)
* mtools (optional)
* syslinux (optional)
depending on what options are given to it. Depending on your Linux
distribution, you may already have these programs installed, or they may
be in the software repository. Making an ISO filesystem requires
- `mkisofs' from `cdrkit' (http://www.cdrkit.org). Making a disk image
- requires `mtools' (http://www.gnu.org/software/mtools) and `syslinux'
- (http://www.syslinux.org). Retrieving files from the Windows Automated
- Installation Kit requires `cabextract' (http://www.cabextract.org.uk).
+ `mkisofs' from `cdrkit' (https://www.cdrkit.org). Making a disk image
+ requires `mtools' (https://www.gnu.org/software/mtools) and `syslinux'
+ (https://www.syslinux.org). Retrieving files from the Windows Automated
+ Installation Kit requires `cabextract' (https://www.cabextract.org.uk).
CONFIGURATION
--without-fuse
The --without-fuse option disables support for mounting WIM images.
- This removes dependencies on libfuse, librt, and libattr. The wimmount,
+ This removes dependencies on libfuse and librt. The wimmount,
wimmountrw, and wimunmount commands will not work.
The default is --with-fuse when building for Linux, and --without-fuse
otherwise.
---without-libcrypto
- Build in functions for SHA-1 rather than using external SHA-1 functions
- from libcrypto (usually provided by OpenSSL).
-
- The default is to use libcrypto if it is found on your system.
-
PORTABILITY
wimlib works on both UNIX-like systems (Linux, Mac OS X, FreeBSD, etc.) and
-Windows (XP and later).
+Windows (Vista and later).
As much code as possible is shared among all supported platforms, but there
necessarily are some differences in what features are supported on each platform
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.
+used by recent versions of Windows). For more information about NTFS-3G, see
+https://github.com/tuxera/ntfs-3g/.
A limited number of other free programs can handle some parts of the WIM
file format:
- * 7-zip is able to extract and create WIMs (as well as files in many
+ * 7-Zip is able to extract and create WIMs (as well as files in many
other archive formats). However, wimlib is designed specifically to handle
WIM files and provides features previously only available in Microsoft's
implementation, such as the ability to mount WIMs read-write as well as
If you are looking for an archive format that provides features similar to WIM
but was designed primarily for UNIX, you may want to consider SquashFS
-(http://squashfs.sourceforge.net/). However, you may find that wimlib works
-surprisingly well on UNIX. It will store hard links and symbolic links, and it
-has optional support for storing UNIX owners, groups, modes, and special files
-such as device nodes and FIFOs. Actually, I use it to back up my own files on
-Linux!
+(https://docs.kernel.org/filesystems/squashfs.html). However, you may find that
+wimlib works surprisingly well on UNIX. It will store hard links and symbolic
+links, and it supports storing standard UNIX file permissions (owners, groups,
+and modes); special files such as device nodes and FIFOs; and extended
+attributes. Actually, I use it to back up my own files on Linux!
HISTORY
wimlib was originally a project started by Carl Thijssen for use on Linux in the
-Ultimate Deployment Appliance (http://www.ultimatedeployment.org/). Since then
+Ultimate Deployment Appliance (https://www.ultimatedeployment.org/). Since then
the code has been entirely rewritten and improved (main author: Eric Biggers).
Windows support has been available since version 1.3.0 (March 2013). A list of
version-to-version changes can be found in the NEWS file.
law. See the COPYING file for more details.
Bug reports, suggestions, and other contributions are appreciated and may be
-sent via email to ebiggers3@gmail.com or posted to https://wimlib.net/forums.
+posted to https://wimlib.net/forums/.
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-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.
-
-Note: copyright years may be listed using range notation, e.g., 2012-2016,
-indicating that every year in the range, inclusive, is a copyrightable year that
-would otherwise be listed individually.