[Unionfs] union of nfs ro and tmpfs rw yielding EROFS
Brian J. Murrell
brian at clusterfs.com
Fri Mar 3 02:45:53 EST 2006
Hello all,
I am using unionfs 1.1.3 with 2.6.9 (RHEL4 2.6.9-22.0.2 base) to try to
get a writable overlay to a read-only shared NFS root filesystem. The
problem I seem to be having is even though I have a RW branch specifed
to the left of the RO branch, I'm still getting EROFS trying to create a
file for example.
First the details:
# cat /proc/mounts
10.8.0.8:/mnt/boots/boulder/generic-node /sysroot-ro nfs ro,v3,rsize=32768,wsize=32768,hard,udp,nolock,addr=10.8.0.8 0 0
none /sysroot-rw tmpfs rw 0 0
none /sysroot unionfs rw,dirs=/sysroot-rw=rw:/sysroot-ro=ro,debug=0,delete=whiteout,copyup=preserve 0 0
Which I mounted with:
# mount -t unionfs -o dirs=/sysroot-rw=rw:/sysroot-ro=ro,debug=0,delete=whiteout none /sysroot
I do believe the semantics of my NFS are correct to allow me to use
"=ro" rather than "=nfsro" (nfsro doesn't change anything anyway):
# /sysroot/usr/bin/strace -e trace=file /sysroot/bin/touch /sysroot-ro/foo execve("/sysroot/bin/touch", ["/sysroot/bin/touch", "/sysroot-ro/foo"], [/* 7 vars */]) = 0
...
open("/sysroot-ro/foo", O_WRONLY|O_NONBLOCK|O_CREAT|O_NOCTTY, 0666) = -1 EROFS (Read-only file system)
and
# ls -l /sysroot-ro/create_timestamp
-rw-r--r-- 1 0 0 0 Feb 24 21:43 /sysroot-ro/create_timestamp
# /sysroot/usr/bin/strace -e trace=file /sysroot/bin/touch /sysroot-ro/create_timestamp
open("/sysroot-ro/create_timestamp", O_WRONLY|O_NONBLOCK|O_CREAT|O_NOCTTY, 0666) = -1 EROFS (Read-only file system)
So attempts to both create a non-existent file and write to an existent
file on the RO NFS root both return EROFS.
Now when I try to do:
# /sysroot/bin/touch /sysroot/foo
/sysroot/bin/touch: cannot touch `/sysroot/foo': Read-only file system
But should that not succeed and be written into the /sysroot-rw branch?
I can write to that branch directly and see the results in the union:
# ls -l /sysroot/foo
ls: /sysroot/foo: No such file or directory
# ls -l /sysroot-rw/foo
ls: /sysroot-rw/foo: No such file or directory
# /sysroot/bin/touch /sysroot-rw/foo
# ls -l /sysroot/foo
-rw-r--r-- 1 0 0 0 Mar 3 00:36 /sysroot/foo
Any ideas what's going on?
Thanx,
b.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : http://www.fsl.cs.sunysb.edu/pipermail/unionfs/attachments/20060303/c41c76e1/attachment-0002.bin
More information about the unionfs
mailing list