mksquashfs (1) - Linux Manuals

mksquashfs: tool to create and append to squashfs filesystems


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), lzo, xz.
set data block to BLOCK_SIZE. Default 131072 bytes.
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.
-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.
-processors NUMBER
Use NUMBER processors. By default will use number of processors available.
-read-queue SIZE
Set input queue to SIZE Mbytes. Default 64 Mbytes.
-write-queue SIZE
Set output queue to SIZE Mbytes. Default 512 Mbytes.
-fragment-queue SIZE
Set fragment queue to SIZE Mbytes. Default 64 Mbytes.

Miscellaneous options

alternative name for -all-root.
alternative name for -noI.
alternative name for -noD.
alternative name for -noF.
alternative name for -noX.

Compressors available and compressor specific options

gzip (no options) (default)
lzo (no options)
-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.


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


squashfs was written by Phillip Lougher <phillip [at]>.

This manual page was written by Daniel Baumann <mail [at]>.