Filesystems

QNX SDP8.0Migrating to QNX OS 8.0Developer

Filesystem ownership and permissions

The following options that are used with devb-* drivers as a command-line option and mount -o have been removed: mntperms, mntuid, mntgid.

Use the following options instead of mntperms:
  • For filesystems that do not have real POSIX permissions (e.g., FAT), partitions, block devices, and QTD, use the attributes dperms=, fperms=, perms=, uid=, gid=.
  • For filesystems with a real root directory:
    • set the mountpoint permissions, either in the buildfile (qnx6fs, qcfs, squashfs), or via the chmod() function or the chmod mountpoint command (qnx6fs, ext2fs, qcfs, squashfs), and
    • set the mountpoint ownership with the chown() function or the chown mountpoint command (qnx6fs, ext2fs, qcfs, squashfs).

For other items that are discontinued or planned to be discontinued, go to the QNX Software Development Platform 8.0 Deprecation and Discontinuation Notice.

Power-Safe filesystem compatibility

The fs-qnx6.so shared object that provides support for Power-Safe (QNX6) filesystems is fully backwards compatible. Any version of this object can mount an on-disk filesystem image that was created with an earlier version of mkqnx6fsimg or formatted with an earlier version of mkqnx6fs.

However, this shared object is not always forwards compatible. Sometimes new Power-Safe filesystem features are added which require changes to the on-disk structure. When this happens, new compatibility markers are assigned to the new features. These markers indicate to an fs-qnx6.so version that does not support the corresponding features whether it cannot safely mount the filesystem as read-write or it cannot safely mount it at all. Anytime an active filesystem uses such a feature, the associated compatibility marker gets set. During the mount operation, fs-qnx6.so compares the markers in the on-disk image with the markers it supports. If there's a mismatch, it does one of the following:
  • Mounts the filesystem as read-only and therefore it's partly usable.
  • Fails the mount operation.

UNIX domain sockets in QNX SDP 8.0.3

Support for UNIX domain sockets was added for QNX SDP 8.0.3. If you mount an on-disk Power-Safe filesystem image on a target based on this version, the fs-qnx6.so object enables a compatibility marker whenever you create any files of type socket. If you then try to mount that filesystem on a target that uses a pre-8.0.3 version of fs-qnx6.so, the mount operation fails.

To avoid this issue, delete all socket files before unmounting the filesystem on the target that's based on version 8.0.3 or higher. The compatibility marker is removed when the last file of type socket is removed, and you can then successfully mount the filesystem with an older fs-qnx6.so version.

Best practices when upgrading QNX OS versions

The following practices make migrating to a newer QNX OS version easier:
  • Don't run the filesystem checker (chkqnx6fs) unconditionally at boot. This is likely to fail in upgrade scenarios if the filesystem has been modified by a version of fs-qnx6.so that's newer than the chkqnx6fs utility version.
  • If possible, avoid using new filesystem features if you might need to mount the filesystem on an earlier OS version.
  • Before unmounting the filesystem on the newer OS version, do any applicable cleanup such as removing files of type socket.
Page updated: