Hello,
Thanks for your help, but I still have some difficulties.
I have an union like that:
unionfs on / type unionfs
(rw,dirs=/old/tmpfs_layer=rw:/old/rw_layer=ro:/old=ro)
Where
- /old/tmpfs_layer is a tmpfs read-write branch
- /old/rw_layer a is branch on a compact flash used to flush changes
from tmpfs_layer
- /old/ is a ro branch on a compact flash
I have no problem to copy data from /old/tmpfs_layer to /old/rw_layer,
it works very well with unionfs 2.1. But I still have some difficulties
to cleanly deletes files from the tmpfs branch.
I understand I have to remove the tmpsfs branch from the union before to
delete files. Unfortunately I cannot do that!
In my case the union is for the root directory, then I cannot remount
the union in read-only mode (mount -t unionfs -o remount,ro / -> device
is busy).
Then I tried to insert a new tmpfs read-write branch at the highest
priority, and to downgrade the old tmpfs branch to read-only mode and
then to remove the old tmpfs branch from the union
Here is the detail:
# mount | grep unionfs
unionfs on / type unionfs
(rw,dirs=/old/tmpfs_layer=rw:/old/rw_layer=ro:/old=ro)
#mount -t tmpfs tmpfs /old/tmpfs_layer2/
#mount -t unionfs -o
remount,add=/old/tmpfs_layer2/,mode=/old/tmpfs_layer/=ro none /
# mount | grep unionfs unionfs on / type unionfs
(rw,dirs=/old/tmpfs_layer2=rw:/old/tmpfs_layer=ro:/old/rw_layer=ro:/old=ro)
# mount -t unionfs -o remount,del=/old/tmpfs_layer/ none /
mount: / is busy
Even with a new rw branch at the highest priority, I cannot remove the
old tmpfs branch, I always get the message "/ is busy"
Do you think I can do that when the union is on the / directory?
Thanks by advance,
Sylvain
Erez Zadok a écrit :
Now I have a new problem, even after performing rsync, the content of
the tmpfs is not deleted and then continue to grow. Therefor I would
like to flush the tmpfs branch after a rsync. A simple 'rm' on the tmpfs
branch make the union inconsistent, at that time some deleted files
completely disappeared from the union (even if they are in the other
branch). A remount with "incgen" does not change anything.
Do you have an idea?
Thanks by advance.
OK, so if I understood you, after you resync from the tmpfs back to the
flash, you want to delete all files from the tmpfs and then start again. In
that case, it would be best to first remove the tmpfs branch from your
union, then rm -rf it, and then add it back to your union. So the rough
order of events will be something like that (I didn't try it yet):
- assume /tmpfs is your tmpfs partition and /flash is your writeable flash
- mount -t unionfs -o dirs=/tmpfs:/flash none /union
- you make whatever changes through the union
- then you follow the procedure we already discussed to flush changes from
/tmpfs to /flash
- mount -t unionfs -o remount,ro /union
# the above is probably needed before you can
# remove /tmpfs from the union, IF /flash is
# mounted readonly
- mount -t unionfs -o remount,del=/tmpfs none /union
- rm -rf /tmpfs/*
- mount -t unionfs -o remount,add=/tmpfs none /union
- mount -t unionfs -o remount,rw none /union
Sylvain
Erez.
_______________________________________________
unionfs mailing list: http://unionfs.filesystems.org/
unionfs@mail.fsl.cs.sunysb.edu
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs