Windows NFS 4.1 Client Instructions

1. Building from Source

Requirements

Building the rpc library and nfs client daemon

  1. Open Windows Explorer and navigate to ms-nfs41-client\build.vc10.
  2. Make a copy of env.props.example, and rename it to env.props.
  3. 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.
  4. Open the solution file ms-nfs41-client.sln in Visual Studio 2010.
  5. Select the desired configuration and platform (accessible via Build->Configuration Manager).
  6. Right-click on the daemon project and select Build. The project and its dependencies should build without errors. The resulting binaries, nfsd.exe and libtirpc.dll, can be found under ms-nfs41-client\build.vc10\x64\Debug\.

Building the driver and utilities

  1. From the Start menu, open the WinDDK 'Checked Build Environment' for the target platform.
  2. Change directory to ms-nfs41-client and type build. All projects should build without errors.

Signing the driver

  1. Open a WinDDK 'Checked Build Environment' as Administrator in this directory (right click and 'Run as administrator').
  2. Create a certificate for test-signing the driver (Creating Test Certificates):
    > makecert /pe /ss PrivateCertStore /n CN=nfs41_driver nfs41_driver.cer
  3. Use the certificate to sign nfs41_driver.sys (Test-Signing a Driver File):
    > signtool sign /v /s PrivateCertStore /n nfs41_driver /t http://timestamp.verisign.com/scripts/timestamp.dll path\to\nfs41_driver.sys

2. Installing Binaries

Requirements

Instructions

  1. Copy or extract all ms-nfs41-client binaries and configuration files into a directory that's convenient for testing.
  2. Run vcredist_x*.exe to install the Visual C++ Redistributable Libraries.
  3. Double-click on nfs41_driver.cer and select 'Install Certificate', then place it in the 'Trusted Root Certificate Authorities' store.
  4. Open a command prompt as Administrator in this directory.
  5. Install the driver and update the registry:
    > install.bat
  6. Copy configuration files:
    > mkdir C:\etc
    > copy etc_netconfig C:\etc\netconfig
    > copy ms-nfs41-idmap.conf C:\etc\
  7. Allow windows to load test-signed drivers:
    > bcdedit /set testsigning on
  8. Reboot.

3. Disable the DFS Client

Instructions

  1. Open regedit.exe and navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Mup.
  2. Add a DWORD value named DisableDfs with a value of 1.

4. Ldap Configuration

Requirements:

Instructions

  1. Open C:\etc\ms-nfs41-idmap.conf in a text editor.
  2. Uncomment the ldap_hostname and ldap_base lines, and configure as appropriate to match your ldap server configuration (we'll add suggestions later).

5. Starting the Client

Instructions

  1. From a Windows command prompt, run nfsd.exe to start the nfs client daemon. Leave this running in the background until all mapped drives are unmounted.
    Usage:
    > nfsd.exe -d <debug level> [--noldap]
    • <debug level> determines the log verbosity (1, 2, 3 or 0 to disable)
    • --noldap disables id mapping and uses a default uid=666 and gid=777
    • --uid, --gid changes the default uid/gid when no mapping is available (must be nonzero)

6. Mounting

Instructions

  1. From a Windows command prompt run nfs_mount.exe to mount a share:
    > nfs_mount.exe Z: <server_name>:\
  2. To specify the security flavor, add the 'sec=' mount option with sys, krb5, krb5i, or krb5p:
    > nfs_mount.exe -o sec=<flavor> Z: <server_name>:\
  3. You can later unmount with:
    > nfs_mount.exe -d Z

7. Connectathon

Requirements

Instructions

  1. Extract nfstests.zip into a directory that's convenient for testing (i.e. cthon04).
  2. Open a Cygwin shell, and change directory to cthon04.
  3. Create a git repository to track changes:
    > git init
    > git add *
    > git commit -m "files from nfstests.zip"
  4. Apply all cthon patches:
    > git am /path/to/ms-nfs41-client/tests/*.patch
  5. Build the tests:
    > make
  6. Run the test suite on a mounted directory:
    > ./runtests -a -t z:/testdir

8. Known Issues

Please direct any questions to ms-nfs41-client-devel@lists.sourceforge.net.