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