A Quick Tutorial to Set Up an NFS Server on Windows

Update (Nov 9, 2011): As noted in the comments below, Windows Services for UNIX Version (SFU) is no longer supported on Windows 7 and 2008. For these versions, try installing Cygwin with the optional nfs-server component. If you're using Windows 2008, you can use the Server for NFS that comes built-in instead - in this case, most of the steps below should apply.

A few days ago, I needed to share a large folder present on a Windows server to access it from my local Ubuntu workstation. I initially used Samba, but my build script refused to recognize paths present in that share.

The solution was to use an NFS share - but this required a special setup on Windows. Even after a lot of searching on Google, I couldn’t easily find a guide that talked about how to get started with an NFS server on Windows quickly. Most articles I came across were only detailing information on NFS security, or some obscure command line options for tweaking NFS options - which shouldn’t be required when all you want is a simple share within your local, protected network.

So, here’s what to need to do if you need an NFS server enabled on Windows quickly, and mount it on your Linux box:

1) Download Windows Services for UNIX from Microsoft’s Download Center. Here’s the direct download link.

2) Run setup.exe from the extracted directory.

Welcome to the Microsoft Windows Services for UNIX Setup Wizard

3) Follow the prompts, until you reach the following screen:

Installation Options

Choose custom installation - since we’d like to only install the NFS server for sharing folders.

4) Choose the following three components to install:
(i) NFS -> Server for NFS
(ii) Authentication tools for NFS -> User Name Mapping
(iii) Authentication tools for NFS -> Server for NFS Authentication

Here’s a pictorial representation of the components you’ll need:

Selecting Components   Selecting Components

5) On the next screen, choose to change the behavior to case-sensitive, to provide full compatibility with UNIX programs

6) On the User Name Mapping screen, choose “Local User Name Mapping Server” and “Password and group files”:

User Name Mapping

7) Now, copy your passwd and group files from your UNIX/Linux distribution onto your Windows machine. For Ubuntu, these are located at /etc/passwd and /etc/group. Provide the paths to these files in the next screen:

User Name Mapping Configuration

8) Continue with the installation prompts until you finish.

Installation...

9) Windows Services for UNIX should now be installed:

Windows -> All Programs

10) Open the Services for UNIX Administration shortcut, and click on User Name Mapping:

User Name Mapping on local computer

11) Click on “Show User Maps” and then click on the buttons for Listing Windows Users and Linux Users:

Creating a map

12) Choose “Administrator” (or the appropriate account you want to map the UNIX user to) in the Windows list, and your username in the Linux list. (In Ubuntu, UIDs for user accounts usually start from 1000)

13) Click “Add” to create a map. If you get the following warning, click “OK” to ignore it.

You have specified a special Windows account.

14) Click Apply at the top right corner.

15) Now, you’re ready to share folders! Just right click any folder you need to share, and share it from the NFS tab. You can click the Permissions button for more options, like allowing write access, which is disallowed by default.

NFS Sharing on Windows.

16) Next, mount the share on your UNIX/Linux machine. I used the following command on Ubuntu:

$ sudo mount <windows-server-ip-address>:/<windows_share_name> <path_to_local_mount_point>

For example:

$ sudo mount 192.168.1.3:/SharedFolder ~/windows_share

If this guide helped you, please let us know in the comments below!



Comments

I use SFU on Windows XP lots for work. We're looking for something else in the future.

Win 7 has an NFS client via SFU built in. Win 7 cannot use SFU to be an NFS server.

If you are using AD in your environment, SFU must be installed on all your AD servers or else NFS serving on your Windows XP systems will have intermittant issues. We've setup local accounts to get around this.

Finally, SFU is deprecated by Microsoft. It's in Windows 2008 server, but might not be in the next version.

I have a Window 2003 fileserver using NFS to serve Unix and it is awful. Most of our users are on Unix and have a constant issue with file permissions being inconsistent.

As soon as I can migrate the data to Unix and Samba I will.

By Tom

Did you consider using the nfs server in cygwin?
By Mark

Good point, Mark. It didn't occur to me at the time, but it surely looks like another useful option!

By Abdullah Chougle

I'm forced to run a windows server, due to my satellite and dvb-t cards that I use in it, but samba is so slow, especially transferring 1tb (fortunately only once every few months). Tried setting up NFS, didnt understand about some stuff before I read this tut...thank you for saving me a couple hours and much frustration!

By Rocco

Everything is clear on the above, But does it work with Windows 7 .?? And also please share the 64bit supported exe file also.

By Muralidhar

Unfortunately, it seems that SFU isn't supported on 64-bit systems. For Windows 7, you'd probably want to go with Cygwin - make sure you install the optional component "nfs-server".

By Abdullah Chougle

I came across your great website while trying to find a solution. While I really appreciate the great work you have done with this site, I have found out that the "Windows Services for UNIX Version" for Windows 7 requires either the Enterprise or the Ultimate version of Windows 7. Home Premium is not supported.
--> http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX
--> http://www.microsoft.com/en-us/download/details.aspx?id=2391 --> scroll down to "Requirements".

In case of another known solution for Windows 7 64 Home Premium users like me is known, I would be grateful if it gets shared here.

By Norzzon

I would like to put the root file system, which has several symbolic links in the target file system. Can this be done using the above method?

By ran

If the symbolic links are relative, I believe that they should work.

By Abdullah Chougle

will this process work for Solaris 10 too ?

By Kapil Relan

Add new comment