Windows NFS 4.1 Client Instructions
Requirements
- Windows Vista x64, Windows Server 2008 R2 x64, or Windows 7 x64. (Windows XP and previous versions are not supported. 32-bit builds have not been tested.)
- Windows Driver Development Kit (WinDDK 6000 or later)
- Microsoft Visual Studio 2010
- ms-nfs41-client source code:
> git clone git://citi.umich.edu/projects/ms-nfs41-client.git
Building the userspace daemon
- WinDDK does not include the ldap library, so we build the nfs client daemon with Microsoft Visual Studio 2010.
- Open Windows Explorer and navigate to ms-nfs41-client\build.vc10.
- Make a copy of env.props.example, and rename it to env.props.
- Open env.props in a text editor, and verify that the value in
<WDKPATH>C:\WinDDK\7600.16385.0</WDKPATH> points to your WinDDK installation.
- Open the solution file ms-nfs41-client.sln in Visual Studio 2010.
- Select the x64 platform and desired configuration (Debug or Release).
- Right-click on the daemon project and select Build. The project and its dependencies should build without errors. Binaries can be found under build.vc10\x64\(Configuration)\.
Building the driver
- From the Start menu, open the WinDDK 'x64 Checked Build Environment' for the target platform.
- Change directory to ms-nfs41-client and type
build. The project should build without errors.
Requirements
- ms-nfs41-client binaries: nfs41_driver.sys, nfs41_np.dll, libtirpc.dll, nfs_install.exe, nfsd.exe, nfs_mount.exe
- ms-nfs41-client configuration files: nfs41rdr.inf, install.bat, uninstall.bat, etc_netconfig
Instructions
- Copy or extract all ms-nfs41-client binaries and configuration files into a directory that's convenient for testing.
- Open a WinDDK 'x64 Checked Build Environment' as Administrator in this directory (right click and 'Run as administrator').
- Create a certificate for test-signing the driver (Creating Test Certificates):
> makecert /pe /ss PrivateCertStore /n CN=nfs41_test nfs41_test.cer
- Use the certificate to sign nfs41_driver.sys (Test-Signing a Driver File):
> signtool sign /v /s PrivateCertStore /n nfs41_test /t http://timestamp.verisign.com/scripts/timestamp.dll nfs41_driver.sys
- Install the certificate to the 'Trusted Root Certificate Authorities' store:
> certmgr /add /c nfs41_test.cer /s /r localMachine root
- Install the driver and update the registry:
> install.bat
- Copy the libtirpc configuration:
> mkdir C:\etc
> copy etc_netconfig C:\etc\netconfig
- Allow windows to load test-signed drivers:
> bcdedit /set testsigning on
- Reboot.
Instructions
- From a Windows command prompt, run nfsd.exe.
- Open a new Windows command prompt and run nfs_mount.exe to mount a share:
> nfs_mount.exe Z: nfs.citi.umich.edu:\
- You can later unmount with:
> nfs_mount.exe -d Z
Requirements
- Cygwin, including packages gcc-core, make, time, tirpc, git
- Connectathon Test Suite
- ms-nfs41-client source code (patches for connectathon are located in ms-nfs41-client\tests)
Instructions
- Extract nfstests.zip into a directory that's convenient for testing (i.e. cthon04).
- Open a Cygwin shell, and change directory to cthon04.
- Create a git repository to track changes:
> git init
> git add *
> git commit -m "files from nfstests.zip"
- Apply all cthon patches:
> git am /path/to/ms-nfs41-client/tests/*.patch
- Build the tests:
> make
- Run the test suite on a mounted directory:
> ./runtests -a -t z:/testdir
- AUTH_SYS is not fully implemented, and uses a fake uid=666 and gid=777. Keep this in mind when setting up exports.
- When nfs_mount.exe is run without arguments, it does not properly list mounted drives.
- If nfsd.exe is restarted while a drive is mapped, that drive needs to be remounted before further use.
- Symbolic links are not supported in Cygwin. Connectathon's basic test8 and special test nfsidem have been commented out.
- Does not properly handle renaming a file on top of an existing open file- the existing file is removed on rename, and not preserved until last close. Connectathon's special test op_ren has been commented out.