2010-10-11 14:59:26 -04:00
< !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 >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< li > Open the WinDDK 'x64 Checked Build Environment' for the target platform.< / li >
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< 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:
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< / ul >
< h3 > Instructions< / h3 >
< ol >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< 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 >
2010-10-13 16:22:37 -04:00
< 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 >
2010-10-11 14:59:26 -04:00
< / ul >
< / div >
< / div >
< / body >
< / html >