No description
fixed a few cases of warning 4242: possible loss of data wincrypt.h appears to come with windows.h in later versions of the ddk, but nfs41_client.c fails to compile in WDK 6001 without #include <wincrypt.h> Signed-off-by: Casey Bodley <cbodley@citi.umich.edu> |
||
|---|---|---|
| build.vc9 | ||
| build.vc10 | ||
| daemon | ||
| dll | ||
| install | ||
| libtirpc | ||
| mount | ||
| sys | ||
| tests | ||
| dirs | ||
| install.bat | ||
| nfs41rdr.inf | ||
| README.html | ||
| uninstall.bat | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Windows NFS 4.1 Client Instructions</title>
<link rel="stylesheet" title="CITI Default" href="http://www.citi.umich.edu/format/citi.css" type="text/css"/>
<link rel="icon" href="http://www.citi.umich.edu/images/citilogo-16x16.png" type="image/png"/>
<link rel="shortcut icon" href="http://www.citi.umich.edu/images/citilogo-16x16.png" type="image/png"/>
<style type="text/css">
/*<![CDATA[*/
body { min-width: 600px; background-color: #DDDDFF; font-family: serif; }
#page { padding: 0 12px 0 12px; }
#content { margin: 12px 0 12px 0; padding: 8px; background-color: #FFFFFF; border: 1px solid #88A; }
#index { padding-right: 12px; float: right; background-color: #FFFFFF; border: 1px solid #88A; }
a { color: #0282b4; }
a:hover { color: #0244b4; }
h1 { font-size: 2em; text-align: center; background: none; }
h2 { margin: 24px 0 8px 0; font-variant: small-caps; border-bottom: 1px dashed #88A; }
h3 { margin-left: 8px; }
span.filename { font-weight: bold; }
span.code { font-family: Courier; }
/*]]>*/
</style>
</head>
<body>
<div id="page">
<h1>Windows NFS 4.1 Client Instructions</h1>
<div id="content">
<div id="index">
<ol>
<li><a href="#build">Building</a></li>
<li><a href="#install">Installation</a></li>
<li><a href="#mount">Mounting</a></li>
<li><a href="#cthon">Connectation</a></li>
<li><a href="#issues">Known Issues</a></li>
</ol>
</div>
<h2>1. <a name="build">Building</a></h2>
<h3>Requirements</h3>
<ul>
<li>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.)</li>
<li>ms-nfs41-client source code:
<br/><span class="code">> git clone git://citi.umich.edu/projects/ms-nfs41-client.git</span></li>
<li>Windows Driver Development Kit (WinDDK 6000 or later)</li>
</ul>
<h3>Instructions</h3>
<ol>
<li>Open the WinDDK 'x64 Checked Build Environment' for the target platform.</li>
<li>Change directory to <span class="filename">ms-nfs41-client</span> and type <span class="code">build</span>. The project should build without errors.</li>
</ol>
<h2>2. <a name="install">Installation</a></h2>
<h3>Requirements</h3>
<ul>
<li>ms-nfs41-client binaries: <span class="filename">nfs41_driver.sys</span>, <span class="filename">nfs41_np.dll</span>, <span class="filename">libtirpc.dll</span>, <span class="filename">nfs_install.exe</span>, <span class="filename">nfsd.exe</span>, <span class="filename">nfs_mount.exe</span></li>
<li>ms-nfs41-client configuration files: <span class="filename">nfs41rdr.inf</span>, <span class="filename">install.bat</span>, <span class="filename">uninstall.bat</span>, <span class="filename">etc_netconfig</span></li>
</ul>
<h3>Instructions</h3>
<ol>
<li>Copy or extract all ms-nfs41-client binaries and configuration files into a directory that's convenient for testing.</li>
<li>Open a WinDDK 'x64 Checked Build Environment' as Administrator in this directory (right click and 'Run as administrator').</li>
<li>Create a certificate for test-signing the driver (<a href="http://msdn.microsoft.com/en-us/library/ff540213%28VS.85%29.aspx" title="msdn.microsoft.com">Creating Test Certificates</a>):
<br/><span class="code">> makecert /pe /ss PrivateCertStore /n CN=nfs41_test nfs41_test.cer</span></li>
<li>Use the certificate to sign <span class="filename">nfs41_driver.sys</span> (<a href="http://msdn.microsoft.com/en-us/library/ff553467%28VS.85%29.aspx" title="msdn.microsoft.com">Test-Signing a Driver File</a>):
<br/><span class="code">> signtool sign /v /s PrivateCertStore /n nfs41_test /t http://timestamp.verisign.com/scripts/timestamp.dll nfs41_driver.sys</span></li>
<li>Install the certificate to the 'Trusted Root Certificate Authorities' store:
<br/><span class="code">> certmgr /add /c nfs41_test.cer /s /r localMachine root</span></li>
<li>Install the driver and update the registry:
<br/><span class="code">> install.bat</span></li>
<li>Copy the libtirpc configuration:
<br/><span class="code">> mkdir C:\etc</span>
<br/><span class="code">> copy etc_netconfig C:\etc\netconfig</span></li>
<li>Allow windows to load test-signed drivers:
<br/><span class="code">> bcdedit /set testsigning on</span></li>
<li>Reboot.</li>
</ol>
<h2>3. <a name="mount">Mounting</a></h2>
<h3>Instructions</h3>
<ol>
<li>From a Windows command prompt, run <span class="filename">nfsd.exe</span>.</li>
<li>Open a new Windows command prompt and run <span class="filename">nfs_mount.exe</span> to mount a share:
<br/><span class="code">> nfs_mount.exe Z: nfs.citi.umich.edu:\</span></li>
<li>You can later unmount with:
<br/><span class="code">> nfs_mount.exe -d Z</span></li>
</ol>
<h2>4. <a name="cthon">Connectathon</a></h2>
<h3>Requirements</h3>
<ul>
<li><a href="http://www.cygwin.com" title="www.cygwin.com">Cygwin</a>, including packages gcc-core, make, time, tirpc, git</li>
<li><a href="http://www.connectathon.org/nfstests.html" title="www.connectathon.org">Connectathon Test Suite</a></li>
<li>ms-nfs41-client source code (patches for connectathon are located in <span class="filename">ms-nfs41-client\tests</span>)</li>
</ul>
<h3>Instructions</h3>
<ol>
<li>Extract <span class="filename">nfstests.zip</span> into a directory that's convenient for testing (i.e. <span class="filename">cthon04</span>).</li>
<li>Open a Cygwin shell, and change directory to <span class="filename">cthon04</span>.</li>
<li>Create a git repository to track changes:
<br/><span class="code">> git init</span>
<br/><span class="code">> git add *</span>
<br/><span class="code">> git commit -m "files from nfstests.zip"</span></li>
<li>Apply all cthon patches:
<br/><span class="code">> git am /path/to/ms-nfs41-client/tests/*.patch</span></li>
<li>Build the tests:
<br/><span class="code">> make</span></li>
<li>Run the test suite on a mounted directory:
<br/><span class="code">> ./runtests -a -t z:/testdir</span></li>
</ol>
<h2>5. <a name="issues">Known Issues</a></h2>
<ul>
<li>AUTH_SYS is not fully implemented, and uses a fake uid=666 and gid=777. Keep this in mind when setting up exports.</li>
<li>When nfs_mount.exe is run without arguments, it does not properly list mounted drives.</li>
<li>If nfsd.exe is restarted while a drive is mapped, that drive needs to be remounted before further use.</li>
<li>Symbolic links are not supported in Cygwin. Connectathon's basic test8 and special test nfsidem have been commented out.</li>
<li>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.</li>
</ul>
</div>
</div>
</body>
</html>