kofemann / ms-nfs41-client

NFSv4.1/pNFS client for Windows 7 developed by CITI, UMICH.
GNU Lesser General Public License v3.0
98 stars 35 forks source link

Windows NFS 4.1 Client Instructions

  1. Building from Source
  2. Installing Binaries
  3. Disable the DFS Client
  4. Ldap Configuration
  5. Starting the Client
  6. Mounting
  7. Connectation
  8. Known Issues

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.