Windows Vista and Older NFS Servers

Windows Vista and Older NFS Servers

Sometime back I came across a problem where the Windows Vista client was not able to mount a NFS version 2 share from a SCO NFS server. At first, it looked like the Vista is using high ports while the server is probably expecting the client to use privileged ports that wasn't the case since Vista (and, the NFS client in Longhorn), by default, uses low ports.

The showmount command from this same client succeeds but not the mount command. Both the mount and the NET USE commands return Network/System Error 53 which means the network path was not found.

The network trace analysis showed that the SCO NFS server only supported the MOUNT protocol version 1. The problem was that when the showmount command was run - it starts with MOUNT version 3 and keeps lowering the version till it get a proper reply from the server. This doesn't happen when the mount command is run. Seems the client assumes the server supports MOUNT version 3 ans doesn't lower the version if the server informs that the said version of MOUNT protocol is not available.

To rectify this, we need to tell the client to not use NFS version 3 by creating a DWORD value called DisableV3 and setting it to 1 under the following registry key -

HKLM\Software\Microsoft\ClientForNfs\CurrentVersion\Default

Now run the following commands to restart the NFS client on the Vista system -

NFSADMIN CLIENT STOP

NFSADMIN CLIENT START

Use the NFS snap-in otherwise. Please avoid using the Services snap-in since it doesn't handle the NFS services properly in Vista and Windows Server 2008.

Any further mounts on this machine will use MOUNT version 1 and NFS version 2. That would be a problem if you have more servers that support NFS version 3 because this client would still use NFS version 2 to connect to them.