summaryrefslogtreecommitdiff
path: root/bin/gensquashfs/gensquashfs.1
diff options
context:
space:
mode:
Diffstat (limited to 'bin/gensquashfs/gensquashfs.1')
-rw-r--r--bin/gensquashfs/gensquashfs.1201
1 files changed, 201 insertions, 0 deletions
diff --git a/bin/gensquashfs/gensquashfs.1 b/bin/gensquashfs/gensquashfs.1
new file mode 100644
index 0000000..9ef4ee8
--- /dev/null
+++ b/bin/gensquashfs/gensquashfs.1
@@ -0,0 +1,201 @@
+.TH GENSQUASHFS "1" "June 2019" "generate squashfs images" "User Commands"
+.SH NAME
+gensquashfs \- generate squashfs images
+.SH SYNOPSIS
+.B gensquashfs
+[\fI\,OPTIONS\/\fR] <squashfs-file>\/\fR
+.SH DESCRIPTION
+Generate a SquashFS image.
+.SH OPTIONS
+.TP
+\fB\-\-pack\-file\fR, \fB\-F\fR <file>
+Use a \fBgen_init_cpio\fR style description file. The file format is specified
+below. If \fB\-\-pack\-dir\fR is used, input file paths are relative to the
+pack directory, otherwise they are relative to the directory the pack file
+is in.
+.TP
+\fB\-\-pack\-dir\fR, \fB\-D\fR <directory>
+If \fB\-\-pack\-file\fR is used, this is the root path relative to which to
+read files. If no pack file is specified, pack the contents of the given
+directory into a SquashFS image. The directory becomes the root of the file
+system.
+.TP
+\fB\-\-compressor\fR, \fB\-c\fR <name>
+Select the compressor to use.
+Run \fBgensquashfs \-\-help\fR to get a list of all available compressors
+and the default selection.
+.TP
+\fB\-\-comp\-extra\fR, \fB\-X\fR <options>
+A comma separated list of extra options for the selected compressor. Specify
+\fBhelp\fR to get a list of available options.
+.TP
+\fB\-\-num\-jobs\fR, \fB\-j\fR <count>
+If libsquashfs was compiled with a built in thread pool based, parallel data
+compressor, this option can be used to set the number of compressor
+threads. If not set, the default is the number of available CPU cores.
+.TP
+\fB\-\-queue\-backlog\fR, \fB\-Q\fR <count>
+Maximum number of data blocks in the thread worker queue before the packer
+starts waiting for the block processors to catch up. Higher values result
+in higher memory consumption. Defaults to 10 times the number of workers.
+.TP
+\fB\-\-block\-size\fR, \fB\-b\fR <size>
+Block size to use for Squashfs image.
+Defaults to 131072.
+.TP
+\fB\-\-dev\-block\-size\fR, \fB\-B\fR <size>
+Device block size to padd the image to.
+Defaults to 4096.
+.TP
+\fB\-\-keep\-time\fR, \fB\-k\fR
+When using \fB\-\-pack\-dir\fR only, use the timestamps from the input files
+instead of setting defaults on all input paths. The root inode and the
+modification time on the SquashFS image itself will still be set to defaults.
+.TP
+\fB\-\-one\-file\-system\fR, \fB\-o\fR
+When using \fB\-\-pack\-dir\fR only, stay in the local filesystem and do not
+cross mount points.
+.TP
+\fB\-\-defaults\fR, \fB\-d\fR <options>
+A comma separated list of default values for
+implicitly created directories.
+The following values can be set:
+.TS
+tab(;) allbox;
+l l
+l l
+l l
+l l
+l l
+rd.
+\fBOption\fR;\fBDefault\fR
+uid=<value>;0
+gid=<value>;0
+mode=<value>;0755
+mtime=<value>;\fB$SOURCE\_DATE\_EPOCH\fR if set, 0 otherwise
+.TE
+.TP
+.TP
+\fB\-\-set\-uid\fR, \fB\-u\fR <number>
+Force the owners user ID for ALL inodes to this value, no matter what the pack
+file or directory entries actually specify.
+.TP
+\fB\-\-set\-gid\fR, \fB\-g\fR <number>
+Force the owners group ID for ALL inodes to this value, no matter what the pack
+file or directory entries actually specify.
+.TP
+\fB\-\-all\-root\fR
+A short hand for `\-\-set\-uid 0 \-\-set\-gid 0`.
+.TP
+\fB\-\-selinux\fR, \fB\-s\fR <file>
+If built with SELinux support, use the given SELinux label file to add context
+labels to the elements packed into the SquashFS image.
+.TP
+\fB\-\-exportable\fR, \fB\-e\fR
+Generate an export table for NFS support.
+.TP
+\fB\-\-no\-tail\-packing\fR, \fB\-T\fR
+Do not perform tail end packing on files that are larger than the specified
+block size.
+.TP
+\fB\-\-force\fR, \fB\-f\fR
+Overwrite the output file if it exists.
+.TP
+\fB\-\-quiet\fR, \fB\-q\fR
+Do not print out progress reports.
+.TP
+\fB\-\-help\fR, \fB\-h\fR
+Print help text and exit.
+.TP
+\fB\-\-version\fR, \fB\-V\fR
+Print version information and exit.
+.SH INPUT FILE FORMAT
+The input file contains a simple, newline separated list that describe the
+files to be included in the squashfs image:
+.PP
+.in +4n
+.nf
+# a comment
+file <path> <mode> <uid> <gid> [<location>]
+dir <path> <mode> <uid> <gid>
+nod <path> <mode> <uid> <gid> <dev_type> <maj> <min>
+slink <path> <mode> <uid> <gid> <target>
+link <path> <dummy> <dummy> <dummy> <target>
+pipe <path> <mode> <uid> <gid>
+sock <path> <mode> <uid> <gid>
+.fi
+.in
+
+.TS
+tab(;) allbox;
+l l
+l l
+l l
+l l
+l l
+l l
+l l
+l l
+l l
+rd.
+<path>;T{
+Absolute path of the entry in the image. Can be put in quotes
+if some components contain spaces.
+T}
+<location>;T{
+Optional location of the input file. Can be specified relative to either the
+description file or the pack directory. If omitted, the image path is used
+as a relative path.
+T}
+<target>;Symlink or hardlink target.
+<mode>;Mode/permissions of the entry.
+<uid>;Numeric user id.
+<gid>;Numeric group id.
+<dev_type>;Device type (b=block, c=character).
+<maj>;Major number of a device special file.
+<min>;Minor number of a device special file.
+.TE
+
+.PP
+Example:
+.PP
+.in +4n
+.nf
+# A simple squashfs image
+dir /dev 0755 0 0
+nod /dev/console 0600 0 0 c 5 1
+dir /root 0700 0 0
+dir /sbin 0755 0 0
+
+# Add a file. Input is relative to pack dir or listing path
+file /sbin/init 0755 0 0 ../init/sbin/init
+
+# Read from ./bin/bash relative to pack dir or listing path
+# /bin is created implicitly with default attributes.
+file /bin/bash 0755 0 0
+
+# file name with a space in it and a "special" name
+file "/opt/my app/\\"special\\"/data" 0600 0 0
+.fi
+.in
+.SH ENVIRONMENT
+If the command line switch \fB\-\-defaults\fR is not used or no default mtime
+is specified, the value of the environment variable \fBSOURCE\_DATE\_EPOCH\fR
+is used for all file and filesystem timestamps.
+
+If \fBSOURCE\_DATE\_EPOCH\fR is not set, not a parsable number or it is out of
+range, the timestamps default to 0.
+
+Environment variables are only used if no explicit command line switches
+are set. Explicit command line switches are always preferred over the
+environment variables.
+.SH SEE ALSO
+rdsquashfs(1), tar2sqfs(1)
+.SH AUTHOR
+Written by David Oberhollenzer.
+.SH COPYRIGHT
+Copyright \(co 2019 David Oberhollenzer
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.