Filesystems

We've discontinued the QNX 4 filesystem (fs-qnx4.so). If you used this filesystem on your older QNX Neutrino system and you want to move your files to version 7, use a Power-Safe (fs-qnx6.so) filesystem instead.

Note: To help prevent the loss of data due to power loss, the Power-Safe filesystem probes the hardware at mount time, to see if the hardware supports the SYNC operation. If it doesn't, the filesystem can't promise that data is safely stored on the media, and so it refuses to mount the media in read-write mode. You might see an error like this:
Mount: Can’t mount mountpoint (type qnx6)
Mount: Possible reason: Read-only file system

To get around this, use mount -t qnx6 -o sync=optional ..., which tells the Power-Safe filesystem that the SYNC support is optional, rather than mandatory. USB sticks, SD cards, and devb-loopback typically require the sync=optional option.

The best way to replace a QNX 4 filesystem is to recreate it as a Power-Safe filesystem on your development host:

  1. Create a buildfile that specifies the files you want to include.
  2. Use mkqnx6fsimg to create an image of a Power-Safe filesystem.
  3. Add the filesystem image to your target.

If you need to move a QNX 4 filesystem from an older target system, do the following:

  1. On your older QNX Neutrino system, create a Power-Safe filesystem.
  2. Copy the files from your QNX 4 filesystem to your Power-Safe filesystem.
  3. Move the Power-Safe filesystem to your QNX Neutrino 7.0 system.

We've also discontinued the dinit utility that initializes a disk for use as a QNX 4 filesystem. You can use mkqnx6fsimg instead to build a Power-Safe filesystem image. For example, to make a bootable x86 image from an IFS with dinit, you might do this:

dd if=/dev/zero of=x86.hd if=/dev/zero bs=1024 count=100000
dinit -m "db" -F -f x86.ifs x86.hd
dinit -B diskpc2 x86.hd

The mkqnx6fsimg equivalent is:

echo "[num_sectors=512K sector_size=512] /.boot/ifs=x86.ifs" | mkqnx6fsimg - x86.hd