	SQUASHFS 4.1 - A squashed read-only filesystem for Linux

	Copyright 2002-2010 Phillip Lougher <phillip@lougher.demon.co.uk>

	Released under the GPL licence (version 2 or later).

Welcome to Squashfs 4.1.  This is a tools only release, support for Squashfs
file systems is in mainline (2.6.29 and later).

New features in Squashfs-tools 4.1
----------------------------------

  1. Support for extended attributes
  2. Support for LZMA and LZO compression
  3. New pseudo file features

Compatiblity
------------

Mksquashfs 4.1 generates 4.0 filesystems.  These filesystems are fully
compatible/interchangable with filesystems generated by Mksquashfs 4.0 and are
mountable on 2.6.29 and later kernels.

Extended attributes (xattrs)
----------------------------

Squashfs file systems now have extended attribute support.  The
extended attribute implementation has the following features:

1. Layout can store up to 2^48 bytes of compressed xattr data.
2. Number of xattrs per inode unlimited.
3. Total size of xattr data per inode 2^48 bytes of compressed data.
4. Up to 4 Gbytes of data per xattr value.
5. Inline and out-of-line xattr values supported for higher performance
   in xattr scanning (listxattr & getxattr), and to allow xattr value
   de-duplication.
6. Both whole inode xattr duplicate detection and individual xattr value
   duplicate detection supported.  These can obviously nest, file C's
   xattrs can be a complete duplicate of file B, and file B's xattrs
   can be a partial duplicate of file A.
7. Xattr name prefix types stored, allowing the redundant "user.", "trusted."
   etc. characters to be eliminated and more concisely stored.
8. Support for files, directories, symbolic links, device nodes, fifos
   and sockets.

Extended attribute support is in 2.6.35 and later kernels.  File systems
with extended attributes can be mounted on 2.6.29 and later kernels, the
extended attributes will be ignored with a warning.

LZMA and LZO compression
------------------------

Squashfs now supports LZMA and LZO compression.

LZO support is in 2.6.36 and newer kernels.  LZMA is not yet in mainline.

New Mksquashfs options
----------------------

-comp <comp>

    Select <comp> compression.  

    The compression algorithms supported by the build of Mksquashfs can be
    found by typing mksquashfs without any arguments.  The compressors available
    are displayed at the end of the help message, e.g.

    Compressors available:
	gzip (default)
	lzma
	lzo

    The default compression used when -comp isn't specified on the command line
    is indicated by "(default)".

-no-xattrs
    Don't store extended attributes

-xattrs
    Store extended attributes

    The default behaviour of Mksquashfs with respect to extended attribute
    storage is build time selectable.  The Mksquashfs help message indicates
    whether extended attributes are stored or not, e.g.

	-no-xattrs		don't store extended attributes
	-xattrs			store extended attributes (default)

    shows that extended attributes are stored by default, and can be disabled
    by the -no-xattrs option.

	-no-xattrs		don't store extended attributes (default)
	-xattrs			store extended attributes 

    shows that extended attributes are not stored by default, storage can be
    enabled by the -xattrs option.


-noX
-noXattrCompression
    Don't compress extended attributes


New Unsquashfs options
----------------------

-n[o-xattrs]
    Don't extract xattrs in filesystem

-x[attrs]
    Extract xattrs in filesystem

    The default behaviour of Unsquashfs with respect to extended attributes
    is build time selectable.  The Unsquashfs help message indicates whether
    extended attributes are stored or not, e.g.

	-no[-xattrs]		don't extract xattrs in file system
	-x[attrs]		extract xattrs in file system (default)

    shows that xattrs are extracted by default.

	-no[-xattrs]		don't extract xattrs in file system (default)
	-x[attrs]		extract xattrs in file system

    shows that xattrs are not extracted by default.


New pseudo file support
-----------------------

Mksquashfs supports pseudo files, these allow fake files, directories, character
and block devices to be specified and added to the Squashfs filesystem being
built, rather than requiring them to be present in the source directories.
This, for example, allows device nodes to be added to the filesystem without
requiring root access.

Mksquashfs 4.1 adds support for "dynamic pseudo files" and a modify operation.
Dynamic pseudo files allow files to be dynamically created when Mksquashfs
is run, their contents being the result of running a command or piece of
shell script.  The modifiy operation allows the mode/uid/gid of an existing
file in the source filesystem to be modified.

Two Mksquashfs options are supported, -p allows one pseudo file to be specified
on the command line, and -pf allows a pseudo file to be specified containing a
list of pseduo definitions, one per line.

Pseudo operations
-----------------

1. Creating a dynamic file
--------------------------

Pseudo definition

Filename f mode uid gid command

mode is the octal mode specifier, similar to that expected by chmod.

uid and gid can be either specified as a decimal number, or by name.

command can be an executable or a piece of shell script, and it is executed
by running "/bin/sh -c command".   The stdout becomes the contents of
"Filename".

Examples:

Running a basic command
-----------------------

/somedir/dmesg f 444 root root dmesg

creates a file "/somedir/dmesg" containing the output from dmesg.

Executing shell script
----------------------

RELEASE f 444 root root \
		if [ ! -e /tmp/ver ]; then \
			echo 0 > /tmp/ver; \
		fi; \
                ver=`cat /tmp/ver`; \
                ver=$((ver +1)); \
                echo $ver > /tmp/ver; \
                echo -n `cat /tmp/release`; \
                echo "-dev #"$ver `date` "Build host" `hostname`

Creates a file RELEASE containing the release name, date, build host, and
an incrementing version number.  The incrementing version is a side-effect
of executing the shell script, and ensures every time Mksquashfs is run a
new version number is used without requiring any other shell scripting.

The above example also shows that commands can be split across multiple lines
using "\".  Obviously as the script will be presented to the shell as a single
line, a semicolon is need to separate individual shell commands within the
shell script.

Reading from a device (or fifo/named socket)
--------------------------------------------

input f 444 root root dd if=/dev/sda1 bs=1024 count=10

Copies 10K from the device /dev/sda1 into the file input.  Ordinarily Mksquashfs
given a device, fifo, or named socket will place that special file within the
Squashfs filesystem, the above allows input from these special files to be
captured and placed in the Squashfs filesystem.

2. Creating a block or character device
---------------------------------------

Pseudo definition

Filename type mode uid gid major minor

Where type is either
	b - for block devices, and
	c - for character devices

mode is the octal mode specifier, similar to that expected by chmod.

uid and gid can be either specified as a decimal number, or by name.

For example:

/dev/chr_dev c 666 root root 100 1
/dev/blk_dev b 666 0 0 200 200

creates a character device "/dev/chr_dev" with major:minor 100:1 and
a block device "/dev/blk_dev" with major:minor 200:200, both with root
uid/gid and a mode of rw-rw-rw.

3. Creating a directory
-----------------------

Pseudo definition

Filename d mode uid gid

mode is the octal mode specifier, similar to that expected by chmod.

uid and gid can be either specified as a decimal number, or by name.

For example:

/pseudo_dir d 666 root root

creates a directory "/pseudo_dir" with root uid/gid and mode of rw-rw-rw.

4. Modifying attributes of an existing file
-------------------------------------------

Pseudo definition

Filename m mode uid gid

mode is the octal mode specifier, similar to that expected by chmod.

uid and gid can be either specified as a decimal number, or by name.

For example:

dmesg m 666 root root

Changes the attributes of the file "dmesg" in the filesystem to have
root uid/gid and a mode of rw-rw-rw, overriding the attributes obtained
from the source filesystem.
