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 Delivered-To: mailing list cygwin AT cygwin DOT com From: "Frank Seide" To: , Subject: RE: Sharing a single cygwin installation among multiple clients machines Date: Sat, 16 Feb 2002 21:22:47 +0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.3416 Importance: Normal In-Reply-To: <3C6750BF.34ADAF81@insight.rr.com> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 Hi, we also use a single shared CygWin installation. Maybe you don't need a functioning CygWin installation to run 'mount'. I have no problem running 'mount' directly by specifying its full network pathname (with cygwin1.dll being in the same directory). Here's the command I use to "install" a client: \\OUR_SERVER\cygwin_root\root\bin\mount -f -b //OUR_SERVER/Cygwin_Root/root / where \\OUR_SERVER\cygwin_root\root contains the entire CygWin root directory "/", which in turn contains /bin, /etc, and so on. I don't use any drive letters, but always full pathnames. Regards, Frank > -----Original Message----- > From: Paul McFerrin [mailto:MailHole AT insight DOT rr DOT com] > Sent: Monday, February 11, 2002 1:04 PM > To: cygwin AT cygwin DOT com > Subject: Sharing a single cygwin installation among multiple > clients machines > > > Hello: > > This a actual case example of sharing a single installation > of cygwin on a server machine and having access to cygwin > from multiple clients without the need of installing cygwin > on the clients. > > First I like to congratulate the developers of cygwin for > their wisdom in using the registry as the mount table. > Without this little feature, this sharing of cygwin in this > manor would not be possible! > > Here is my successful experience.... > > The first task to accomplish is the boot strapping of the > system registry to get the proper mounts reflected. The > clients are in a catch-22 position of not having a > functioning cygwin to be able to use the mount command. It > might be a nice feature to write standalone program (not > using cygwin1.dll) that would read a file to indicate what > mounts you desire and have it create the registry entries. > But given the lack of such a program, you have to manually > construct a file to contain the new registry entries to be added. > > Before continuing, I need to explain my conventions so you > know what I'm doing. On my server machine (containing the > cygwin installation) and all client machines, I mount all of > my local drive letters as /{drive_letter}. This means that > drive C: is mounted as /c and drive D: is mounted as /d and > so on. So /c would reference the C: drive on each respective > local machine. For all client machines. I mount the drives > of the server machine using a double-letter convention. This > means that /cc refers to drive C: on the server and /dd > refers to the D: drive on the server. On my server machine, > I have the following mounts: > > D:\cygwin\bin on /usr/bin type system (binmode) > D:\cygwin\lib on /usr/lib type system (binmode) > D:\cygwin on / type system (binmode) > c: on /c type user (textmode) > d: on /d type user (binmode) > e: on /e type user (binmode) > > All physical drives on the server machine are shared > resources (Windows share). All client machines map network > drives to my share as follows: > H: -> \\server\C$ > I: -> \\server\D$ > J: -> \\server\E$ > > Now we're ready to begin the initial bootstrap of the client > machines. > The desired mounts for a particular client with a single hard > drive might look like this: > I:\cygwin\bin on /usr/bin type system (binmode) > I:\cygwin\lib on /usr/lib type system (binmode) > I:\cygwin on / type system (binmode) > C: on /c type system (binmode) > H: on /cc type system (binmode) > I: on /dd type system (binmode) > J: on /ee type system (binmode) > > Remember drive I: is a network drive mounted from \\server\D$ > which contains the cygwin installation. The next step is to > create a file to be used by regedit to install the mount > registry entries. The following is the actual file used to > create the desired client mounts: > > REGEDIT4 > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\00] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\01] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\02] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\03] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\04] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\05] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\06] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\07] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\08] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\09] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0A] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0B] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0C] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0D] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0E] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\0F] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\10] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\11] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\12] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\13] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\14] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\15] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\16] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\17] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\18] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\19] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\1A] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\1B] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\1C] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL > setup\b15.0\mounts\1D] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2] > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/] "native"="D:/cygwin" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/usr/bin] "native"="D:/cygwin/bin" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/usr/lib] "native"="D:/cygwin/lib" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/c] "native"="C:" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/cc] "native"="H:" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/dd] "native"="I:" "flags"=dword:0000000a > > [HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts > v2\/ee] "native"="J:" "flags"=dword:0000000a > > Note: The entries beginning with "[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus > Solutions\CYGWIN.DLL setup]" are probably not needed as I > think they are a carry over of the B20 release of cygwin. > > With the above file, you install the registry entries in a > MS-DOS Prompt windows entering "regedit {file}". Before you > do this, cygwin1.dll MUST be UNLOADED. If you are doing this > for the first time, chances are that cygwin1.dll is not loaded. > > The next step is to create a copy of the cygwin.bat file > tailored for client machines. I typically call this file > "cygwin_remote.bat". It is essentially a copy of cygwin.bat > with the drive letters representing the cygwin installation > changed to reflect the mapped drive letters on the client > machine. Below is what my cygwin_remote.bat file looks like: > > @ECHO OFF > SET MAKE_MODE=UNIX > set PATH=I:\cygwin\bin;%PATH% > SET IS_CYGWIN=true > set HISTSIZE=1200 > set HOME=I:/cygwin/home/paul > set ENV=I:/cygwin/home/paul/.bash_login > set CYGWIN=tty > ksh > > You should tailor your cygwin_remote.bat file after your copy > of the cygwin.bat file. Mine is specific for using ksh as my > login shell. You get the idea. > > The last step is to install a shortcut on your client to > envoke the cygwin_remote.bat file you just created on the > server. The shortcut should execute the following command: > > C:\WINDOWS\COMMAND.COM /e:4096 /c I:\cygwin\cygwin_remote.bat > > Assumming that you have done the above properly, > double-clicking the short cut will start up cygwin on your > client machine using the copy that is installed on your > server machine. The true advantage of this arrangement is > that you only have ONE copy of cygwin to keep up to date. > For this to be totally successful, you should not reference > drive letters in your .profiles since the drive letters will > be system dependant. > > I'll admit that the initial bootstrapping process is tedious > but the payoff is big afterwards. > > As a side note.... > A couple years ago, I created a runable cygwin B20 CD that > all you do is to insert the CD and it fires up your shell, > performs the required mounts, and then ready for input. You > have a completely portable CYGWIN on CD that you can take to > other PCs that don't have cygwin installed and have access to > cygwin commands. I called it "CYGWIN on a Platter". > True is runs slower off of the CD but it's far better to deal > with slow cygwin commands rather than DOS commands! YUK! > > In a few months, I will be repeating my development of CYGWIN > on a Platter using a more current release of cygwin (probably > cygwin DLL 1.3.6). It will be based upon ksh and not bash. > I hope to make it available in a CD image format. > > -paul mcferrin > > > -- > NOTE*** This email looks it came from MailHole AT insight DOT rr DOT com but in > reality it came from pmcferrin AT insight DOT rr DOT com. If you send > a reply to this message, it *should* get delivered to the > correct place. > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/