X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=doc%2Fimagex.1.in;h=8ba1ed9598e092b5f0a352446a8ce002c4375a68;hb=5234a83ed14108b538b93bf5d4460068a45b07d1;hp=c65cd2d870deffbcf71a9ca3f39e8863f55928f5;hpb=bec7f491bd14b1da3aae7054edd72575dcf77a4f;p=wimlib diff --git a/doc/imagex.1.in b/doc/imagex.1.in index c65cd2d8..8ba1ed95 100644 --- a/doc/imagex.1.in +++ b/doc/imagex.1.in @@ -1,144 +1,226 @@ -.TH IMAGEX 1 "May 2012" "imagex (wimlib @VERSION@)" "User Commands" +.TH WIMLIB-IMAGEX 1 "January 2014" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex \- Create, modify, extract, mount, or unmount a WIM (Windows Imaging Format) archive +@IMAGEX_PROGNAME@ \- Create, modify, extract, mount, or unmount a WIM (Windows Imaging Format) archive .SH SYNOPSIS -\fBimagex append\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ append\fR \fIarguments...\fR .br -\fBimagex apply\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ apply\fR \fIarguments...\fR .br -\fBimagex capture\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ capture\fR \fIarguments...\fR .br -\fBimagex delete\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ delete\fR \fIarguments...\fR .br -\fBimagex dir\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ dir\fR \fIarguments...\fR .br -\fBimagex export\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ export\fR \fIarguments...\fR .br -\fBimagex info\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ extract\fR \fIarguments...\fR .br -\fBimagex join\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ info\fR \fIarguments...\fR .br -\fBimagex mount\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ join\fR \fIarguments...\fR .br -\fBimagex mountrw\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ mount\fR \fIarguments...\fR .br -\fBimagex unmount\fR \fIarguments...\fR - +\fB@IMAGEX_PROGNAME@ mountrw\fR \fIarguments...\fR +.br +\fB@IMAGEX_PROGNAME@ optimize\fR \fIarguments...\fR +.br +\fB@IMAGEX_PROGNAME@ split\fR \fIarguments...\fR +.br +\fB@IMAGEX_PROGNAME@ unmount\fR \fIarguments...\fR +.br +\fB@IMAGEX_PROGNAME@ update\fR \fIarguments...\fR .SH DESCRIPTION -\fBimagex\fR is able to deal with archives in the Windows Imaging Format (.wim -files). Its interface is meant to be similar to Microsoft's imagex.exe program. - -To do its work, \fBimagex\fR uses \fBwimlib\fR, a library which provides -interfaces for manipulating WIM archives. You could wimlib in your own programs -if you wanted to. Wimlib's public interface is documented. - -See \fBWARNING\fR. - +\fB@IMAGEX_PROGNAME@\fR deals with archives in the Windows Imaging Format (.wim +files). Its interface is meant to be similar to Microsoft's "imagex.exe" +program, but it also provide many useful extensions. +.PP +To do its work, \fB@IMAGEX_PROGNAME@\fR uses \fBwimlib\fR, a C library which +provides interfaces for manipulating WIM archives. You can wimlib in your own +programs if desired, although \fB@IMAGEX_PROGNAME@\fR already provides access to +most of wimlib's functionality. In some cases, however, there are general +interfaces which are only used by \fB@IMAGEX_PROGNAME@\fR in a specific way, so +it may be worth taking a look if you're looking to do something beyond what +\fB@IMAGEX_PROGNAME@\fR directly supports. .SH COMMANDS - -There is a separate manual page for each \fBimagex\fR command. - +\fB@IMAGEX_PROGNAME@\fR accepts one of a number of commands (listed above in +\fBSYNOPSYS\fR), and additional arguments depending on the specific command. +Although \fB@IMAGEX_PROGNAME@\fR will print usage information with \fB--help\fR +or if you invoke it incorrectly, the full documentation for each +\fB@IMAGEX_PROGNAME@\fR command can be found in the appropriate manual page. +.PP +Note: to save typing, if appropriate hard links or batch files have been +installed, a command \fB@IMAGEX_PROGNAME@ \fICOMMAND\fR can also be accessed as +simply \fBwim\fICOMMAND\fR; for example, \fBwimapply\fR for \fB@IMAGEX_PROGNAME@ +apply\fR. .SH SUPPORTED FEATURES - -The following features are currently supported: - -.IP \[bu] 2 -Mount an image in a WIM read-only (\fBimagex mount\fR) -.IP \[bu] 2 -Mount an image in a WIM read-write (\fBimagex mountrw\fR) -.IP \[bu] 2 -LZX decompression and compression -.IP \[bu] 2 -XPRESS decompression and compression -.IP \[bu] 2 -Integrity table -.IP \[bu] 2 -XML data (parsed and written using \fBlibxml\fR(3)) -.IP \[bu] 2 -Create a WIM from a directory (\fBimagex capture\fR) -.IP \[bu] 2 -Append a directory onto a WIM as a new image (\fBimagex append\fR) -.IP \[bu] 2 -Delete image(s) from a WIM (\fBimagex delete\fR) -.IP \[bu] 2 -Export image(s) from a WIM (\fBimagex export\fR) -.IP \[bu] 2 -Display information about a WIM file (\fBimagex info\fR, \fBimagex dir\fR) -.IP \[bu] 2 -Change the name or description of an image in the WIM (\fBimagex info\fR) -.IP \[bu] 2 -Change which image in a WIM is bootable (\fBimagex info\fR) -.IP \[bu] 2 -Combining split WIMs into one WIM (\fBimage join\fR) - -.SH UNSUPPORTED FEATURES -The following features are currently unsupported: -.IP \[bu] 2 -File permissions and security descriptors are ignored. The information -contained in them in an existing WIM will be lost when wimlib writes a WIM file. -This does not seem to matter for Windows PE, but this means that you should not -use this program to image a drive containing Windows Vista/7/8 and expect it to -be applied with the correct file permissions. -.IP \[bu] 2 -Split WIMs are not fully supported. These can be used to split up a WIM to fit -on multiple CDs, if you can't use a DVD for some reason. You can use -\fBimagex join\fR to combine split WIMs, but you cannot yet create split WIMs or -mount them directly. -.IP \[bu] 2 -The \fB--verify\fR option, for all commands that use it. Without this option, -there theoretically could be a SHA1 hash collision between two files, although -it's very unlikely. -.IP \[bu] 2 -The \fB--config\fR option, for all commands that use it. -.IP \[bu] 2 -Alternate stream entries -.IP \[bu] 2 -Different versions of the WIM file format (if different versions even exist) - -Also see the Doxygen documentation for Wimlib. - +The following are some of the main features currently supported by +\fB@IMAGEX_PROGNAME@\fR, and pointers to the relevant commands: +.IP \[bu] 4 +Create a standalone WIM from a directory or NTFS volume (\fB@IMAGEX_PROGNAME@ capture\fR) +.IP \[bu] +Capture a WIM image directly to standard output in a special pipable format +(\fB@IMAGEX_PROGNAME@ capture\fR) +.IP \[bu] +Append a directory or NTFS volume onto a standalone WIM as a new image (\fB@IMAGEX_PROGNAME@ +append\fR) +.IP \[bu] +Apply an image from a standalone or split WIM to a directory or NTFS volume +(\fB@IMAGEX_PROGNAME@ apply\fR) +.IP \[bu] +Apply an image from a special pipable WIM format sent over standard input +(\fB@IMAGEX_PROGNAME@ apply\fR) +.IP \[bu] +Mount an image from a standalone or split WIM read-only (\fB@IMAGEX_PROGNAME@ +mount\fR) (not available on Windows) +.IP \[bu] +Mount an image from a standalone WIM read-write (\fB@IMAGEX_PROGNAME@ +mountrw\fR) (not available on Windows) +.IP \[bu] +Extract individual files or directories from a WIM without mounting it +(\fB@IMAGEX_PROGNAME@ extract\fR) +.IP \[bu] +Make changes to a WIM image without mounting it (\fB@IMAGEX_PROGNAME@ update\fR) +.IP \[bu] +Delete image(s) from a standalone WIM (\fB@IMAGEX_PROGNAME@ delete\fR) +.IP \[bu] +Export image(s) from a standalone or split WIM (\fB@IMAGEX_PROGNAME@ export\fR) +.IP \[bu] +Display information about a WIM file (\fB@IMAGEX_PROGNAME@ info\fR, \fB@IMAGEX_PROGNAME@ dir\fR) +.IP \[bu] +Change the name or description of an image in the WIM (\fB@IMAGEX_PROGNAME@ info\fR) +.IP \[bu] +Change which image in a WIM is bootable (\fB@IMAGEX_PROGNAME@ info\fR) +.IP \[bu] +Combine split WIMs into one standalone WIM (\fB@IMAGEX_PROGNAME@ join\fR) +.IP \[bu] +Split a standalone WIM into multiple parts (\fB@IMAGEX_PROGNAME@ split\fR) +.IP \[bu] +Easily remove wasted space in a WIM file and optionally recompress it (\fB +@IMAGEX_PROGNAME@ optimize\fR) +.IP \[bu] +Support for all WIM compression types, both compression and decompression (LZX, +XPRESS, and none) +.IP \[bu] +WIM integrity table is supported (\fB--check\fR option to many commands) .SH DIFFERENCES FROM MICROSOFT IMAGEX - -See \fBUNSUPPORTED FEATURES\fR. - -The \fB/scroll\fR and \fB/log\fR switches from Microsoft's version imagex are -not planned to be implemented. Note that to scroll the output in the UNIX shell -you can just pipe the output into \fBless\fR(1). - -Some features, such as the ability to keep files hard-linked when they are -extracted from a WIM, are not available in Microsoft's version of imagex. - -See the documentation for each command; in some cases they do not do exactly the -same thing as imagex.exe. - -Obviously, this version of imagex is free software but Microsoft's version is -not. - -.SH WARNING - -Note: \fBwimlib\fR and \fBimagex\fR are experimental. Use Microsoft's -imagex.exe if you have to make sure your WIM files are made correctly. Not all -features listed under \fBSUPPORTED FEATURES\fR have been thoroughly tested. -Feel free to submit a bug report if you find a bug. - -Some parts of the WIM file format are poorly documented or even completely -undocumented, so these parts had to be reverse engineered for compatibility -purposes. - +Although \fB@IMAGEX_PROGNAME@\fR shares some similarities with Microsoft's +implementation of ImageX, this section lists some of the many noteworthy +differences between the two programs: +.IP \[bu] 4 +\fB@IMAGEX_PROGNAME@\fR is supported on both UNIX-like systems and Windows; +thus, some functionality was designed around this. +.IP \[bu] +The command-line syntax of the two programs is similar but not exactly the same. +.IP \[bu] +Because Microsoft designed the WIM file format to accomodate Windows-specific +and NTFS-specific features, on UNIX-like systems wimlib must have two separate +image capture and application modes (although the \fB@IMAGEX_PROGNAME@\fR +commands for the modes are the same): one for image capture and application +from/to a directory, and one for the capture or application of an image +specifically from/to an NTFS volume. +.IP "" +Note: the above applies to builds of \fB@IMAGEX_PROGNAME@\fR for UNIX-like +systems. On the Windows build, there is only one image capture and application +mode, similar to Microsoft's ImageX. +.IP \[bu] +wimlib supports multithreaded compression, which can make it much faster to +create compressed WIM files. +.IP \[bu] +\fB@IMAGEX_PROGNAME@\fR offers the extra commands \fB@IMAGEX_PROGNAME@ +extract\fR and \fB@IMAGEX_PROGNAME@ update\fR, which let you quickly extract +files from or make changes to a WIM image without mounting it. +.IP \[bu] +\fB@IMAGEX_PROGNAME@\fR offers the extra command \fB@IMAGEX_PROGNAME@ +optimize\fR, which lets you easily remove wasted space in a WIM (which can arise +after a WIM image is appended or mounted read-write). It also makes it easy to +recompress a WIM file at the highest compression level. +.IP \[bu] +\fB@IMAGEX_PROGNAME@\fR also offers the command \fB@IMAGEX_PROGNAME@ join\fR, +which lets you easily join the parts of a split WIM. +.IP \[bu] +For convenience, \fB@IMAGEX_PROGNAME@\fR automatically preserves the integrity +table in WIMs that have one, even when \fB--check\fR is not specified. +.IP \[bu] +wimlib supports a special "pipable" WIM format (not compatible with Microsoft's +software). This allows capturing and applying images directly to standard +output or from standard input, respectively; this can be used to pipe images to +or from a server over the network to implement fast filesystem imaging and +restore. +.IP \[bu] +\fB@IMAGEX_PROGNAME@ capture\fR and \fB@IMAGEX_PROGNAME@ append\fR support +options to optimize incremental backups and to create "delta" WIM files. +.IP \[bu] +wimlib (and \fB@IMAGEX_PROGNAME@\fR via \fB@IMAGEX_PROGNAME@ capture\fR) +supports combining multiple separate directories and files together in a +configurable way to create a WIM image. +.IP \[bu] +Microsoft's ImageX has some weird limitations, like it won't let you extract a +WIM on a shared folder, and it requires some commands to be run only from +Windows PE and not from regular Windows. \fB@IMAGEX_PROGNAME@\fR does not have +these unusual limitations. +.IP \[bu] +There are bugs in Microsoft's WIM library and I obviously have not included the +same bugs in wimlib, although in some cases I have had to work around bugs for +compatibility purposes. +.IP \[bu] +wimlib (and \fB@IMAGEX_PROGNAME@\fR via \fB@IMAGEX_PROGNAME@ mount\fR) support +mounting an image from a split WIM, but Microsoft's software does not. (Note: +this functionality is not available in Windows builds of wimlib and +\fB@IMAGEX_PROGNAME@\fR.) +.SH LOCALES AND CHARACTER ENCODINGS +WIM files themselves store file and stream names using UTF-16LE. On Windows, +wimlib works in UTF-16LE, so conversions are usually not necessary and there +should be no problems with character encodings. +.PP +On UNIX-like systems, wimlib works primarily in the locale-dependent multibyte +encoding, which you are strongly recommended to set to UTF-8 to avoid any +problems. You can alternatively set the environmental variable +\fBWIMLIB_IMAGEX_USE_UTF8\fR to force \fB@IMAGEX_PROGNAME@\fR to use UTF-8 +character encoding internally, even if the current locale is not UTF-8 +compatible. +.SH CASE SENSITIVITY +By default, the case sensitivity of \fB@IMAGEX_PROGNAME@\fR differs somewhat +between UNIX-like systems and Windows. WIM images may (but usually do not) have +multiple files with the same case-insensitive name. Internally, wimlib +stores filenames as case-sensitive, but on Windows paths +actually provided by the user for use in a WIM image (e.g. for extracting, +adding, renaming, or deleting files) will by default be treated as +case-insensitive in order to get the "expected" behavior. This differs from the +default behavior on UNIX-like systems, where such paths will be treated as +case-sensitive. Note that with case insensitivity, a path component may in +general be ambiguous due to multiple files or directories having the same +case-insensitive name. In such cases, if there is a file or directory with an +exactly matching name, it is chosen; otherwise, one of the case-insensitively +matching file or directories is chosen arbitrarily. +.PP +The default behavior can be overridden by explicitly setting the environmental +variable \fBWIMLIB_IMAGEX_IGNORE_CASE\fR to 1, in which case such paths will be +treated case insensitively, or 0, in which such paths will be treated case +sensitively. +.PP +Regardless of these settings, options and non-path arguments must be specified +in lower case. +.SH LICENSE +wimlib and \fB@IMAGEX_PROGNAME@\fR are distributed under the GNU General Public +License version 3 or later. Be aware this means this software is provided as-is +and has no warranty; see COPYING for details. .SH REPORTING BUGS - Report bugs to ebiggers3@gmail.com. - .SH SEE ALSO -.BR imagex-append (1), -.BR imagex-apply (1), -.BR imagex-capture (1), -.BR imagex-delete (1), -.BR imagex-dir (1), -.BR imagex-export (1), -.BR imagex-info (1), -.BR imagex-join (1), -.BR imagex-mount (1), -.BR imagex-mountrw (1), -.BR imagex-unmount (1), - +.BR @IMAGEX_PROGNAME@-append (1), +.BR @IMAGEX_PROGNAME@-apply (1), +.BR @IMAGEX_PROGNAME@-capture (1), +.BR @IMAGEX_PROGNAME@-delete (1), +.BR @IMAGEX_PROGNAME@-dir (1), +.BR @IMAGEX_PROGNAME@-export (1), +.BR @IMAGEX_PROGNAME@-extract (1), +.BR @IMAGEX_PROGNAME@-info (1), +.BR @IMAGEX_PROGNAME@-join (1), +.BR @IMAGEX_PROGNAME@-mount (1), +.BR @IMAGEX_PROGNAME@-mountrw (1), +.BR @IMAGEX_PROGNAME@-optimize (1), +.BR @IMAGEX_PROGNAME@-split (1), +.BR @IMAGEX_PROGNAME@-unmount (1), +.BR @IMAGEX_PROGNAME@-update (1),