Web lists-archives.com

Re: symbolic links on Paragon Linux File systems

On Dec 17 10:34, Corinna Vinschen wrote:
> On Dec 17 08:11, Simon Liesenfeld via cygwin wrote:
> > Hi all
> > 
> > There is a commercial ext3-4 file system driver for windowsLinux File
> > Systems für Windows | Paragon Softwarewhich enable Windows to read an
> > write on native ext3-4 volumes.In General cygwin works perfectly on
> > such volumes,even named pipes work,
> > but Cygwin programs do not interprete those links correctly,which are
> > created on such volumes.whilst symbolic links on native NTFS drives
> > referring files on such volumeswork perfectly.
> > $pwd/cygdrive/e
> > 
> > $ echo hallo > source
> > 
> > $ ln -s source sl
> > 
> > $ cat sl
> > !<symlink>▒▒source
> Yes, we can't do that without special knowledge of the FS.  The default
> symlinks on Cygwin are only evaluated correctly if the DOS SYSTEM
> attribute is set.  The ext4 driver can't do that, obviously.
> Are the native symlinks on an ext4 FS converted to NTFS symlinks
> on the fly by the driver?  Are they visible as symlinks in Windows
> or Cygwin?
> If so, you could try setting the environment variable CYGWIN to contain
> "winsymlinks:native".  This creates native Windows symlinks rather than
> the special Cygwin POSIX symlinks.  If the driver is handling this
> correctly, it should transparently convert them to ext4 symlinks and
> they should just work.

Answering my own questions:

No, the driver does not handle symlinks gracefully *at all*.

- Existing symlinks on the FS are handled as if they are simple files.
  They are in no way identifiable as symlinks by any Windows client.
  They supposedly only contain the name of the symlink target, which is
  an arbitrary string.  No symlink marker or anything.

- DOS file attributes don't work, so we can't use Cygwin's symlink
  handling, not even by utilizing Windows shortcuts instead of Cygwin

- Windows native symlinks and transparent conversion to and from ext4
  symlinks is not supported.

- No ACL handling, not even to fake basic POSIX permissions, so we can't
  change the permissions at all.

I don't think it's worth to go to great length supporting Cygwin
symlinks on this FS.  They won't be recognized by your Linux
installation as symlinks anyway and we'd have to perform excessively
slow checks just to recognize them.

As a sidenote, the OSS project Ext2Fsd handles symlinks transparently
via standard Windows functions.  With "CYGWIN=winsymlinks:native" you
can generate real ext4 symlinks transparently.  Even the good old Cygwin
symlink works on Cygwin without programmatic intervention, albeit those
won't be recognized as symlinks by Linux of course.  Unfortunately
Ext2Fsd didn't learn to handle ext4 with the 64bit FS option set yet.
64bit is default for quite some time.


Corinna Vinschen
Cygwin Maintainer

Attachment: signature.asc
Description: PGP signature