mount_ifs

Updated: April 19, 2023

Mount an image filesystem (QNX)

Syntax:

mount_ifs  [-bT] [-C size] [-d dll [,arg...]] -f filename [-k keyfile] -m mountpoint 
           [-o trusted] [-v[v]...]

Runs on:

QNX Neutrino

Options:

-b
Daemonize and return before the transfer of the data. By default mount_ifs daemonizes itself after.
-C size
The buffer/chunk size. The default is 64 KB.
-d dll [,arg...]
Load this DLL and pass it the signature_provider() function (see Verification for more information). Optionally, you can specify additional arguments to the provider function.
-f filename
The name of the file containing an image filesystem.
-k keyfile
The PEM file containing the public key.
-m mountpoint
Where the device is to be mounted on your system.
-o trusted
Mount a non-boot IFS as trusted.
-T
Create a second thread to handle the decompression in parallel. You need to use this only if you have a compressed IFS image.
-v[v]...
Be verbose; more v characters cause more verbosity.

Description:

The mount_ifs utility mounts an image filesystem at the specified mountpoint, decompressing the filesystem if it's compressed. It's similar to using mount with the -t ifs option, but it uses direct I/O (if supported) to load the IFS image from a block device into memory, and then mounts the IFS. The utility allocates the memory and daemonizes itself, and supports the same compression algorithms as mkifs.

This utility supports image filesystems that are formatted as ELF or binary, but not as SREC.

This program uses the OpenSSL library for cryptography services.

Verification

The IFS image can be digitally verified using an RSA-SHA256 signature before it is mounted. To enable verification, provide both the name of a PEM file containing the RSA public key (-k option) and the name of a DLL with a callout function acting as a signature provider (-d option). The DLL must contain the following function:
 int signature_provider(const char *filename, const char *arg, 
                        size_t siglen, unsigned char *sigbuf);
To declare the above function, the DLL source code should include the header file "mount_ifs.h".