github plougher/squashfs-tools 4.7
Squashfs tools 4.7

latest releases: 4.7.2, 4.7.1
3 months ago
4.7	03 JUNE 2025	Parallel file reading, new help system, new
			reproducible filesystem image options, removal
			of "fragment block stall"

	1. Mksquashfs now reads files in parallel from the input directories

		1.1 This can significantly increase I/O when reading lots of
		    small files, and/or the input media benefits from parallel
		    reading e.g. modern SSD drives, or network filesystems etc.
		1.2 In cases where speed of I/O is the bottleneck in Mksquashfs,
		    this can make Mksquashfs run significantly faster, in some
		    cases Mksquashfs can be more than ten times faster.
		1.3 New -small-readers option to specify number of parallel
		    small file reader threads (files less than a block size).
		    Default 4 threads.
		1.4 New -block-readers option to specify number of parallel
		    block reader threads (files one block or larger).  Default
		    4 threads.
		1.5 New -single-reader option to specify a single reader thread,
		    similar to previous Mksquashfs versions.

	2. Rewritten and improved help system (Mksquashfs/Unsquashfs)

		2.1 Help text now uses the full width of the terminal (rather
		    than being pre-formatted to 80 columns).
		2.2 The help text is now automatically paged (using pager, less
		    or more).
		2.3 The tools now print a summary on failure to parse the
		    command line (or encountering other errors that prevent the
		    tool from running), rather than displaying the help text.
		2.4 The help text can be displayed in full, by section, or by
		    option using regex matching.
		2.5 New -help-all option to display all help text
		2.6 New -help-section option to display help for a particular
		     section
		2.7 New -help-option to display all options matching regex.
		2.8 New -help-comp option to display compressor options for
		    given compressor.

	3. New options for building reproducible filesystems (Mksquash/Sqfstar)

		3.1 Low level timestamp setting options extended:
			-mkfs-time inode sets filesystem creation time to the
			 latest inode timestamp
			-inode-time inode sets all inode timestamps to the
			 latest inode timestamp
			-root-time inode sets the root directory timestamp to
			 the latest inode timestamp

		3.2 New easier to remember shorthand options
			-repro builds a reproducible filesystem image, it is
			 shorthand for -mkfs-time inode.
			-repro-time <time> builds a reproducible image, it is
			 shorthand for specifying -mkfs-time <time>
			 and -inode-time <time>.

	4. Elimination of "fragment block stall" and -(not-)reproducible options

		A technical issue called "the fragment block stall" has been
		eliminated in this release in a way that generates a
		reproducible ordering of files in the filesystem image.  This
		can increase performance by 20% or more, in addition to the
		parallel reader performance improvements.

		This "fragment block stall" was introduced in release 4.4 (2019)
		to produce a reproducible ordering of files in the filesystem,
		but which led to a reduction in parallelisation and performance.
		Due to this reduction, the previous behaviour was retained and
		enabled using the -not-reproducible option.  As the "fragment
		block stall" has now been removed, the options -not-reproducible
		and -reproducible now do nothing, but are still recognised for
		backwards compatibility.

	5. Other improvements for Mksquashfs/Sqfstar

		3.1 New -force-file-mode option, which sets all file
		    (non-directory) permissions to the given mode.
		3.2 New -force-dir-mode option, which sets all directory
		    permissions to the given mode.
		3.3 -root-mode and above new -force-file-mode/-force-dir-mode
		    options now take a symbolic mode in addition to an octal
		    mode.
		3.4 New -info-file option, which prints files written to the
		    filesystem to a file rather than stdout.  Allows -info-file
		    to be used in conjunction with the progress bar.
		3.5 New -pseudo-dir (or -pd) option which supplies a default
		    directory if any directories in a pseudo file definition
		    pathname doesn't exist.
		3.6 New pseudo file 'h' definition which creates a hard link to
		    a file, and follows symbolic links.
		3.7 Previously if a directory was missing (or not a directory)
		    in a Pseudo file definition pathname, the pseudo file
		    definition would be ignored.  This has been hardened to a
		    fatal error.

	6. Other improvements for Unsquashfs/Sqfscat

		4.1 New -mem option, which sets the amount of memory to be used,
		    K, M and G can be used to specify Kbytes, Mbytes and Gbytes.
		4.2 New -mem-percent option, which sets the anount of memory to
		    be used as percentage of available physical memory.
		4.3 Memory specified is limited to 75% of physical memory or
		    less.

	7. New environment variable SQFS_CMDLINE (Mksquashfs/Unsquashfs)

		If set, this is used as the directory to write the file
		sqfs_cmdline which contains the command line arguments given to
		Mksquashfs etc.  Intended to be used to debug scripts/discover
		what is being passed to Mksquashfs.

Don't miss a new squashfs-tools release

NewReleases is sending notifications on new releases.