Windows文件映射到异种操作系统

发表于:2007-07-01来源:作者:点击数: 标签:
许多局域网都是由大型主机和微机组成的。一般客户端微机采用 Windows操作系统 进行数据采集,主机系统则运行 UNIX 操作系统,完成数据处理。这样就不可避免地会遇到异种操作系统间的数据通信问题。 在这种环境中要实现数据共享,最方便的措施是采取硬盘映射
   许多局域网都是由大型主机和微机组成的。一般客户端微机采用Windows操作系统进行数据采集,主机系统则运行UNIX操作系统,完成数据处理。这样就不可避免地会遇到异种操作系统间的数据通信问题。

   在这种环境中要实现数据共享,最方便的措施是采取硬盘映射技术,这在UNIX中可通过NFS来实现。遗憾的是,微软的各系列操作系统均不支持该协议。下面谈一谈如何使Windows操作系统成为NFS Server,从而使UNIX主机能够直接mount其硬盘和目录。

   运行在Windows系统下的第三方NFS软件并不少,但大多需要另外购买。这里向大家推荐一免费软件——TrueGrid NFS Server。

   TrueGrid NFS Server可使Windows 95/98/NT为操作系统的机器成为NFS服务器,通过硬盘映射方式实现异种操作系统之间的数据共享,从而达到数据通信对应用程序透明的目的,减轻编程强度,提高系统可靠性(见图1)。该软件的地址是http://www.truegrid.com/nfs.html。把下载的文件用WinZip等软件解压缩,存入一新建的目录,比如c:\nfs,就可进行安装了。这个软件大小还不到450KB,含十几个文件,其中与安装和配置有关的文件有Exports、rpc、Portmap、nfs等。

   图1 NFS工作原理

   现在可以安装软件了。安装之前,你必须确定你的Windows系统已经安装好TCP/IP协议,并能正常工作。

   本文中凡涉及到UNIX和Windows NT的操作,均须以系统管理员的账号登录。

   第一步,打开一个MS-DOS窗口,并把该软件所在目录设置为当前目录,命令为:cd c:\nfs

   第二步,在Windows所在目录(Windows 95/98一般是C:\Windows,Windows NT则为C:\Winnt)中创建一个名为etc的子目录,并把软件提供的Exports文件和rpc文件复制到这个目录中。具体命令为:

    mkdir %WINDIR%\ETC

    copy exports %WINDIR%\ETC\exports

    copy RPC %WINDIR%\ETC\RPC

   第三步,如果未指定DNS,则修改(或创建)Hosts文件。为使WinSock能够转换机器名和IP地址,Windows操作系统必须有名为Hosts的文件。该文件是文本文件,每一行的格式如下:

   IP地址    机器名

   一般第一行总是:

   127.0.0.1   localhost

   第二行则指明本机的IP地址和机器名,比如笔者的机器为:

   129.0.0.65   wwj

   其它各行则应包括本机所在局域网内各主机节点的IP地址和机器名,至少应包括将来拟共享本PC机文件系统的那些机器的IP地址和机器名。

   对于Windows 95/98,本文件应存放在操作系统所在目录(文件全名一般是C:\Windows\Hosts);对于Windows NT,则在操作系统所在目录下的System32\Drivers\ETC子目录中(文件全名一般是C:\Winnt\System32\

   Drivers\etc\Hosts)。值得一提的是,一般Windows 95/98提供一个例子文件,名为Hosts.sam,而Windows NT则原本就存有这个文件。

   这一步完成后,可以用TrueGrid NFS Server提供的finfhost命令来验证。比如命令:findhost wwj或findhost 192.0.0.65

   若能得到类似下面的响应:

   Official Name:wwj

   Address:192.0.0.65

   就表明相应的机器名及其IP地址已经正确设置完毕。

   第四步,修改相应UNIX主机的Hosts文件。UNIX主机的Hosts文件格式与上述相同,存放在root的etc目录中,换言之,它的全名是/etc/hosts。

   准备共享PC文件系统的UNIX主机的Hosts文件中,都需包含该PC的IP地址和其机器名。比如:

   129.0.0.65   wwj

   129.0.0.66   sgi-o2

   第五步,启动TrueGrid NFS Server。回到第一步所打开的MS-DOS窗口中,如果是Windows 95/98系统,使用下列命令启动TrueGrid NFS Server(见图2):

   portmap

   nfs

   若使用Windows NT,则用下列命令启动:

   PORTMAP add

   NFS add

   NFS start

   请注意add和start要用小写。

   图2 在Windows 95/98上运行时的任务列表

   然后可以用该软件的rpcinfo -p和showmount -e命令验证程序是否已经启动,正常情况下两个命令的提示分别类似于:

   program vers proto port

   100000 2 tcp 111 portmapper

   100000 2 udp 111 portmapper

   100005 1 udp 790 mountd

   100005 1 tcp 793 mountd

   100003 2 udp 2049 nfs

   和/c (everyone)

   第六步,测试。以root登录到相应的UNIX主机,临时在根目录上建立一目录,如/pcdir,然后以mount命令把PC的C盘mount到/pcdir,命令如下:

   mount wwj:/c /pcdir

   随后进入/pcdir目录,就可以对PC机C盘的所有目录和文件直接进行读、写或复制、删除等操作了,与对本地目录操作完全相同。

   测试完毕,可用umount命令停止共享,并把测试用目录/pcdir删除。PC机端则可以停止NFS Server的运行:对Windows 95/98而言,可用任务管理器关闭nfs;对Windows NT则可用nfs stop命令来停止NFS Server。

   如何使软件自动启动呢?对于PC机端,如果运行Windows 95/98,则可把portmap.exe和nfs.exe先后加入“启动”程序组,注意顺序;若运行Windows NT,只要上述安装步骤是成功的就可以了。对于UNIX主机端,则在/etc/fstab中增加相应的控制语句即可。

   对于日常维护和配置,我们介绍etc下的Exports文件:控制PC机的目录共享的有关参数文件。

   Exports是一个文本文件,每一行对应输出一个本机的目录,供其它系统mount。各行格式:共享名 -选项

   例如,TrueGrid NFS Server提供的缺省参数是:

   /c -path=c:\

   /d -path=d:\

   表示该PC机的C:\和D:\目录可被任何机器mount,其muont名分别是/c和/d。

   选项有多种,现介绍下面几种:

   aclearcase/" target="_blank" >ccess=host:host... 仅允许这些主机mount本行指定的目录;

   path=path_name 指定输出的目录,使用绝对路径;

   ro=host:host... 输出的目录对所列主机是只读的;

   uid=n 指定输出目录的各文件的uid;

   gid=n 指定输出目录的各文件的gid;

   umask=m 指定输出目录的各文件的umask;

   dmask=m 指定输出目录的各文件的dmask;

   lc 输出的目录和文件均映射为小写;

   uc 输出的目录和文件均映射为大写。

   其它选项请参考软件提供的文档。

   请注意该文件的语法:选项之间以逗号分开,但第一个选项前要加减号即:-。

   比如我想把C:\jingzhi共享为文件系统jz,且该目录下的文件映射到UNIX下的访问权限置为rwxr-xr-x,可把如下一行加入etc中的Exports文件:/jz -umask=022,lc,path=c:\jingzhi

   TrueGrid NFS Server可使Windows 95/98/NT操作系统的文件系统输出给所有支持NFS的UNIX操作系统。笔者在Windows 95/98/NT和新型SGI O2工作站及一台非主流小型机(1992年购置)上做试验,均取得良好效果。

原文转自:http://www.ltesting.net