Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs Date: Sat, 1 Nov 2003 15:27:05 -0500 (EST) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: "Lee D. Rothstein" cc: cygwin AT cygwin DOT com Subject: Re: Mount Confusion -- the tallest pique in the world? ;-) In-Reply-To: <6.0.0.20.0.20031031144513.266e0280@rogue.codemeta.com> Message-ID: References: <6 DOT 0 DOT 0 DOT 20 DOT 0 DOT 20031030083220 DOT 071a6320 AT rogue DOT codemeta DOT com> <6 DOT 0 DOT 0 DOT 20 DOT 0 DOT 20031031144513 DOT 266e0280 AT rogue DOT codemeta DOT com> Importance: Normal MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sat, 1 Nov 2003, Lee D. Rothstein wrote: > 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 /? WAG: this may be due to the code that lists /cygdrive automatic mounts (since your cygdrive prefix is set to "/", you get your drives listed). > >> 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. Nope. Services run as LocalSystem (aka SYSTEM). :-p > One thing I do not understand, however, is the appearance of the > owner/user SYSTEM on some files/directories when I do 'ls -l'. There you go. :-D > >> 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 > # > > 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? That's what I'm advising against. The -c flag to mount changes the cygdrive prefix (which could be different for the current user and for the system, like all mounts). I'd suggest 'mount -s -b -c /cygdrive' and 'mount -u -b -c /cygdrive', just to keep them consistent. > 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'.) You can switch on the terminal type, and output some ANSI sequence to clear the rxvt buffer, BTW. Don't know off-hand exactly which one. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D. '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "I have since come to realize that being between your mentor and his route to the bathroom is a major career booster." -- Patrick Naughton -- 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/