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?

  • Why not just mount it rw but then only allow root to write directories other than the writable one? Root can remount it anyway so you do not gain any safety with two mounts. – Vality May 12 '14 at 12:06
  • That's an option, but I would like to know if there is a way to do what I describe in my question. – Grodriguez May 12 '14 at 15:41

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.

  • The platform is already setup for a single volume, and I just wanted to know if it is possible to mount the FS as RO and then make a specific dir writable, without having to create extra partitions. – Grodriguez May 12 '14 at 9:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.