On Wed, Mar 18, 2015 at 07:47:44PM +0100, Jobin, Gaël wrote:
Hi all, I'm trying to share an encrypted container (Vecracrypt, the successor of Truecrypt) through Samba on my local network. If my shared folder is mounted using the command "mount", the container can be opened without any problems. Through Nautilus (gvfs-mount), the shared folder seems mounted correctly and the encrypted container can be copied on my desktop but Veracrypt cannot open/mount it directly from the GVFS mountpoint (says something "open error -260" or something). I started looking for the difference between the native "mount" command and "gvfs-mount". One is done using kernel driver while the other use a virtual filesystem in the userland. What I don't understand is that both should implement the Posix E/S API. During my research I found this on https://wiki.gnome.org/Projects/gvfs/doc: [1]
Why should they both implement this API? (not exactly sure what the E/S api is either)
_Please note that due to different nature of POSIX and GIO filesystems, not everything is possible in POSIX world and there will always be trade-offs. Moreover not all backends implement every GVfsBackend method, e.g. backend implements file open/read/write/close but not seeking. Some POSIX applications may not function properly due to that, the translation is not 1:1. Things like returning zero file system size and free space just because the actual backend has no native support may make some apps confused refusing to write any data._So, I assume that the backend for Samba (gvfs-smb) does not fully implement the Posix E/S API right? In the meantime, the "mount" command use CIFS who, apparently, implement the Posix E/S API better than gvfs-smb ? So, what should be done to have Veracrypt working with GVFS?
So gvfs provides higher level operations like pull, push, copy, etc since these are generally what applications want. However, the gvfs-smb generally provides reasonable support for lower-level operations so it may be possible to use gvfs-smb underneath Vecracrypt. But you'd need to find out what is going wrong... You can run the following in a terminal: pkill gvfs; GVFS_DEBUG=all GVFS_SMB_DEBUG=10 `find /usr/lib* -name 'gvfsd'` &> ~/log.txt Then mount the smb share, reproduce the problem, and attach the log so it's possible to see what is happening. Also stracing gvfsd-smb and gvfsd-fuse would be useful. Cheers -- Ross Lagerwall
Attachment:
pgpXUZh939cpr.pgp
Description: PGP signature