If you want to share data across operating systems, you can mount a General-purpose Network File System (NFS) file system on a Windows Elastic Compute Service (ECS) instance. This way, you can upload data to and download data from the NFS file system. This topic describes how to mount an NFS file system on an ECS instance that resides in a virtual private cloud (VPC). In this example, Windows Server 2012 R2 is used.

Prerequisites

Note You cannot mount an Extreme NFS file system on Windows.

Step 1: Install an NFS client

  1. Connect to the ECS instance. For more information, see Connection methods.
  2. Start Server Manager.
  3. Choose Manage > Add Roles and Features.
  4. Follow the Add Roles and Features Wizard to install the NFS client.
    1. In the Server Roles step, choose File and Storage Services > File and iSCSI Services and select Server for NFS.
    2. In the Features step, select Client for NFS.
  5. Restart the ECS instance.
  6. Open a Command Prompt window and run the mount command.

    The following command output indicates that the NFS client is installed.

    Installation result

Step 2: Mount an NFS file system

You can manually mount a file system or enable automatic mounting for the file system. When you restart the ECS instance on which a file system is mounted, the mount information of the file system may be lost. To prevent this issue, you can manually mount a General-purpose NFS file system and then enable automatic mounting for the file system.

Manually mount the NFS file system

  1. On a Windows client, run the following command to mount the NFS file system:
    mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    You must replace the drive letter Z: and the domain name file-system-id.region.nas.aliyuncs.com with the actual drive letter and domain name. For more information, see View the endpoint of a mount target.

    Note If you mount a subdirectory of a NAS file system, the mount may fail. We recommend that you do not mount a subdirectory of a NAS file system. For more information, see How do I resolve the invalid device error that is returned when I try to rename a file on the Windows NFS client?
  2. Run the mount command to check the mount result.

    If the command output is similar to the following information and contains mount = hard, locking = no, and timeout = <a value that is greater than or equal to 10>, the NFS file system is mounted. Otherwise, the NFS file system fails to be mounted.

    To resolve a mount failure, run the net use <Drive letter> /delete command to unmount the file system and then mount the file system again based on the mount command provided in Step 1.

    Check the UID and GID
  3. Double-click the This PC icon to view the shared file system.

    Create files and folders in the shared file system to check whether you can manage the shared file system.

    Mount results

Automatically mount the NFS file system

  1. Go to the C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp directory, create a script file named nas_auto.bat, and then enter the following content in the file.
    Example:
    mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    You must replace the drive letter Z: and the domain name file-system-id.region.nas.aliyuncs.com with the actual drive letter and domain name. For more information, see Mount parameters.

  2. Create a scheduled task.
    1. Open the Control Panel and click System and Security. In the Administrative Tools section, click Schedule tasks.
    2. In the Task Scheduler window, choose Actions > Create Task.
      Create a task
    3. On the General tab, enter the name of the task and select Run whether user is logged on or not and Run with the highest privileges.
      Important If you use Windows Server 2016, you must select Run only when user is logged on. Otherwise, the configurations of automatic mounting for an NFS file system do not take effect.
      General tab
    4. Click the Triggers tab. Click New Trigger. Select At log on from the Begin the task drop-down list. In the Advanced settings section, select Enabled. Click OK.
      Triggers tab
    5. Click the Actions tab. Click New Action. Select Start a program from the Action drop-down list and then specify the nas_auto.bat file that you created in Step 1 in the Program/script field. Click OK.
      New Trigger dialog box
    6. Click the Conditions tab. In the Network section, select Start only if the following network connection is available. Select Any connection from the drop-down list.
      Conditions tab
    7. Click the Settings tab. Select If the running task does not end when requested, force it to stop. Select Do not start a new instance from the drop-down list under If the task is already running, then the following rule applies.
      Settings tab
    8. Click OK.
    9. Restart the ECS instance to check whether the scheduled task is created.
      • View the status of the scheduled task.
        If an output that is similar to the following example appears, the scheduled task is created. Creation result
      • Run the mount command to check the mount result.

        If the command output is similar to the following information and contains mount = hard, locking = no, and timeout = <a value that is greater than or equal to 10>, the NFS file system is mounted. Otherwise, the NFS file system fails to be mounted.

        To resolve a mount failure, open the nas_auto.bat script file and replace the existing script based on the content provided in 1.

        Check the UID and GID

FAQ

How can I resolve the file handle error when I mount a file system?

  • Cause

    The Locking registry may not exist on the system, or the Locking registry exists but the value of Locking is not 1.

  • Solution
    1. Open the Command Prompt, run the regedit command to open the Registry Editor window.
    2. Choose HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > ClientForNFS > CurrentVersion > Users > Default > Mount, right-click a blank area, and then choose New > DWORD (32-bit) Value.
    3. Change the registry name to Locking and double-click Locking. In the Edit DWORD (32-bit) Value window, change the numeric value to 1.
    4. Click OK. Locking
    5. Restart the ECS instance.
    6. Run the following command to remount the NFS file system:
      mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

      You must replace the drive letter Z: and the domain name file-system-id.region.nas.aliyuncs.com with the actual drive letter and domain name.

    7. Run the mount command to check whether the mount is successful.

      If the command output is similar to the following information and contains mount = hard, locking = no, and timeout = <a value that is greater than or equal to 10>, the NFS file system is mounted. Otherwise, the NFS file system fails to be mounted.

      Check the UID and GID

What can I do if I do not have the permissions to access a file system?

You can perform the following steps to configure the AnonymousGID and AnonymousUID registry keys:

  1. Log on to the ECS instance on which the file system is mounted.
  2. Open the Command Prompt, run the regedit command to open the Registry Editor window.
  3. Choose HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > ClientForNFS > CurrentVersion > Default.
  4. Right-click a blank area, choose New > DWORD (32-bit) Value, and then create the following registry keys:
    • AnonymousGID: Set the value of the key to 0.
    • AnonymousUID: Set the value of the key to 0. Default path
  5. Restart the ECS instance.
  6. Run the following command to remount the NFS file system:
    mount -o nolock -o mtype=hard -o timeout=60 \\file-system-id.region.nas.aliyuncs.com\! Z:

    You must replace the drive letter Z: and the domain name file-system-id.region.nas.aliyuncs.com with the actual drive letter and domain name.

  7. Run the mount command to check whether the mount is successful.

    If the command output is similar to the following information and contains mount = hard, locking = no, and timeout = <a value that is greater than or equal to 10>, the NFS file system is mounted. Otherwise, the NFS file system fails to be mounted.

    Check the UID and GID

References