delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/11/01/13:39:15

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-Id: <6.0.0.20.0.20031031144513.266e0280@rogue.codemeta.com>
X-Sender: lee AT rogue DOT codemeta DOT com (Unverified)
Date: Sat, 01 Nov 2003 13:35:28 -0500
To: cygwin AT cygwin DOT com
From: "Lee D. Rothstein" <lee AT veritech DOT com>
Subject: Re: Mount Confusion -- the tallest pique in the world? ;-)
Cc: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
In-Reply-To: <Pine.GSO.4.56.0310311247130.13697@slinky.cs.nyu.edu>
References: <6 DOT 0 DOT 0 DOT 20 DOT 0 DOT 20031030083220 DOT 071a6320 AT rogue DOT codemeta DOT com>
<Pine DOT GSO DOT 4 DOT 56 DOT 0310311247130 DOT 13697 AT slinky DOT cs DOT nyu DOT edu>
Mime-Version: 1.0

At 2003-10-31 01:08 PM, Igor Pechtchanski wrote:
>On Thu, 30 Oct 2003, Lee D. Rothstein wrote:
>
>> Either Cygwin or I be confused. (I'm betting on "I". ;-))
>
>Bingo.
>
>> I have deleted '/tmp' ('d:/Cygwin/tmp' -- using Explorer)
>> and issued: 'umount /tmp' and 'mount 'e:\tmp /tmp' repeatedly.
>                                                     ^^^^^^^^^^
>Umm, why?  Once should have been enough.
>
>> All the other mounts to '/' appear in an 'ls' of '/',
>> but '/tmp' ('e:/tmp'), does not.
>
>What other mounts to "/"?  "/" itself is a mount, but under it everything
>should be either a real or virtual (/proc, /dev) directory.

/zc -- c:/
...
/zy -- y:/

Why do /zc, /zd, /ze, /zf, /zg, ... ('mount c:/ /zc', ...
'mount g:/ /zg, ...) appear in ls output when no prior
'mkdir's have been carried out. What's different between
/tmp and /<everything else>?


>> Prior to my doing any of the above (w/ Cygwin root at
>> 'c:/_Programs/Cygwin'), I've had recurring instances of something
>> (apps?, 'setup.exe?, what?) creating 'tmp' and more frequently 'var' on
>> both my 'c:' and 'e:' drives. This problem seems to have subsided since
>> I moved the Cygwin root directory from 'c:/_Programs/Cygwin' to
>> D:/Cygwin'.
>
>I'd bet you were installing as one user and running as another.

You'd lose that bet. Only one ID -- Administrator. Cygwin always
*only* installed for/by Administrator.

One thing I do not understand, however, is the appearance of the
owner/user SYSTEM on some files/directories when I do 'ls -l'. 

>> Also, after I moved Cygwin, despite changing all the references in the
>> profile and Windows environment variables, *and* reinstalling the whole
>> of Cygwin, "Cygwin" "insisted" on looking at the C/_Programs... : root
>> rather than the D:/Cygwin... directory
>>
>> Anybody know what's causing this?
>
>Stale user mounts?  Your "/", "/usr/bin" and "/usr/lib" mounts appear to
>be user mounts.  You should probably remount them as "system" (i.e.,
>'mount -f -s -b d:/Cygwin /', 'mount -f -s -b d:/Cygwin/bin /usr/bin',
>'mount -f -s -b d:/Cygwin/lib /usr/lib', and 'umount -U').

This was most helpful. To have a copy of the wisdom expressed above
for future reference, I have written the following script:

#!d:/Cygwin/bin/bash
#
# ^Use absolute[ly brain dead (MS)] paths until mounts are corrected
#
# 'mountproperly' -- This script is only required if Cygwin 'setup.exe'
#                    configuration gets screwed up WRT mounted directories,
#                    I.e., Initialize all mounts to their desired parameters
#
# 2003-10-31 -- as per Cygwin List/Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
#

do1 () { # Make sure each drive/directory is mounted with the correct
         # parameters:
  d:/Cygwin/bin/umount            $2  # 1st, unmount everything
  d:/Cygwin/bin/mkdir             $2  # 2nd, make a directory representation
       # in the virtual root directory so that certain directories can show
       #  up at all as virtual directories (e.g., '/tmp')
  d:/Cygwin/bin/mount -f -s -b $1 $2  #  -f, force mount, don't warn about
       #     missing mount point directories
       # -s, (default) add system-wide mount point; Lee: necessary? Default!
       # -b, (default) text files are equivalent to binary files
       #     (newline = \n) Lee: necessary? It is the default.
}

d:/Cygwin/bin/umount -U # Unmount all user mounts. We want all mounts as
                        # system mounts, because ?
do1 d:/Cygwin /
d:/Cygwin/bin/mount -s -b -c /  # -c -- change the cygdrive path prefix
     # to / . This doesn't work? 'ls /c', nor 'ls //c', for example, does
     # not list the c: drive! What am I not getting?
do1 d:/Cygwin/bin /usr/bin # any others, missing, here?
do1 d:/Cygwin/lib /usr/lib

mkdir /proc # Allows 'ls' & 'cd's to this virtual directory/information
mkdir /dev

for drive in c d e f g h x y a s # Drive mount points don't need actual
                                 # directories to show up in 'ls' output
                                 # for some reason. Why are these
                                 # different from '/tmp'?
  do
  umount ${drive}:/
  mount -f -s -b ${drive}:/ /z${drive}
  done

mount # See the corrected mounts
------------------------------------------------------------------

>Also, your system cygdrive prefix is marked "textmode"; you should change
>it to "binmode" to avoid spurious errors (by 'mount -s -b -c /').  It's
>not very safe to have it set to '/' anyway...

Please note that in the above script ('mountproperly'), I have tried
to include the advice of the above sentence, but it occurs to me that
I'm having trouble with the referents in the sentence.

As far as I know, my only cygdrive prefix is 'cygdrive'. Are you
saying it's also '/'? Note that in the script I am doing a
'mount -s -b -c /'. That's what you are advocating?

Should this be written up for the FAQ?

>Oh, and another small thing:
>
>cls = `() {  cmd /c cls
>}'
>
>Why not install the "clear" package and 'function cls() { clear }'? ;-)
>        Igor

Artifact of a past limitation of 'clear'. It used to only clear the
screen and not the screen buffer, as well. Now, it clears both.
('cls', of course, never worked with 'rxvt'.)



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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019