mirror of https://github.com/ventoy/Ventoy
75 lines
2.7 KiB
Plaintext
75 lines
2.7 KiB
Plaintext
# Pseudo file example
|
|
|
|
# Mksquashfs supports pseudo files, these allow fake files, directories,
|
|
# character and block devices to be specified and added to the Squashfs
|
|
# filesystem being built, rather than requiring them to be present in the
|
|
# source directories.
|
|
#
|
|
# This, for example, allows device nodes to be added to the filesystem without
|
|
# requiring root access.
|
|
|
|
# Mksquashfs 4.1 adds support for "dynamic pseudo files" and a modify operation.
|
|
# Dynamic pseudo files allow files to be dynamically created when Mksquashfs
|
|
# is run, their contents being the result of running a command or piece of
|
|
# shell script. The modifiy operation allows the mode/uid/gid of an existing
|
|
# file in the source filesystem to be modified.
|
|
|
|
# Two Mksquashfs options are supported, -p allows one pseudo file to be
|
|
# specified #on the command line, and -pf allows a pseudo file to be specified
|
|
# containing a list of pseduo definitions, one per line.
|
|
|
|
# Pseudo file examples
|
|
# Run mkquashfs . /tmp/img -pf pseudo-file.examples
|
|
# to see their effect
|
|
|
|
# Creating dynamic file examples
|
|
|
|
# Create a file "dmesg" containing the output from dmesg.
|
|
dmesg f 444 root root dmesg
|
|
|
|
|
|
# Create a file RELEASE containing the release name, date, build host, and
|
|
# an incrementing version number. The incrementing version is a side-effect
|
|
# of executing the shell script, and ensures every time Mksquashfs is run a
|
|
# new version number is used without requiring any other shell scripting.
|
|
RELEASE f 444 root root \
|
|
if [ ! -e /tmp/ver ]; then \
|
|
echo 0 > /tmp/ver; \
|
|
fi; \
|
|
ver=`cat /tmp/ver`; \
|
|
ver=$((ver +1)); \
|
|
echo $ver > /tmp/ver; \
|
|
echo -n "release x.x"; \
|
|
echo "-dev #"$ver `date` "Build host" `hostname`
|
|
|
|
|
|
# Copy 10K from the device /dev/sda1 into the file input. Ordinarily
|
|
# Mksquashfs given a device, fifo, or named socket will place that special file
|
|
# within the Squashfs filesystem, this allows input from these special
|
|
# files to be captured and placed in the Squashfs filesystem.
|
|
input f 444 root root dd if=/dev/sda1 bs=1024 count=10
|
|
|
|
|
|
# Creating a block or character device examples
|
|
|
|
# Create a character device "chr_dev" with major:minor 100:1 and
|
|
# a block device "blk_dev" with major:minor 200:200, both with root
|
|
# uid/gid and a mode of rw-rw-rw.
|
|
chr_dev c 666 root root 100 1
|
|
blk_dev b 666 0 0 200 200
|
|
|
|
|
|
# Creating a directory example
|
|
|
|
# create a directory "pseudo_dir" with root uid/gid and mode of r--r--r--.
|
|
pseudo_dir d 444 root root
|
|
|
|
|
|
# Modifying attributes of an existing file exmaple
|
|
|
|
# Change the attributes of the file "INSTALL" in the filesystem to have
|
|
# root uid/gid and a mode of rw-rw-rw, overriding the attributes obtained
|
|
# from the source filesystem.
|
|
INSTALL m 666 root root
|
|
|