Монтируем NFS шару в Windows через PowerShell

Далеко не все админы знают, что смонтировать NFS-ресурс в Windows так же просто как и в Linux. В этой заметке разберём пошагово, как включить поддержку NFS в Windows и как примонтировать такой ресурс с помощью PowerShell.

Что потребуется

Перед тем как начать, убедитесь, что всё из списка ниже у вас есть:

  • У вас есть доступ к NFS-серверу (например, это может быть Linux-машина или NAS), и на нём уже расшарена каталог.
  • Вы знаете IP-адрес или DNS-имя этого NFS-сервера.
  • У вас есть права локального администратора на клиентской машине с Windows.

Устанавливаем NFS-клиент в Windows

Через графический интерфейс

Если хотите поставить NFS-клиент через GUI, делайте следующее:

  1. Нажмите Win + R, введите optionalfeatures и нажмите Enter.
  2. В открывшемся окне с компонентами Windows найдите пункт Services for NFS (если у вас Windows Server - будет называться Client for NFS).
  3. Отметьте галочкой этот пункт и нажмите OK.
  4. После установки, возможно, потребуется перезагрузка.

Через PowerShell

Установить NFS-клиент можно и через PowerShell - это особенно удобно, если не хочется кликать мышкой. Главное - запускать консоль от имени администратора.

Для Windows Server:

Install-WindowsFeature -Name NFS-Client

Для Windows 10/11:

Enable-WindowsOptionalFeature -Online -FeatureName ServicesForNFS-ClientOnly

Монтируем NFS-ресурс в Windows

Когда NFS-клиент установлен, откройте PowerShell с правами администратора.

Вот так можно примонтировать расшаренную папку:

New-PSDrive -Name Z -PSProvider FileSystem -Root "\\192.168.178.25\NFS-Share2" -Persist

А можно и короче - через псевдоним mount:

mount \\192.168.178.25\NFS-Share2 Z:

Делаем монтирование постоянным

По умолчанию монтирование временное - после перезагрузки подключение пропадает. Чтобы это исправить, можно автоматизировать процесс через планировщик заданий.

Вот как это делается:

1.Создайте PowerShell-скрипт с таким содержимым:

New-PSDrive -Name Z -PSProvider FileSystem -Root "\\192.168.178.25\NFS-Share2" -Persist:

2.Откройте Планировщик заданий и создайте новое задание.

3.Триггер — при запуске системы (At system startup).

4.Действие — запуск PowerShell-скрипта.

5.Обязательно выберите опцию «Выполнять с наивысшими правами»

Имейте в виду: в контексте планировщика New-PSDrive -Persist выполняется от имени пользователя, под которым настроено задание.

Настройка прав доступа и версии NFS

В Linux и Unix правая доступа к файлам чаще всего завязаны на UID и GID. В Windows всё иначе - по умолчанию она использует свои учетные данные при подключении к NFS.

Если на сервере жёстко настроены права на основе UID/GID, то просто так подключиться может не получиться. Придётся либо настраивать user mapping, либо подключать машину к Active Directory, чтобы обеспечить нужный доступ.

Альтернативный вариант - подключаться как анонимный пользователь. Но для этого придётся вручную прописать соответствующие параметры в реестре - AnonymousUid и AnonymousGid. Без этого сервер не будет знать, под каким ID пускать клиента.

Отмонтировать NFS-ресурс

Чтобы отключить расшаренную папку, используйте командлет Remove-PSDrive. Достаточно указать букву диска, которую вы использовали при монтировании:

Remove-PSDrive -Name Z

Полезные советы

Пара моментов, на которые стоит обратить внимание при работе с NFS в Windows:

  • Многие NFS-серверы требуют права доступа на основе UID/GID.
  • Windows по умолчанию использует свои учётные данные. Если сервер не принимает такой подход - придётся либо настраивать user mapping, либо использовать интеграцию с Active Directory.
  • Для продакшн-сценариев лучше сразу настраивать user mapping через AD.
  • Не забывайте про настройки файрвола - NFS обычно работает через порт 2049/TCP.
  • Если вам нужно расшарить каталог с Windows через NFS, а не наоборот - посмотрите на утилиту WinNFSd.