funionfs (1) - Linux Manuals

funionfs: user-space directory concatenation.


funionfs - user-space directory concatenation.


funionfs upper_dir mountpoint [ option ] ...


 -o opt,[opt...]        mount options
 -h   --help            print help
 -V   --version         print version

Mount options include:
funionfs_debug      print some debugging information
dirs=LIST           A colon separated list of directories
/branch1=rw      a directory in a read-write mode
/branch1         if no permission is specified, the branch
                 is in a read-write mode
/branch2=ro      a directory in a read-only mode
copyupuid=N         uid of the copied-up files (no default)
copyupgid=N         gid of the copied-up files (no default)
copyupmode=N        mode of the copied-up files (no default)
del_string=N        string to mark a deleted file(default: _DELETED~ )
delete=TYPE         specifies how funionfs deletes and renames
all (default)    delete all objects in read-write branch (default)
                 and add a whiteout file if objects exists in
                 read-only branches.
whiteout         only add a whiteout file in upper (rw) branch
                 or delete file in upper branch.
copyup=TYPE         specifies how to manage attributes
preserve         preserve uid, gid and mode of object (default)
currentuser      the object owns to the user doing the operation
mounter          the object owns to the mounter

There is no implementation of -o delete and -o copyup for now.

You could use the mount command instead :
mount -t fuse funionfs#/upper_dir mountpoint options ]

If you want to name all directories in '-o dirs=', then pass "none" as upper_dir


funionfs concatenates directories mentioned in options (and upper_dir ) to mountpoint. Also, although some (but not all) of the directories are read-only, you still can write in resulting mounted directory. For example, if you have files a/a and b/b and mount mountpoint r with "-o dirs=a=ro:b=ro:w=rw", then you will see files r/a and r/b. You will be able to write to them, and original files will remain intact (changes will go to w ). Note that it is impossible to have file with name ending by del_string value, if you create r/a_DELETED~ in mentioned example, it will dissapear together with a.


You cannot mount an overlay on / (the program that list the content of / will hang). This is probably due to a loop call of the fuse driver. There is no known solution for now.

Probably minor (or major) mistakes in not-so-frequent cases.

Not enough tested.


The source..