在Windows 7机器上,设置几乎占用了100KB的传统内存,这使得在共享驱动器使用时无法运行许多其他程序。因此,决定利用一些空闲时间来探索如何使用NFS(网络文件系统),这是最初的Unix文件共享协议,以在MS-DOS和Windows之间共享文件,希望它将使用更少的传统内存并允许运行更大的程序。
第一个任务是为MS-DOS找到一个NFS工具。经过一番研究后,使用了XFS191,这是一个轻量级客户端,最后一次开发是在1994年。由于该软件是用Turbo Pascal 6.0编写的,因此需要修补可执行文件,以避免在现代机器上运行时出现运行时错误200(除以零)。对于目的,只需要修补xfstool.exe
和xfskrnl.exe
。修补后的可执行文件以及hosts
和init
文件,以及一个批处理文件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上。尽管有这些小不便,应该没有任何问题读取或写入共享驱动器,并且有良好的网络连接,共享驱动器就像本地驱动器一样好。