This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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
:$
o
c:/Users/share /usr/share ntfs binary,posix=0,acl,user,notexec 0 0
<esc>
:wq
%exit
$ 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]