Shared object that supports the Power-Safe filesystem (QNX Neutrino)
driver … qnx6 qnx6_options… &
QNX Neutrino
The driver is any of the devb-* drivers, and qnx6_options is one or more of the following, separated by commas:
This limit is useful for preventing unprivileged files from consuming all the available space on a volume. For example, when the allocation limit extended mode bit (QNX6FS_EMODE_ALIMIT) is set for a file, operations fail with ENOSPC if they attempt to grow a file to a size that would cause the mounted volume's free space to drop below its allocation limit value. (For information on setting this bit, see the description of the mkqnx6fsimg alimit attribute.)
Use fsencrypt to manage the encryption.
By default, the fs-qnx6.so module checks to see if integrity checks were enabled at format time.
This option specifically enables or disables integrity checks at runtime by overriding the flag saved on disk in the superblock that determines whether inodes are verified. Enabling the feature permanently enables inode checksums on the volume.
If no value is specified, the verification of inodes is determined by the flag saved on disk in the superblock.
If there is a mix of files written with the icheck enabled and ones with it disabled, the filesystem determines which inodes have valid checksums and skips the verification if a checksum was not stored.
Mount: Can’t mount mountpoint (type qnx6) Mount: Possible reason: Read-only file system
A read-only mount (mount -r) can always be performed on any device.
A managed NAND block device can't overwrite in-place and has no idea of whether content in a block is even valid or meaningful to a mounted filesystem. So the management layers have no choice but to preserve all written content, which can be a lot of wear-leveling overhead if in fact those blocks belonged to say a deleted file, or if the partition was freshly formatted.
The TRIM command is thus a hint to the managed NAND device from the filesystem that certain sectors are no longer live and can be discarded (i.e., the content doesn't have to be preserved or copied by wear-leveling, and/or logical blocks can be erased rather than be reclaimed from elsewhere).
Using the discard option gives better performance than enabling trim. When the filesystem tells the driver to discard a set of blocks, the driver simply marks them as discarded and returns, queuing them up for garbage collection later. If the filesystem requests the driver to trim a set of blocks, they're cleaned immediately, which may result in heavy disk I/O, depending on the current state of the system. In the end they do the same thing, just with different timing.
You can append a case-insensitive suffix of K, M, or G to these numbers, to make fs-qnx6.so interpret them as KB, MB, or GB, respectively. Any nonzero value is rounded up to the nearest multiple of the filesystem's block size.
The fs-qnx6.so shared object provides support for Power-Safe (copy-on-write/snapshot) filesystems. It's automatically loaded by the devb-* drivers when mounting a Power-Safe filesystem.
Required properties of the device
The Power-Safe filesystem was designed for and is intended for traditional rotating hard disk drive media. It operates by moving the on-disk filesystem state from one stable view to another stable view using copy-on-write (COW) to relocate modified blocks. To finalize this transition, all dirty blocks involved in the new view must be committed to persistent storage, and then a new filesystem superblock/root referencing the relocated blocks is committed.
This provides power-safe robustness, because at any point in time either the old version is completely accessible or the new version is completely accessible (with no live data being overwritten in between). Thus to mount as read-write on a given device, that device must have the following properties:
or:
and:
The following table shows the shared objects and related commands for the filesystems:
Partition type | Filesystem | Shared object | Initialize with: | Check with: |
---|---|---|---|---|
1, 4, or 6 | DOS | fs-dos.so | mkdosfs | chkdosfs |
7 | Windows NTa | fs-nt.so | N/A | N/A |
11, 12, or 14 | FAT32 | fs-dos.so | mkdosfs | chkdosfs |
77, 78, or 79 | QNX 4 | N/A | N/A | N/A |
131 | Linux (Ext2) | fs-ext2.so | N/A | N/A |
175 | Apple Macintosh HFS or HFS Plusa | fs-mac.so | N/A | N/A |
177, 178, or 179 | Power-Safe | fs-qnx6.so | mkqnx6fs | chkqnx6fsb |
185 | QNX Trusted Disk | fs-qtd.so | mkqfs | N/A |
a Read-only.
b Not usually necessary.
For more information, see the Filesystems chapter of the System Architecture guide.