mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 00:11:15 +00:00
initial commit
This commit is contained in:
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.
|
Reference in New Issue
Block a user