mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 00:11:15 +00:00
initial commit
This commit is contained in:
15
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/DONATIONS
Normal file
15
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/DONATIONS
Normal file
@@ -0,0 +1,15 @@
|
||||
Help sponsor Squashfs development!
|
||||
|
||||
Maintaining and improving Squashfs is a lot of work, but Squashfs is one of
|
||||
the only widely used Linux file systems that has no company backing. Squashfs
|
||||
development is funded soley by the author, partially supported by donations
|
||||
from companies and individuals that want to improve Squashfs for themselves
|
||||
and others.
|
||||
|
||||
There's lots of exciting new improvements to Squashfs in the pipeline, and
|
||||
if your company is a serious user of Squashfs, please consider accelerating
|
||||
development of Squashfs by donating.
|
||||
|
||||
Donatations can be made from the Squashfs sourceforge homepage, or if you
|
||||
prefer by contacting the author privately.
|
||||
|
177
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/PERFORMANCE.README
Normal file
177
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/PERFORMANCE.README
Normal file
@@ -0,0 +1,177 @@
|
||||
* Obsolete *
|
||||
|
||||
This file is now largely obsolete, considering
|
||||
it refers to Squashfs 2.1 (which was released in 2006)
|
||||
and older releases.
|
||||
|
||||
GENERAL INFORMATION ON PERFORMANCE TESTS
|
||||
----------------------------------------
|
||||
|
||||
The following performance tests were based on two file sets: the
|
||||
liveCD filesystem from the Ubuntu liveCD (Warty release), and the
|
||||
liveCD filesystem from the Damn Small Linux liveCD (release 0.8.4).
|
||||
The Ubuntu liveCD filesystem was used to test filesystem performance
|
||||
from CDROM and hard disk for Zisofs, Cloop, Squashfs 2.0 and Squashfs2.1.
|
||||
CRAMFS filesystem performance could not be tested for this filesystem
|
||||
bacause it exceeds the maximum supported size of CRAMFS. To test
|
||||
CRAMFS performance against Squashfs, the liveCD filesystem from
|
||||
Damn Small Linux was used.
|
||||
|
||||
NOTE: the usual warnings apply to these results, they are provided for
|
||||
illustrative purposes only, and due to different hardware and/or file data, you
|
||||
may obtain different results. As such the results are provided "as is" without
|
||||
any warranty (either express or implied) and you assume all risks as to their
|
||||
quality and accuracy.
|
||||
|
||||
1. Ubuntu liveCD performance tests
|
||||
|
||||
ext3 uncompressed size 1.4 GB
|
||||
Zisofs compressed size 589.81 MB
|
||||
Cloop compressed size 471.89 MB
|
||||
Squashfs2.0 compressed size 448.58 MB
|
||||
Squashfs2.1 compressed size 448.58 MB
|
||||
|
||||
1.1 Performance tests from CDROM
|
||||
|
||||
1.1.1 Directory Lookup performance
|
||||
|
||||
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem
|
||||
mounted from CDROM
|
||||
|
||||
Zisofs 49.88 seconds (User 2.60 secs, Sys 11.19 secs)
|
||||
Cloop 20.80 seconds (User 2.71 secs, Sys 13.50 secs)
|
||||
Squashfs2.0 16.56 seconds (User 2.42 secs, Sys 10.37 secs)
|
||||
Squashfs2.1 10.14 seconds (User 2.48 secs, Sys 4.44 secs)
|
||||
|
||||
1.1.2 Sequential I/O performance
|
||||
|
||||
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted
|
||||
from CDROM
|
||||
|
||||
Zisofs 27 minutes 28.54 seconds (User 3.00 secs, Sys 1 min 4.80 secs)
|
||||
Cloop 5 minutes 55.72 seconds (User 2.90 secs, Sys 3 min 37.90 secs)
|
||||
Squashfs2.0 5 minutes 20.87 seconds (User 2.33 secs, Sys 56.98 secs)
|
||||
Squashfs2.1 5 minutes 15.46 seconds (user 2.28 secs, Sys 51.12 secs)
|
||||
|
||||
1.1.3 Random I/O performance
|
||||
|
||||
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort
|
||||
-g | awk '{ printf $2 }' > /tmp/sort
|
||||
|
||||
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null"
|
||||
on filesystem mounted from CDROM
|
||||
|
||||
Zisofs 101 minutes 29.65 seconds (User 5.33 secs, Sys 1 min 17.20 secs)
|
||||
Cloop 35 minutes 27.51 seconds (user 5.93 secs, Sys 4 mins 30.23 secs)
|
||||
Squashfs2.0 21 minutes 53.05 seconds (user 5.71 secs, Sys 2 mins 36.59 secs)
|
||||
Squashfs2.1 21 minutes 46.99 seconds (User 5.80 secs, Sys 2 mins 31.88 secs)
|
||||
|
||||
|
||||
1.2 Performance tests from Hard disk
|
||||
|
||||
1.2.1 Directory Lookup performance
|
||||
|
||||
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem
|
||||
mounted from Hard disk
|
||||
|
||||
Zisofs 17.29 seconds (User 2.62 secs, Sys 11.08 secs)
|
||||
Cloop 16.46 seconds (User 2.63 secs, Sys 13.41 secs)
|
||||
Squashfs2.0 13.75 seconds (User 2.44 secs, Sys 11.00 secs)
|
||||
Squashfs2.1 6.94 seconds (User 2.44 secs, Sys 4.48 secs)
|
||||
|
||||
1.2.2 Sequential I/O performance
|
||||
|
||||
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted
|
||||
from Hard disk
|
||||
|
||||
Zisofs 1 minute 21.47 seconds (User 2.73 secs, Sys 54.44 secs)
|
||||
Cloop 1 minute 34.06 seconds (user 2.85 secs, Sys 1 min 12.13 secs)
|
||||
Squashfs2.0 1 minute 21.22 seconds (User 2.42 secs, Sys 56.21 secs)
|
||||
Squashfs2.1 1 minute 15.46 seconds (User 2.36 secs, Sys 49.78 secs)
|
||||
|
||||
1.2.3 Random I/O performance
|
||||
|
||||
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort
|
||||
-g | awk '{ printf $2 }' > /tmp/sort
|
||||
|
||||
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null"
|
||||
on filesystem mounted from Hard disk
|
||||
|
||||
Zisofs 11 minutes 13.64 seconds (User 5.08 secs, Sys 52.62 secs)
|
||||
Cloop 5 minutes 37.93 seconds (user 6 secs, Sys 2 mins 22.38 secs)
|
||||
Squashfs2.0 5 minutes 7.11 seconds (user 5.63 secs, Sys 2 mins 35.23 secs)
|
||||
Squashfs2.1 5 minutes 1.87 seconds (User 5.71 secs, Sys 2 mins 29.98 secs)
|
||||
|
||||
|
||||
2. Damn Small Linux liveCD performance tests
|
||||
|
||||
ext3 uncompressed size 126 MB
|
||||
CRAMFS compressed size 52.19 MB
|
||||
Squashfs2.0 compressed size 46.52 MB
|
||||
Squashfs2.1 compressed size 46.52 MB
|
||||
|
||||
2.1 Performance tests from CDROM
|
||||
|
||||
2.1.1 Directory Lookup performance
|
||||
|
||||
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem
|
||||
mounted from CDROM
|
||||
|
||||
CRAMFS 10.85 seconds (User 0.39 secs, Sys 0.98 secs)
|
||||
Squashfs2.0 2.97 seconds (User 0.36 secs, Sys 2.15 secs)
|
||||
Squashfs2.1 2.43 seconds (User 0.40 secs, Sys 1.42 secs)
|
||||
|
||||
2.1.2 Sequential I/O performance
|
||||
|
||||
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted
|
||||
from CDROM
|
||||
|
||||
CRAMFS 55.38 seconds (User 0.34 secs, Sys 6.98 secs)
|
||||
Squashfs2.0 35.99 seconds (User 0.30 secs, Sys 6.35 secs)
|
||||
Squashfs2.1 33.83 seconds (User 0.26 secs, Sys 5.56 secs)
|
||||
|
||||
2.1.3 Random I/O performance
|
||||
|
||||
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort
|
||||
-g | awk '{ printf $2 }' > /tmp/sort
|
||||
|
||||
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null"
|
||||
on filesystem mounted from CDROM
|
||||
|
||||
|
||||
CRAMFS 3 minutes 1.68 seconds (User 0.54 secs, Sys 9.51 secs)
|
||||
Squashfs2.0 1 minute 39.45 seconds (User 0.57 secs, Sys 13.14 secs)
|
||||
Squashfs2.1 1 minute 38.41 seconds (User 0.58 secs, Sys 13.08 secs)
|
||||
|
||||
2.2 Performance tests from Hard disk
|
||||
|
||||
2.2.1 Directory Lookup performance
|
||||
|
||||
Time taken to perform "ls -lR --color=alawys | cat > /dev/null" on filesystem
|
||||
mounted from Hard disk
|
||||
|
||||
CRAMFS 1.77 seconds (User 0.53 secs, Sys 1.21 secs)
|
||||
Squashfs2.0 2.67 seconds (User 0.41 secs, Sys 2.25 secs)
|
||||
Squashfs2.1 1.87 seconds (User 0.41 secs, Sys 1.46 secs)
|
||||
|
||||
2.2.2 Sequential I/O performance
|
||||
|
||||
Time taken to perform "tar cf - | cat > /dev/null" on filesystem mounted
|
||||
from Hard disk
|
||||
|
||||
CRAMFS 6.80 seconds (User 0.36 secs, Sys 6.02 secs)
|
||||
Squashfs2.0 7.23 seconds (User 0.29 secs, Sys 6.62 secs)
|
||||
Squashfs2.1 6.53 seconds (User 0.31 secs, Sys 5.82 secs)
|
||||
|
||||
2.2.3 Random I/O performance
|
||||
|
||||
Random access pattern generated by "find /mnt -type f -printf "%s %p\n" | sort
|
||||
-g | awk '{ printf $2 }' > /tmp/sort
|
||||
|
||||
Time taken to perform "cpio -o --quiet -H newc < /tmp/sort > /dev/null"
|
||||
on filesystem mounted from Hard disk
|
||||
|
||||
|
||||
CRAMFS 28.55 seconds (User 0.49 secs, Sys 6.49 secs)
|
||||
Squashfs2.0 25.44 seconds (User 0.58 secs, Sys 13.17 secs)
|
||||
Squashfs2.1 24.72 seconds (User 0.56 secs, Sys 13.15 secs)
|
161
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.0
Normal file
161
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.0
Normal file
@@ -0,0 +1,161 @@
|
||||
NOTE: This the original README for version 2.0. It is retained as it
|
||||
contains information about the fragment design. A description of the new 2.0
|
||||
mksquashfs options has been added to the main README file, and that
|
||||
file should now be consulted for these.
|
||||
|
||||
SQUASHFS 2.0 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2004 Phillip Lougher (plougher@users.sourceforge.net)
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to the final release of Squashfs version 2.0! A lot of changes to the
|
||||
filesystem have been made under the bonnet (hood). Squashfs 2.0 uses fragment
|
||||
blocks and larger blocks (64K) to improve compression ratio by about 5 - 20%
|
||||
over Squashfs 1.0 depending on the files being compressed. Using fragment
|
||||
blocks allows Squashfs 2.0 to achieve better compression than cloop and similar
|
||||
compression to tgz files while retaining the I/O efficiency of a compressed
|
||||
filesystem.
|
||||
|
||||
Detailed changes:
|
||||
|
||||
1. Squashfs 2.0 has added the concept of fragment blocks (see later discussion).
|
||||
Files smaller than the file block size (64K in Squashfs 2.0) and optionally
|
||||
the remainder of files that do not fit fully into a block (i.e. the last 32K
|
||||
in a 96K file) are packed into shared fragments and compressed together.
|
||||
This achieves on average 5 - 20% better compression than Squashfs 1.x.
|
||||
|
||||
2. The maximum block size has been increased to 64K.
|
||||
|
||||
3. The maximum number of UIDs has been increased to 256 (from 48 in 1.x).
|
||||
|
||||
4. The maximum number of GIDs has been increased to 256 (from 15 in 1.x).
|
||||
|
||||
5. New mksquashfs -all-root, -root-owned, -force-uid, and -force-gid
|
||||
options. These allow the uids/gids of files in the generated
|
||||
filesystem to be specified, overriding the uids/gids in the
|
||||
source filesystem.
|
||||
|
||||
6. Initrds are now supported for kernels 2.6.x.
|
||||
|
||||
7. Removal of sleep_on() function call in 2.6.x patch, to allow Squashfs
|
||||
to work on the Fedora rc2 kernel.
|
||||
|
||||
8. AMD64, check-data and gid bug fixes.
|
||||
|
||||
9. Numerous small bug fixes have been made.
|
||||
|
||||
10. New patch for Linux 2.6.7.
|
||||
|
||||
|
||||
New Squashfs 2.0 options
|
||||
------------------------
|
||||
|
||||
-noF or -noFragmentCompression
|
||||
|
||||
Do not compress the fragments. Added for compatibility with noI and
|
||||
noD, probably not that useful.
|
||||
|
||||
-no-fragments
|
||||
|
||||
Do not use fragment blocks, and rather generate a filesystem
|
||||
similar to a Squashfs 1.x filesystem. It will of course still
|
||||
be a Squashfs 2.0 filesystem but without fragments, and so
|
||||
it won't be mountable on a Squashfs 1.x system.
|
||||
|
||||
-always-use-fragments
|
||||
|
||||
By default only small files less than the block size are packed into
|
||||
fragment blocks. The ends of files which do not fit fully into a block,
|
||||
are NOT by default packed into fragments. To illustrate this, a
|
||||
100K file has an initial 64K block and a 36K remainder. This
|
||||
36K remainder is not packed into a fragment by default. This is
|
||||
because to do so leads to a 10 - 20% drop in sequential I/O
|
||||
performance, as a disk head seek is needed to seek to the initial
|
||||
file data and another disk seek is need to seek to the fragment
|
||||
block.
|
||||
|
||||
Specify this option if you want file remainders to be packed into
|
||||
fragment blocks. Doing so may increase the compression obtained
|
||||
BUT at the expense of I/O speed.
|
||||
|
||||
-no-duplicates
|
||||
|
||||
Do not detect duplicate files.
|
||||
|
||||
-all-root
|
||||
-root-owned
|
||||
|
||||
These options (both do exactly the same thing), force all file
|
||||
uids/gids in the generated Squashfs filesystem to be root.
|
||||
This allows root owned filesystems to be built without root access
|
||||
on the host machine.
|
||||
|
||||
-force-uid uid
|
||||
|
||||
This option forces all files in the generated Squashfs filesystem to
|
||||
be owned by the specified uid. The uid can be specified either by
|
||||
name (i.e. "root") or by number.
|
||||
|
||||
-force-gid gid
|
||||
|
||||
This option forces all files in the generated Squashfs filesystem to
|
||||
be group owned by the specified gid. The gid can be specified either by
|
||||
name (i.e. "root") or by number.
|
||||
|
||||
|
||||
Compression improvements example
|
||||
--------------------------------
|
||||
|
||||
The following is the compression results obtained compressing the 2.6.6
|
||||
linux kernel source using CRAMFS, Cloop (with iso filesystem), Squashfs 1.3 and
|
||||
Squashfs 2.0 (results generated using big-endian filesystems).
|
||||
|
||||
In decreasing order of size:
|
||||
|
||||
CRAMFS 62791680 bytes (59.9M)
|
||||
Squashfs 1.x 51351552 bytes (48.9M)
|
||||
Cloop 46118681 bytes (44.0M)
|
||||
Squashfs 2.0 45604854 bytes (43.5M)
|
||||
|
||||
|
||||
The Squashfs 1.x filesystem is 12.6% larger than the new 2.0 filesystem.
|
||||
The cloop filesystem is 1.1% larger than the Squashfs 2.0 filesystem.
|
||||
|
||||
|
||||
Fragment blocks in Squashfs 2.0
|
||||
-------------------------------
|
||||
|
||||
Squashfs like all other compressed filesystems compresses files individually
|
||||
on a block by block basis. This is performed to allow mounting and
|
||||
de-compression of files on a block by block basis without requiring the entire
|
||||
filesystem to be decompressed. This is in contrast to data-based compression
|
||||
schemes which compress without understanding the underlying filesystem (i.e.
|
||||
cloop and tgz files) and which, therefore, do not compress files individually.
|
||||
Each approach has advantages and disadvantages, data-based systems have better
|
||||
compression because compression is always performed at the maximum block size
|
||||
(64K in cloop) irrespective of the size of each file (which could be less than
|
||||
the block size). Compressed filesystems tend to be faster at I/O because
|
||||
they understand the filesystem and therefore employ better caching stategies
|
||||
and read less un-needed data from the filesystem.
|
||||
|
||||
Fragment blocks in Squashfs 2.0 solves this problem by packing files (and
|
||||
optionally the ends of files) which are smaller than the block size into
|
||||
shared blocks, which are compressed together. For example five files each of
|
||||
10K will be packed into one shared fragment of 50K and compressed together,
|
||||
rather than being compressed in five 10K blocks.
|
||||
|
||||
This scheme produces a hybrid filesystem, retaining the I/O efficiency
|
||||
of a compressed filesystem, while obtaining the compression efficiency
|
||||
of data-based schemes by compressing small files together.
|
||||
|
||||
|
||||
Squashfs 1.x and Squashfs 2.0 compatibility
|
||||
-------------------------------------------
|
||||
|
||||
Appending to Squashfs 1.x filesystems is not supported. If you wish to append
|
||||
to 1.x filesystems, then either use the original mksquashfs, or convert them
|
||||
to Squashfs 2.0 by mounting the filesystem and running the 2.0 mksquashfs
|
||||
on the mounted filesystem.
|
||||
|
||||
Mounting Squashfs 1.x filesystems IS supported by the 2.0 kernel patch.
|
18
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.0-AMD64
Normal file
18
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.0-AMD64
Normal file
@@ -0,0 +1,18 @@
|
||||
Information for amd64 users
|
||||
---------------------------
|
||||
|
||||
All previous releases of Squashfs (2.0-alpha and older) generate incorrect
|
||||
filesystems on amd64 machines. These filesystems work correctly on amd64
|
||||
machines, but cannot be mounted on non-amd64 machines. Likewise, filesystems
|
||||
generated on non amd64 machines could not be mounted on amd64 machines.
|
||||
This bug was caused by the different size of the "time_t" definition used in
|
||||
SquashFS filesystem structures.
|
||||
|
||||
This bug is now fixed in this release. However, all amd64 filesystems
|
||||
generated by previous releases will not be mountable on amd64 machines
|
||||
with this release. If you have pre-existing amd64 generated filesystems,
|
||||
it is important that you recreate the filesystem. This can be performed
|
||||
by mounting the filesystem using a kernel with the original patch
|
||||
(i.e. a 2.0-alpha or older patch) and running the SquashFS 2.0
|
||||
(i.e. this release) mksquashfs tool to create a new SquashFS filesystem.
|
||||
|
87
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.1
Normal file
87
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-2.1
Normal file
@@ -0,0 +1,87 @@
|
||||
SQUASHFS 2.1 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2004 Phillip Lougher (plougher@users.sourceforge.net)
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs version 2.1-r2. Squashfs 2.1 introduces indexed
|
||||
directories which considerably speed up directory lookup (ls, find etc.) for
|
||||
directories which are greater than 8K in size. All directories are now also
|
||||
sorted alphabetically which further speeds up directory lookup. Many smaller
|
||||
improvements have also been made to this release, please see the CHANGES file
|
||||
entry for detailed changes.
|
||||
|
||||
1. DIRECTORY SPEED IMPROVEMENT EXAMPLES
|
||||
---------------------------------------
|
||||
|
||||
To give an indication of the directory speed improvements a number of test
|
||||
results are shown here. There is in addition a new PERFORMANCE.README file
|
||||
which gives details of I/O and lookup performance for Squashfs 2.1 against
|
||||
the Zisofs, Cloop and CRAMFS filesystems.
|
||||
|
||||
example 1:
|
||||
|
||||
Filesystems generated from a single directory of 72,784 files (2.6 MB
|
||||
directory size). Each file is 10 bytes in size (the test is directory
|
||||
lookup and so the file size isn't an issue). The ext3 uncompressed
|
||||
directory size is 288 MB (presumably because of one file per block).
|
||||
|
||||
Zisofs compressed size 153.50 MB
|
||||
Cloop (isofs) compressed size 1.74 MB
|
||||
Squashfs2.1 compressed size 612 KB (0.60 MB)
|
||||
|
||||
Time taken to perform "ls -lR --color=always | cat > /dev/null" on
|
||||
filesystems mounted on hard disk.
|
||||
|
||||
Zisofs 35 minutes 7.895 seconds (User 7.868 secs, Sys 34 mins 5.621 secs)
|
||||
Cloop 35 minutes 12.765 seconds (User 7.771 secs, Sys 34 mins 3.869 secs)
|
||||
Squashfs2.1 19 seconds (User 5.119 secs, Sys 14.547 secs)
|
||||
|
||||
example 2:
|
||||
|
||||
Filesystems were generated from the Ubuntu Warty livecd (original uncompressed
|
||||
size on ext3 is 1.4 GB).
|
||||
|
||||
Zisofs compressed size 589.81 MB
|
||||
Cloop (isofs) compressed size 471.19 MB
|
||||
Squashfs2.0 compressed size 448.58 MB
|
||||
Squashfs2.1 compressed size 448.58 MB
|
||||
|
||||
Time taken to perform "ls -lR --color=always | cat > /dev/null" on
|
||||
filesystems mounted on hard disk.
|
||||
|
||||
Zisofs 49.875 seconds (User time 2.589 secs, Sys 11.194 secs)
|
||||
Cloop 20.797 seconds (User time 2.706 secs, Sys 13.496 secs)
|
||||
Squashfs2.0 16.556 seconds (User time 2.424 secs, Sys 10.371 secs)
|
||||
Squashfs2.1 10.143 seconds (User time 2.475 secs, Sys 4.440 secs)
|
||||
|
||||
|
||||
NOTE: the usual warnings apply to these results, they are provided for
|
||||
illustrative purposes only, and due to different hardware and/or file data, you
|
||||
may obtain different results. As such the results are provided "as is" without
|
||||
any warranty (either express or implied) and you assume all risks as to their
|
||||
quality and accuracy.
|
||||
|
||||
2. NEW MKSQUASHFS OPTIONS
|
||||
-------------------------
|
||||
|
||||
There is only one extra option "-2.0". This tells mksquashfs to generate
|
||||
a filesystem which is mountable with Squashfs version 2.0.
|
||||
|
||||
3. APPENDING AND MOUNTING SQUASHFS 2.0 FILESYSTEMS
|
||||
--------------------------------------------------
|
||||
|
||||
Mounting 2.0 filesystems is supported by Squashfs 2.1. In addition
|
||||
mksquashfs v2.1 can append to 2.0 filesystems, although the generated
|
||||
filesystem will still be a 2.0 filesystem.
|
||||
|
||||
4. DONATIONS
|
||||
------------
|
||||
|
||||
If you find Squashfs useful then please consider making a donation,
|
||||
particularly if you use Squashfs in a commercial product. Please consider
|
||||
giving something back especially if you're making money from it.
|
||||
|
||||
Off the Squashfs subject somewhat I'm currently looking for another
|
||||
job doing Linux kernel or filesystems work. If you know of any such
|
||||
work that can be performed from the UK then please get in touch. Thanks.
|
60
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.0
Normal file
60
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.0
Normal file
@@ -0,0 +1,60 @@
|
||||
SQUASHFS 3.0 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2006 Phillip Lougher <phillip@lougher.org.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to the first release of Squashfs version 3.0. Squashfs 3.0 has the
|
||||
the following improvements to 2.x.
|
||||
|
||||
1. Filesystems are no longer limited to 4 GB. In
|
||||
theory 2^64 or 4 exabytes is now supported.
|
||||
|
||||
2. Files are no longer limited to 4 GB. In theory the maximum
|
||||
file size is 4 exabytes.
|
||||
|
||||
3. Metadata (inode table and directory tables) are no longer
|
||||
restricted to 16 Mbytes.
|
||||
|
||||
4. Hardlinks are now suppported.
|
||||
|
||||
5. Nlink counts are now supported.
|
||||
|
||||
6. Readdir now returns '.' and '..' entries.
|
||||
|
||||
7. Special support for files larger than 256 MB has been added to
|
||||
the Squashfs kernel code for faster read access.
|
||||
|
||||
8. Inode numbers are now stored within the inode rather than being
|
||||
computed from inode location on disk (this is not so much an
|
||||
improvement, but a change forced by the previously listed
|
||||
improvements).
|
||||
|
||||
There is a new Unsquashfs utility (in squashfs-tools) than can be used to
|
||||
decompress a filesystem without mounting it.
|
||||
|
||||
Squashfs 3.0 supports 2.x filesystems. Support for 1.x filesystems
|
||||
will be added in the future.
|
||||
|
||||
1. UNSQUASHFS
|
||||
-------------
|
||||
|
||||
Unsquashfs has the following options:
|
||||
|
||||
SYNTAX: unsquashfs [-ls | -dest] filesystem
|
||||
-version print version, licence and copyright information
|
||||
-info print files as they are unsquashed
|
||||
-ls list filesystem only
|
||||
-dest <pathname> unsquash to <pathname>, default "squashfs-root"
|
||||
|
||||
The "-ls" option can be used to list the contents of a filesystem without
|
||||
decompressing the filesystem data itself.
|
||||
|
||||
The "-info" option forces Unsquashfs to print each file as it is decompressed.
|
||||
|
||||
The "-dest" option specifies the directory that is used to decompress
|
||||
the filesystem data. If this option is not given then the filesystem is
|
||||
decompressed to the directory "squashfs-root" in the current working directory.
|
||||
|
||||
Unsquashfs can decompress 3.0 filesystems. Support for 2.x and 1.x
|
||||
filesystems will be added in the future.
|
158
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.1
Normal file
158
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.1
Normal file
@@ -0,0 +1,158 @@
|
||||
SQUASHFS 3.1 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2006 Phillip Lougher <phillip@lougher.org.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs version 3.1-r2. Squashfs 3.1 has major improvements to
|
||||
the Squashfs tools (Mksquashfs and Unsquashfs), some major bug fixes, new
|
||||
kernel patches, and various other smaller improvements and bug fixes.
|
||||
Please see the CHANGES file for a detailed list.
|
||||
|
||||
1. MKSQUASHFS
|
||||
-------------
|
||||
|
||||
Mksquashfs has been rewritten and it is now multi-threaded. It offers
|
||||
the following improvements:
|
||||
|
||||
1. Parallel compression. By default as many compression and fragment
|
||||
compression threads are created as there are available processors.
|
||||
This significantly speeds up performance on SMP systems.
|
||||
|
||||
2. File input and filesystem output is peformed in parallel on separate
|
||||
threads to maximise I/O performance. Even on single processor systems
|
||||
this speeds up performance by at least 10%.
|
||||
|
||||
3. Appending has been significantly improved, and files within the
|
||||
filesystem being appended to are no longer scanned and checksummed. This
|
||||
significantly improves append time for large filesystems.
|
||||
|
||||
4. File duplicate checking has been optimised, and split into two separate
|
||||
phases. Only files which are considered possible duplicates after the
|
||||
first phase are checksummed and cached in memory.
|
||||
|
||||
5. The use of swap memory was found to significantly impact performance. The
|
||||
amount of memory used to cache the file is now a command line option, by default
|
||||
this is 512 Mbytes.
|
||||
|
||||
1.1 NEW COMMAND LINE OPTIONS
|
||||
----------------------------
|
||||
|
||||
The new Mksquashfs program has a couple of extra command line options
|
||||
which can be used to control the new features:
|
||||
|
||||
-processors <processors>
|
||||
|
||||
This specifies the number of processors used by Mksquashfs.
|
||||
By default this is the number of available processors.
|
||||
|
||||
-read_queue <size in Mbytes>
|
||||
|
||||
This specifies the size of the file input queue used by the reader thread.
|
||||
This defaults to 64 Mbytes.
|
||||
|
||||
-write_queue <size in Mbytes>
|
||||
|
||||
This specifies the size of the filesystem output queue used by the
|
||||
writer thread. It also specifies the maximum cache used in file
|
||||
duplicate detection (the output queue is shared between these tasks).
|
||||
This defaults to 512 Mbytes.
|
||||
|
||||
1.2 PERFORMANCE RESULTS
|
||||
-----------------------
|
||||
|
||||
The following results give an indication of the speed improvements. Two
|
||||
example filesystems were tested, a liveCD filesystem (about 1.8 Gbytes
|
||||
uncompressed), and my home directory consisting largely of text files
|
||||
(about 1.3 Gbytes uncompressed). Tests were run on a single core
|
||||
and a dual core system.
|
||||
|
||||
Dual Core (AMDx2 3800+) system:
|
||||
Source directories on ext3.
|
||||
|
||||
LiveCD, old mksquashfs:
|
||||
|
||||
real 11m48.401s
|
||||
user 9m27.056s
|
||||
sys 0m15.281s
|
||||
|
||||
LiveCD, new par_mksquashfs:
|
||||
|
||||
real 4m8.736s
|
||||
user 7m11.771s
|
||||
sys 0m27.749s
|
||||
|
||||
"Home", old mksquashfs:
|
||||
|
||||
real 4m34.360s
|
||||
user 3m54.007s
|
||||
sys 0m32.155s
|
||||
|
||||
"Home", new par_mksquashfs:
|
||||
|
||||
real 1m27.381s
|
||||
user 2m7.304s
|
||||
sys 0m17.234s
|
||||
|
||||
Single Core PowerBook (PowerPC G4 1.5 GHz Ubuntu Linux)
|
||||
Source directories on ext3.
|
||||
|
||||
LiveCD, old mksquashs:
|
||||
|
||||
real 11m38.472s
|
||||
user 9m6.137s
|
||||
sys 0m23.799s
|
||||
|
||||
LiveCD, par_mksquashfs:
|
||||
|
||||
real 10m5.572s
|
||||
user 8m59.921s
|
||||
sys 0m16.145s
|
||||
|
||||
"Home", old mksquashfs:
|
||||
|
||||
real 3m42.298s
|
||||
user 2m49.478s
|
||||
sys 0m13.675s
|
||||
|
||||
"Home", new par_mksquashfs:
|
||||
|
||||
real 3m9.178s
|
||||
user 2m50.699s
|
||||
sys 0m9.069s
|
||||
|
||||
I'll be interested in any performance results obtained, especially from SMP
|
||||
machines larger than my dual-core AMD box, as this will give an indication of
|
||||
the scalability of the code. Obviously, I'm also interested in any problems,
|
||||
deadlocks, low performance etc.
|
||||
|
||||
2. UNSQUASHFS
|
||||
-------------
|
||||
|
||||
Unsquashfs now allows you to specify the filename or directory that is to be
|
||||
extracted from the Squashfs filesystem, rather than always extracting the
|
||||
entire filesystem. It also has a new "-force" option, and all options can be
|
||||
specified in a short form (-i rather than -info).
|
||||
|
||||
The Unsquashfs usage info is now:
|
||||
|
||||
SYNTAX: ./unsquashfs [options] filesystem [directory or file to extract]
|
||||
-v[ersion] print version, licence and copyright information
|
||||
-i[nfo] print files as they are unsquashed
|
||||
-l[s] list filesystem only
|
||||
-d[est] <pathname> unsquash to <pathname>, default "squashfs-root"
|
||||
-f[orce] if file already exists then overwrite
|
||||
|
||||
To extract a subset of the filesystem, the filename or directory
|
||||
tree that is to be extracted can now be specified on the command line. The
|
||||
file/directory should be specified using the full path to the file/directory
|
||||
as it appears within the Squashfs filesystem. The file/directory will also be
|
||||
extracted to that position within the specified destination directory.
|
||||
|
||||
The new "-force" option forces Unsquashfs to output to the destination
|
||||
directory even if files or directories already exist. This allows you
|
||||
to update an existing directory tree, or to Unsquashfs to a partially
|
||||
filled directory. Without the "-force" option, Unsquashfs will
|
||||
refuse to overwrite any existing files, or to create any directories if they
|
||||
already exist. This is done to protect data in case of mistakes, and
|
||||
so the "-force" option should be used with caution.
|
33
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.2
Normal file
33
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.2
Normal file
@@ -0,0 +1,33 @@
|
||||
SQUASHFS 3.2 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2007 Phillip Lougher <phillip@lougher.org.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs version 3.2. Squashfs 3.2 has support for NFS exporting,
|
||||
some improvements to the Squashfs tools (Mksquashfs and Unsquashfs), some
|
||||
major bug fixes, new kernel patches, and various other smaller improvements
|
||||
and bug fixes. Please see the CHANGES file for a detailed list.
|
||||
|
||||
1. MKSQUASHFS
|
||||
-------------
|
||||
|
||||
New command line options:
|
||||
|
||||
-no-exports
|
||||
|
||||
Squashfs now supports NFS exports. By default the additional
|
||||
information necessary is added to the filesystem by Mksquashfs. If you
|
||||
do not wish this extra information, then this option can be specified.
|
||||
This will save a couple of bytes per file, and the filesystem
|
||||
will be identical to Squashfs 3.1.
|
||||
|
||||
-no-progress
|
||||
|
||||
Mksquashfs by default now displays a progress bar. This option disables
|
||||
it.
|
||||
|
||||
2. UNSQUASHFS
|
||||
-------------
|
||||
|
||||
Unsquashfs now supports Squashfs 2.x filesystems.
|
169
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.3
Normal file
169
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-3.3
Normal file
@@ -0,0 +1,169 @@
|
||||
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.
|
48
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.0
Normal file
48
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.0
Normal file
@@ -0,0 +1,48 @@
|
||||
SQUASHFS 4.0 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2009 Phillip Lougher <phillip@lougher.demon.co.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs 4.0. This is an initial tools only release to
|
||||
support users of the 2.6.29 kernel, following the mainlining of Squashfs
|
||||
earlier this year.
|
||||
|
||||
Later releases will probably contain kernel patches supporting 4.0
|
||||
layouts for earlier kernels.
|
||||
|
||||
New Mksquashfs options
|
||||
----------------------
|
||||
|
||||
Mksquashfs now supports pseudo files, these allow fake 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.
|
||||
|
||||
Two 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 device nodes are specified using 7 arguments
|
||||
|
||||
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 444 0 0 200 200
|
||||
|
||||
Directories are specified using 5 arguments
|
||||
|
||||
Filename type mode uid gid
|
||||
|
||||
Where type is d.
|
265
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.1
Normal file
265
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.1
Normal file
@@ -0,0 +1,265 @@
|
||||
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.
|
57
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.2
Normal file
57
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.2
Normal file
@@ -0,0 +1,57 @@
|
||||
SQUASHFS 4.2 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2011 Phillip Lougher <phillip@lougher.demon.co.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs 4.2. This is a tools only release, support for Squashfs
|
||||
filesystems is in mainline (2.6.29 and later).
|
||||
|
||||
New features in Squashfs-tools 4.2
|
||||
----------------------------------
|
||||
|
||||
1. Support for XZ compression
|
||||
2. Support for compressor specific options
|
||||
|
||||
Compatiblity
|
||||
------------
|
||||
|
||||
Mksquashfs 4.2 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.
|
||||
|
||||
XZ compression
|
||||
--------------
|
||||
|
||||
Squashfs now supports XZ compression.
|
||||
|
||||
XZ support is in 2.6.38 and newer kernels.
|
||||
|
||||
New Mksquashfs options
|
||||
----------------------
|
||||
|
||||
-X<compressor-option>
|
||||
|
||||
Compression algorithms can now support compression specific options. These
|
||||
options are prefixed by -X, and are passed to the compressor for handling.
|
||||
|
||||
The compression specific options supported by each compressor can be
|
||||
found by typing mksquashfs without any arguments. They are displayed at the
|
||||
end of the help message, e.g.
|
||||
|
||||
Compressors available and compressor specific options:
|
||||
gzip (no options) (default)
|
||||
lzo (no options)
|
||||
xz
|
||||
-Xbcj filter1,filter2,...,filterN
|
||||
Compress using filter1,filter2,...,filterN in turn
|
||||
(in addition to no filter), and choose the best compression.
|
||||
Available filters: x86, arm, armthumb, powerpc, sparc, ia64
|
||||
-Xdict-size <dict-size>
|
||||
Use <dict-size> as the XZ dictionary size. The dictionary size
|
||||
can be specified as a percentage of the block size, or as an
|
||||
absolute value. The dictionary size must be less than or equal
|
||||
to the block size and 8192 bytes or larger. It must also be
|
||||
storable in the xz header as either 2^n or as 2^n+2^(n+1).
|
||||
Example dict-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K
|
||||
etc.
|
182
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.3
Normal file
182
SQUASHFS/squashfs-tools-4.4/RELEASE-READMEs/README-4.3
Normal file
@@ -0,0 +1,182 @@
|
||||
SQUASHFS 4.3 - A squashed read-only filesystem for Linux
|
||||
|
||||
Copyright 2002-2014 Phillip Lougher <phillip@lougher.demon.co.uk>
|
||||
|
||||
Released under the GPL licence (version 2 or later).
|
||||
|
||||
Welcome to Squashfs 4.3. This is the first release in over 3 years, and
|
||||
there are substantial improvements to stability, new compression options
|
||||
and compressors, speed optimisations, and new options for Mksquashfs/Unsquashfs.
|
||||
|
||||
This is a tools only release, support for Squashfs filesystems is
|
||||
in mainline (2.6.29 and later).
|
||||
|
||||
Changes in Squashfs-tools 4.3
|
||||
-----------------------------
|
||||
|
||||
1. Stability improvements. Better checking of user input for out of
|
||||
range/invalid values. Better handling of corrupted Squashfs filesystems
|
||||
(Mksquashfs append mode, and Unsquashfs). Better handling of buffer
|
||||
overflow/underflow.
|
||||
|
||||
2. GZIP compressor now supports compression options, allowing different
|
||||
compression levels to be used.
|
||||
|
||||
3. Rewritten LZO compressor with compression options, allowing different
|
||||
LZO algorithms and different compression levels to be used.
|
||||
|
||||
4. New LZ4 compressor (note not yet in mainline kernel)
|
||||
|
||||
5. Better default memory usage for Mksquashfs. Mksquashfs by default now
|
||||
uses 25% of physical memory.
|
||||
|
||||
6. Duplicate checking in Mksquashfs further optimised. With certain
|
||||
"problem filesystems" greater than 2x performance improvement.
|
||||
Filesystems with a lot of duplicates should see at least 10-20% speed
|
||||
improvement.
|
||||
|
||||
7. The -stat option in Unsquashfs now displays the compression options
|
||||
used to generate the original filesystem. Previously -stat only displayed
|
||||
the compression algorithm used.
|
||||
|
||||
8. The file being compressed/uncompressed in Mksquashfs/Unsquashfs is now
|
||||
displayed if CTRL-\ (SIGQUIT from keyboard) typed.
|
||||
|
||||
9. The status of the internal queues/caches in Mksquashfs/Unsquashfs is
|
||||
now displayed if CTRL-\ (SIGQUIT from keyboard) is typed twice within
|
||||
one second. Normally only useful for "power users", but it can be
|
||||
used to discover if there's any bottlenecks affecting performance
|
||||
(the bottleneck will normally be the compressors/fragment compressors).
|
||||
|
||||
10. Miscellaneous new options for Mksquashfs/Unsquashfs to fine tune behaviour.
|
||||
|
||||
11. Fixes for CVE-2012-4024 and CVE-2012-4025.
|
||||
|
||||
Compatiblity
|
||||
------------
|
||||
|
||||
Mksquashfs 4.3 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.
|
||||
|
||||
Compressors
|
||||
-----------
|
||||
|
||||
New compression options and compressors are now supported.
|
||||
|
||||
The new options and compressors are:
|
||||
|
||||
1. gzip
|
||||
-Xcompression-level <compression-level>
|
||||
<compression-level> should be 1 .. 9 (default 9)
|
||||
-Xwindow-size <window-size>
|
||||
<window-size> should be 8 .. 15 (default 15)
|
||||
-Xstrategy strategy1,strategy2,...,strategyN
|
||||
Compress using strategy1,strategy2,...,strategyN in turn
|
||||
and choose the best compression.
|
||||
Available strategies: default, filtered, huffman_only,
|
||||
run_length_encoded and fixed
|
||||
|
||||
2. lzo
|
||||
-Xalgorithm <algorithm>
|
||||
Where <algorithm> is one of:
|
||||
lzo1x_1
|
||||
lzo1x_1_11
|
||||
lzo1x_1_12
|
||||
lzo1x_1_15
|
||||
lzo1x_999 (default)
|
||||
-Xcompression-level <compression-level>
|
||||
<compression-level> should be 1 .. 9 (default 8)
|
||||
Only applies to lzo1x_999 algorithm
|
||||
|
||||
3. lz4
|
||||
-Xhc
|
||||
Compress using LZ4 High Compression
|
||||
|
||||
The compression specific options are, obviously, specific to the compressor
|
||||
in question, and you should read the compressor documentation and check
|
||||
their web sites to understand their behaviour.
|
||||
|
||||
In general the defaults used by Mksquashfs for each compressor are optimised
|
||||
to give the best performance for each compressor, where what constitutes
|
||||
best depends on the compressor. For gzip/xz best means highest compression
|
||||
(trying multiple filters/strategies can improve compression, but this is
|
||||
extremely expensive computationally, and hence, not suitable for the defaults),
|
||||
for LZO/LZ4 best means a tradeoff between compression and (de)-compression
|
||||
overhead (LZO/LZ4 by definition are intended for weaker processors).
|
||||
|
||||
New Mksquashfs options
|
||||
----------------------
|
||||
|
||||
1. -mem <size>
|
||||
|
||||
Set the amount of memory used by Mksquashfs to <size> bytes. G/M and K
|
||||
post-fixes are supported.
|
||||
|
||||
By default Mksquashfs uses 25% of the physical memory. Increasing
|
||||
this with the -mem option can increase performance (note it does not have
|
||||
any effect on compression). Reducing it can prevent thrashing if the
|
||||
system is busy and there is not 25% of physical memory free (again, note
|
||||
it does not have any effect on compression).
|
||||
|
||||
2. -exit-on-error
|
||||
|
||||
By default Mksquashfs treats certain errors as benign, if these
|
||||
errors occur Mksquashfs prints the error on the console but continues.
|
||||
These errors are typically failure to read a file from the source filesystem.
|
||||
This is deliberate, in many cases users prefer Mksquashfs to flag
|
||||
the error but continue rather than abort what may be hours of compression.
|
||||
|
||||
But there are times where failure to read any file is considered critical,
|
||||
and users (especially in the case of automated scripts where the
|
||||
errors output to the console may be missed) prefer Mksquashfs to exit.
|
||||
|
||||
The new -exit-on-error option can be used in this scenario. This option
|
||||
makes Mksquashfs treat all benign errors as fatal.
|
||||
|
||||
3. -progress
|
||||
|
||||
By default if -info is specified, the progress bar is disabled as it gets
|
||||
in the way. Occasionally you might want the progress bar enabled whilst
|
||||
-info is enabled. This option forces Mksquashfs to output the progress
|
||||
bar when -info is specified.
|
||||
|
||||
4. -Xhelp
|
||||
|
||||
Display the usage text for the currently selected compressor.
|
||||
|
||||
New Unsquashfs options
|
||||
----------------------
|
||||
|
||||
1. -u[ser-xattrs]
|
||||
|
||||
Only write user xattrs. This forces Unsquashfs to ignore system xattrs.
|
||||
This is useful when Unsquashing a filesystem as a non-root user, and the
|
||||
filesystem contains system xattrs which are only writable by root.
|
||||
|
||||
Major bugs fixed
|
||||
----------------
|
||||
|
||||
1. If Mksquashfs ran out of space in the destination filesystem, this
|
||||
would not cause Mksquashfs to immediately abort, and Mksquashfs would
|
||||
continue to process the source filesystem. Mksquashfs now immediately
|
||||
aborts on out of space in the destination filesystem.
|
||||
|
||||
2. Unsquashfs ignored the maximum number of open files limit, and if that
|
||||
was lower than the default limit for Linux, it would run out of file
|
||||
descriptors. Unsquashfs now limits the number of open files to the
|
||||
limit currently in force (e.g. specified by setrlimit).
|
||||
|
||||
3. If huge numbers of dynamic pseudo files were specified, Mksquashfs
|
||||
could exceed the maximum number of open files limit. This was because
|
||||
Mksquashfs created all the dynamic file processes up front before
|
||||
commencing source filesystem reading and compression. Mksquashfs
|
||||
now creates the dynamic file processes on demand whilst reading
|
||||
and compressing the source filesystem, thus limiting the number of
|
||||
dynamic pseudo file processes in existence at any one time.
|
||||
|
||||
4. When outputting Unsquashfs used to set the permissions of directories
|
||||
as it recursively descended. This in hindsight had an obvious oversight,
|
||||
if a directory had only read permission (or was otherwise restricted), then
|
||||
Unsquashfs would fail to write its contents when descending into it. Fixed
|
||||
by setting directory permissions as Unsquashfs recursively unwinds.
|
@@ -0,0 +1,74 @@
|
||||
# Pseudo file example
|
||||
|
||||
# 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 file examples
|
||||
# Run mkquashfs . /tmp/img -pf pseudo-file.examples
|
||||
# to see their effect
|
||||
|
||||
# Creating dynamic file examples
|
||||
|
||||
# Create a file "dmesg" containing the output from dmesg.
|
||||
dmesg f 444 root root dmesg
|
||||
|
||||
|
||||
# Create 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.
|
||||
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 "release x.x"; \
|
||||
echo "-dev #"$ver `date` "Build host" `hostname`
|
||||
|
||||
|
||||
# Copy 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, this allows input from these special
|
||||
# files to be captured and placed in the Squashfs filesystem.
|
||||
input f 444 root root dd if=/dev/sda1 bs=1024 count=10
|
||||
|
||||
|
||||
# Creating a block or character device examples
|
||||
|
||||
# Create a character device "chr_dev" with major:minor 100:1 and
|
||||
# a block device "blk_dev" with major:minor 200:200, both with root
|
||||
# uid/gid and a mode of rw-rw-rw.
|
||||
chr_dev c 666 root root 100 1
|
||||
blk_dev b 666 0 0 200 200
|
||||
|
||||
|
||||
# Creating a directory example
|
||||
|
||||
# create a directory "pseudo_dir" with root uid/gid and mode of r--r--r--.
|
||||
pseudo_dir d 444 root root
|
||||
|
||||
|
||||
# Modifying attributes of an existing file exmaple
|
||||
|
||||
# Change the attributes of the file "INSTALL" in the filesystem to have
|
||||
# root uid/gid and a mode of rw-rw-rw, overriding the attributes obtained
|
||||
# from the source filesystem.
|
||||
INSTALL m 666 root root
|
||||
|
Reference in New Issue
Block a user