Junctions != Symlinks; Treat Junctions as MS-FS mounts; MS-symlinks are symlinks

cyg Simple cygsimple@gmail.com
Sat Mar 11 16:42:00 GMT 2017

On 3/10/2017 4:01 PM, L A Walsh wrote:
>    I want to be able to mount other areas of other file
> systems onto directories.  Symlinks are destroyed by Cygwin's
> SETUP.EXE and the install process For example.  I have
> a smallish "/usr" partition, but a large "/Users" partition.
> "/usr/share" grew to hold more and more data over time, and
> currently is using 16G, all by itself.  My "/usr" partition is
> 15GB with 4.7GB free, 11G used.  So I needed to split
> "/usr/share" off to somewhere else.  I don't have room for another
> drive, but I do have room on "/Users".  So tell me,
> why shouldn't I be able to create "/Users/share" and mount
> "/Users/share" at "/usr/share"?

Linda, I'm not trying to reject what you're saying which I find very
sound.  But for this scenario why not just use an entry in /etc/fstab
similar to the below example?

# $ represents original mintty
# % represents the elevated bash
$cygstart --action=runas bash
%cp -a /usr/share /cygdrive/c/Users/
%mv /usr/share /usr/share-bak
%mkdir /usr/share
%vi /etc/fstab
c:/Users/share /usr/share ntfs binary,posix=0,acl,user,notexec 0 0
$ mount /usr/share

>    Same problem under "/opt" under linux.  "/opt" is
> a directory on my root partition.  When I wanted to
> install "VirtualBox" (which lives under "/opt/VirtualBox" it
> refused to run from a path that had a symlink in it.  How
> would you solve that?
>    I used a 'bind' mount.  VirtualBox rejected
> symlinks in its base path, but it does work with mounted
> filesystems.
>    In the same way, not only Cygwin's "setup.exe"
> but also many of the "install" scripts that install programs
> under cygwin, check to see if there is a symlink as part
> of their base path.  If they find one -- they remove it
> and re-create the directory where there used to be a
> symlink.  Result: "/usr/share/man/man1/newprog1.gz"
> s all alone under 'man' as "/usr/share/info/newprog.gz"
> is by itself under /usr/share/info.   Where did the rest
> of my files go?
>    They are still there -- but under
> "/Users/share/...".  That's my main problem.  Cygwin
> doesn't install things in "/usr/share/<location>/<prog>"
> But first, removes all existing symlinks in its base
> path.

Have you considered the Windows mountvol to resolve this issue?  Using a
similar example as above you could use mountvol to assign a VolumeName
to [A-Z]:/Users/share as e.g. S: and modify the /etc/fstab entry to:

S:/ /usr/share ntfs binary,posix=0,acl,user,notexec 0 0

cyg Simple

Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list