SQUASHFS 3.3 - A squashed read-only filesystem for Linux Copyright 2002-2007 Phillip Lougher <phillip@lougher.demon.co.uk> Released under the GPL licence (version 2 or later). Welcome to another release of Squashfs. This is the 22nd release in just over five years of work. Squashfs 3.3 has lots of nice improvements, both to the filesystem itself (bigger blocks, and sparse files), but also to the Squashfs-tools Mksquashfs and Unsquashfs. As usual the CHANGES file has a detailed list of all the improvements. Following is a description of the changes to the Squashfs tools, usage guides to the new options, and a summary of the new options. 1. MKSQUASHFS - EXTENDED EXCLUDE FILE HANDLING ---------------------------------------------- 1. Extended wildcard pattern matching now supported in exclude files Enabled by specifying -wildcards option Supports both anchored and non-anchored exclude files. 1.1 Anchored excludes Similar to existing exclude files except with wildcards. Exclude file matches from root of source directories. Examples: 1. mksquashfs example image.sqsh -wildcards -e 'test/*.gz' Exclude all files matching "*.gz" in the top level directory "test". 2. mksquashfs example image.sqsh -wildcards -e '*/[Tt]est/example*' Exclude all files beginning with "example" inside directories called "Test" or "test", that occur inside any top level directory. Using extended wildcards, negative matching is also possible. 3. mksquashfs example image.sqsh -wildcards -e 'test/!(*data*).gz' Exclude all files matching "*.gz" in top level directory "test", except those with "data" in the name. 1.2 Non-anchored excludes By default excludes match from the top level directory, but it is often useful to exclude a file matching anywhere in the source directories. For this non-anchored excludes can be used, specified by pre-fixing the exclude with "...". Examples: 1. mksquashfs example image.sqsh -wildcards -e '... *.gz' Exclude files matching "*.gz" anywhere in the source directories. For example this will match "example.gz", "test/example.gz", and "test/test/example.gz". 2. mksquashfs example image.sqsh -wildcards -e '... [Tt]est/*.gz' Exclude files matching "*.gz" inside directories called "Test" or "test" that occur anywhere in the source directories. Again, using extended wildcards, negative matching is also possible. 3. mksquashfs example image.sqsh -wildcards -e '... !(*data*).gz' Exclude all files matching "*.gz" anywhere in the source directories, except those with "data" in the name. 2. Regular expression pattern matching now supported in exclude files Enabled by specifying -regex option. Identical behaviour to wild card pattern matching, except patterns are considered to be regular expressions. Supports both anchored and non-anchored exclude files. 2. MKSQUASHFS - NEW RECOVERY FILE FEATURE ----------------------------------------- Recovery files are now created when appending to existing Squashfs filesystems. This allows the original filesystem to be recovered if Mksquashfs aborts unexpectedly (i.e. power failure). The recovery files are called squashfs_recovery_xxx_yyy, where "xxx" is the name of the filesystem being appended to, and "yyy" is a number to guarantee filename uniqueness (the PID of the parent Mksquashfs process). Normally if Mksquashfs exits correctly the recovery file is deleted to avoid cluttering the filesystem. If Mksquashfs aborts, the "-recover" option can be used to recover the filesystem, giving the previously created recovery file as a parameter, i.e. mksquashfs dummy image.sqsh -recover squashfs_recovery_image.sqsh_1234 The writing of the recovery file can be disabled by specifying the "-no-recovery" option. 3. UNSQUASHFS - EXTENDED EXTRACT FILE HANDLING ---------------------------------------------- 1. Multiple extract files can now be specified on the command line, and the files/directories to be extracted can now also be given in a file. To specify a file containing the extract files use the "-e[f]" option. 2. Extended wildcard pattern matching now supported in extract files Enabled by default. Similar to existing extract files except with wildcards. Examples: 1. unsquashfs image.sqsh 'test/*.gz' Extract all files matching "*.gz" in the top level directory "test". 2. unsquashfs image.sqsh '[Tt]est/example*' Extract all files beginning with "example" inside top level directories called "Test" or "test". Using extended wildcards, negative matching is also possible. 3. unsquashfs image.sqsh 'test/!(*data*).gz' Extract all files matching "*.gz" in top level directory "test", except those with "data" in the name. 3. Regular expression pattern matching now supported in extract files Enabled by specifying -r[egex] option. Identical behaviour to wild card pattern matching, except patterns are considered to be regular expressions. 4. UNSQUASHFS - EXTENDED FILENAME PRINTING ------------------------------------------ Filename printing has been enhanced and Unquashfs can now display filenames with file attributes ('ls -l' style output). New options: -ll[s] list filesystem with file attributes, but don't unsquash -li[nfo] print files as they are unsquashed with file attributes 5. UNSQUASHFS - MISCELLANEOUS OPTIONS ------------------------------------- -s[tat] Display the filesystem superblock information. This is useful to discover the filesystem version, byte ordering, whether it has an NFS export table, and what options were used to compress the filesystem.