I have a filesystem on flash using jffs2. I would like to mount this filesystem read-only, except for a single folder that I would like to be writable.
Is this possible without resorting to something like unionfs and the likes?
You can use a bind mount, although they are a bit finicky about permissions requiring you to mount and then remount the directory to get the correct permissions. The man page of mount suggests:
mount --bind olddir newdir mount -o remount,rw newdir
however on my Arch system I need to do
mount --bind olddir newdir mount -o remount,rw olddir newdir
If you only want the directory to be listed in one place you can over mount the directory
mount --bind olddir olddir mount -o remount,rw olddir olddir
Is there a particular reason you must use a single volume?
The thing about read-only filesystems is that you only use them when there is no uncertainty about how big they must be. Let us call this size M. Let us call the size of the storage medium N. You can then create two partitions on that medium, one size M and one size N - M.
This will allow you to mount the read-write volume in its proper location within the overall filesystem, which is mostly read-only.