探索NFS在MS-DOS和Windows间文件共享

在Windows 7机器上,设置几乎占用了100KB的传统内存,这使得在共享驱动器使用时无法运行许多其他程序。因此,决定利用一些空闲时间来探索如何使用NFS(网络文件系统),这是最初的Unix文件共享协议,以在MS-DOS和Windows之间共享文件,希望它将使用更少的传统内存并允许运行更大的程序。

第一个任务是为MS-DOS找到一个NFS工具。经过一番研究后,使用了XFS191,这是一个轻量级客户端,最后一次开发是在1994年。由于该软件是用Turbo Pascal 6.0编写的,因此需要修补可执行文件,以避免在现代机器上运行时出现运行时错误200(除以零)。对于目的,只需要修补xfstool.exexfskrnl.exe。修补后的可执行文件以及hostsinit文件,以及一个批处理文件xfs.bat来启动客户端,可以在这里下载。

接下来,需要找到一个NFS服务器,它将与古董NFS客户端一起工作。尽管现代Linux发行版仍然支持NFS进行文件共享,但NFS多年来已经升级,因此需要找到一个仍然使用NFS v1的轻量级服务器,这是已知可以与XFS191一起工作的。经过大量研究,偶然发现了Petebarber的NFS服务器,它只是一个小型Windows可执行文件(从这里下载)。只需运行它,当前的硬盘驱动器就可以通过NFS访问:为了简单起见,关闭新启动的NFS服务器上的防火墙,以避免任何潜在问题。

接下来,需要修改XFS191配置。假设已经为网卡安装了数据包驱动程序,可以开始修改hosts文件,以指定本地机器的IP地址以及NFS服务器的IP地址:

# XFS Version 1.71 # hosts # # Note: Please keep this file in LF/CR (DOS) format! # 192.168.1.1 gateway 192.168.1.255 broadcast 255.255.255.0 netmask 192.168.1.41 md386 192.168.1.157 share

前三行指定了网络设置,后面是本地机器和NFS服务器的IP地址。请注意,可以添加多个服务器条目。之后,修改init文件以初始化网络配置以及要挂载的共享文件夹:

# XFS Version 1.8 # Command Script # # see `Xfstool help ' for more # # init md386 sm=255.255.255.0 gw=192.168.1.1 csum=off # authentication pcnfsd share #login mount z: share:c:\tools\dos show # per-drive re-authentication # dlogin f: # dlogin all

init md386行指示NFS客户端应该以md386作为本地主机名启动。mount z: share:c:\tools\dos告诉XFS191将Z:映射到NFS服务器上的c:\tools\dos文件夹。LASTDRIVE=Z语句可能需要添加到CONFIG.SYS中才能工作。

编辑XFS.BAT并确保数据包驱动程序的地址(0x60)是正确的:

@echo off rem XFS Version 1.71 loadhigh xfskrnl 0x60 xfstool @init

之后,通过运行XFS.BAT启动NFS客户端。应该收到消息,指示驱动器Z:已成功挂载:

在某些机器上,还可能出现虚假警告,指示缺少数据包驱动程序,即使已经安装了数据包驱动程序。只要挂载的驱动器可以访问,可以忽略这些消息。

现在访问共享文件夹变得轻而易举:

共享驱动器的卷标将与mount命令中指定的值相同。可用磁盘空间很可能是377,487,360字节,因为NFS v1(和MS-DOS 6.22)并非为今天的大硬盘设计的。在访问共享驱动器时,屏幕右上角将显示一个闪烁的“<”字符。

在测试中,XFS191比Microsoft Network Client消耗的传统内存要少得多,这使能够运行许多大型程序。一个小问题是从NFS共享驱动器复制的文件将始终具有只读属性,必须通过attrib命令清除。这也发生在通过MSCDEX挂载的CD-ROM驱动器上复制的文件上,但不会发生在Microsoft Network Client共享驱动器上。此外,在对大型目录执行目录列表时,列表有时会暂停几秒钟,因为正在交换数据,这也不会出现在Microsoft Network Client上。尽管有这些小不便,应该没有任何问题读取或写入共享驱动器,并且有良好的网络连接,共享驱动器就像本地驱动器一样好。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485