1 SQUASHFS 3.3 - A squashed read-only filesystem for Linux 2 3 Copyright 2002-2007 Phillip Lougher <phillip (a] lougher.demon.co.uk> 4 5 Released under the GPL licence (version 2 or later). 6 7 Welcome to another release of Squashfs. This is the 22nd release in just 8 over five years of work. Squashfs 3.3 has lots of nice improvements, 9 both to the filesystem itself (bigger blocks, and sparse files), but 10 also to the Squashfs-tools Mksquashfs and Unsquashfs. As usual the 11 CHANGES file has a detailed list of all the improvements. 12 13 Following is a description of the changes to the Squashfs tools, usage 14 guides to the new options, and a summary of the new options. 15 16 1. MKSQUASHFS - EXTENDED EXCLUDE FILE HANDLING 17 ---------------------------------------------- 18 19 1. Extended wildcard pattern matching now supported in exclude files 20 21 Enabled by specifying -wildcards option 22 23 Supports both anchored and non-anchored exclude files. 24 25 1.1 Anchored excludes 26 27 Similar to existing exclude files except with wildcards. Exclude 28 file matches from root of source directories. 29 30 Examples: 31 32 1. mksquashfs example image.sqsh -wildcards -e 'test/*.gz' 33 34 Exclude all files matching "*.gz" in the top level directory "test". 35 36 2. mksquashfs example image.sqsh -wildcards -e '*/[Tt]est/example*' 37 38 Exclude all files beginning with "example" inside directories called 39 "Test" or "test", that occur inside any top level directory. 40 41 Using extended wildcards, negative matching is also possible. 42 43 3. mksquashfs example image.sqsh -wildcards -e 'test/!(*data*).gz' 44 45 Exclude all files matching "*.gz" in top level directory "test", 46 except those with "data" in the name. 47 48 1.2 Non-anchored excludes 49 50 By default excludes match from the top level directory, but it is 51 often useful to exclude a file matching anywhere in the source directories. 52 For this non-anchored excludes can be used, specified by pre-fixing the 53 exclude with "...". 54 55 Examples: 56 57 1. mksquashfs example image.sqsh -wildcards -e '... *.gz' 58 59 Exclude files matching "*.gz" anywhere in the source directories. 60 For example this will match "example.gz", "test/example.gz", and 61 "test/test/example.gz". 62 63 2. mksquashfs example image.sqsh -wildcards -e '... [Tt]est/*.gz' 64 65 Exclude files matching "*.gz" inside directories called "Test" or 66 "test" that occur anywhere in the source directories. 67 68 Again, using extended wildcards, negative matching is also possible. 69 70 3. mksquashfs example image.sqsh -wildcards -e '... !(*data*).gz' 71 72 Exclude all files matching "*.gz" anywhere in the source directories, 73 except those with "data" in the name. 74 75 2. Regular expression pattern matching now supported in exclude files 76 77 Enabled by specifying -regex option. Identical behaviour to wild 78 card pattern matching, except patterns are considered to be regular 79 expressions. 80 81 Supports both anchored and non-anchored exclude files. 82 83 84 2. MKSQUASHFS - NEW RECOVERY FILE FEATURE 85 ----------------------------------------- 86 87 Recovery files are now created when appending to existing Squashfs 88 filesystems. This allows the original filesystem to be recovered 89 if Mksquashfs aborts unexpectedly (i.e. power failure). 90 91 The recovery files are called squashfs_recovery_xxx_yyy, where 92 "xxx" is the name of the filesystem being appended to, and "yyy" is a 93 number to guarantee filename uniqueness (the PID of the parent Mksquashfs 94 process). 95 96 Normally if Mksquashfs exits correctly the recovery file is deleted to 97 avoid cluttering the filesystem. If Mksquashfs aborts, the "-recover" 98 option can be used to recover the filesystem, giving the previously 99 created recovery file as a parameter, i.e. 100 101 mksquashfs dummy image.sqsh -recover squashfs_recovery_image.sqsh_1234 102 103 The writing of the recovery file can be disabled by specifying the 104 "-no-recovery" option. 105 106 107 3. UNSQUASHFS - EXTENDED EXTRACT FILE HANDLING 108 ---------------------------------------------- 109 110 1. Multiple extract files can now be specified on the command line, and the 111 files/directories to be extracted can now also be given in a file. 112 113 To specify a file containing the extract files use the "-e[f]" option. 114 115 2. Extended wildcard pattern matching now supported in extract files 116 117 Enabled by default. Similar to existing extract files except with 118 wildcards. 119 120 Examples: 121 122 1. unsquashfs image.sqsh 'test/*.gz' 123 124 Extract all files matching "*.gz" in the top level directory "test". 125 126 2. unsquashfs image.sqsh '[Tt]est/example*' 127 128 Extract all files beginning with "example" inside top level directories 129 called "Test" or "test". 130 131 Using extended wildcards, negative matching is also possible. 132 133 3. unsquashfs image.sqsh 'test/!(*data*).gz' 134 135 Extract all files matching "*.gz" in top level directory "test", 136 except those with "data" in the name. 137 138 3. Regular expression pattern matching now supported in extract files 139 140 Enabled by specifying -r[egex] option. Identical behaviour to wild 141 card pattern matching, except patterns are considered to be regular 142 expressions. 143 144 4. UNSQUASHFS - EXTENDED FILENAME PRINTING 145 ------------------------------------------ 146 147 Filename printing has been enhanced and Unquashfs can now display filenames 148 with file attributes ('ls -l' style output). 149 150 New options: 151 152 -ll[s] 153 154 list filesystem with file attributes, but don't unsquash 155 156 -li[nfo] 157 158 print files as they are unsquashed with file attributes 159 160 161 5. UNSQUASHFS - MISCELLANEOUS OPTIONS 162 ------------------------------------- 163 164 -s[tat] 165 166 Display the filesystem superblock information. This is useful to 167 discover the filesystem version, byte ordering, whether it has an 168 NFS export table, and what options were used to compress 169 the filesystem. 170