Section: create and append squashfs filesystems (1)
Updated: 2014-05-13
Page Index



mksquashfs - tool to create and append to squashfs filesystems






Squashfs is a highly compressed read-only filesystem for Linux. It uses zlib compression to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimize data overhead. Block sizes greater than 4K are supported up to a maximum of 64K.

Squashfs is intended for general read-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed.




Filesystem build options

select COMPRESSION compression. Compressors available: gzip (default), lzma (no kernel support), lzo, lz4 and xz.
set data block to BLOCK_SIZE. Default 131072 bytes. Optionally K or M can be used as a suffix to specify kilobytes or megabytes, respectively.
don't make the filesystem exportable via NFS.
don't detect sparse files.
don't store extended attributes.
store extended attributes (default).
do not compress inode table.
do not compress data blocks.
do not compress fragment blocks.
do not compress extended attributes.
do not use fragments.
use fragment blocks for files larger than block size.
do not perform duplicate checking.
make all files owned by root.
-force-uid uid
set all file uids to uid.
-force-gid gid
set all file gids to gid.
do not pad filesystem to a multiple of 4K.
if one source directory is specified, create a root directory containing that directory, rather than the contents of the directory.


Filesystem filter options

Add pseudo file definition.
Add list of pseudo file definitions.
sort files according to priorities in SORT_FILE. One file or dir with priority per line. Priority -32768 to 32767, default priority 0.
list of exclude dirs/files. One per line.
Allow extended shell wildcards (globbing) to be used in exclude dirs/files
Allow POSIX regular expressions to be used in exclude dirs/files.


Filesystem append options

do not append to existing filesystem.
-root-becomes NAME
when appending source files/directories, make the original root become a subdirectory in the new root called NAME, rather than adding the new source items to the original root.


Mksquashfs runtime options:

print version, licence and copyright message.
treat normally ignored errors as fatal.
-recover NAME
recover filesystem data using recovery file NAME.
don't generate a recovery file.
print files written to filesystem.
don't display the progress bar.
display progress bar when using the -info option.
-processors NUMBER
Use NUMBER processors. By default will use number of processors available.
-mem SIZE
Use SIZE physical memory. Optionally K or M can be used as a suffix for kilobytes or megabytes, respectively. Default 25% of memory.
-read-queue SIZE
Deprecated. Use -mem instead.
-write-queue SIZE
Deprecated. Use -mem instead.
-fragment-queue SIZE
Deprecated. Use -mem instead.


Miscellaneous options

alternative name for -all-root.
alternative name for -noI.
alternative name for -noD.
alternative name for -noF.
alternative name for -noX.
print compressor options for selected compressor


Compressors available and compressor specific options

gzip (default)
-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
lzmz (no options) (no kernel support)
-Xalgorithm algorithm
Where algorithm is one of: lzo1x_1, lzo1x_1_11, lzo1x_1_12, lzo1x_1_15 or lzo1x_999. (default lzo1x_999)
-Xcompression-level compression-level
compression-level should be 1 .. 9 (default 8)
Compress using LZ4 High Compression
-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.
-Xcompression-level <compression-level>
<compression-level> should be 1 .. 22 (default 15)






More information about mksquashfs and the squashfs filesystem can be found at <>.



squashfs was written by Phillip Lougher <>.

This manual page was written by Daniel Baumann <>. With some updates for 4.3 for use with Fedora.



Filesystem build options
Filesystem filter options
Filesystem append options
Mksquashfs runtime options:
Miscellaneous options
Compressors available and compressor specific options
LinuxReviews : manual page archive : man1