Сетевая файловая система NFS, которая является нативным способом обеспечить общий доступ к файлам по сети в мире Linux, долгое время имела напряженные отношения с Windows. Однако последние изменения позволили Windows перейти от соперничества к сотрудничеству с открытым ПО. С появлением Windows 10 1607 (14393) был внедрен стандартный NFS-клиент, который позволяет без проблем подключаться и использовать ресурсы NFS. В этой статье мы рассмотрим, как установить и использовать этот клиент, а также расскажем о его характеристиках.
Для установки клиента NFS необходимо открыть раздел "Программы и компоненты" и перейти по ссылке "Включение или отключение компонентов Windows". Далее следует найти раздел "Службы для NFS" и включить его содержимое.
Также можно быстро выполнить установку с помощью PowerShell. Для этого необходимо запустить терминал с повышенными правами и выполнить следующую команду:
Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart.
Графических инструментов для подключения NFS-ресурсов нет, потому необходимо использовать командную строку. Для этого нужно запустить терминал без повышения прав. Для монтирования NFS-ресурса используется команда mount с опцией -o anon, которая означает подключение анонимным пользователем. Затем указывается сетевой путь к ресурсу, причем путь начинается от корня файловой системы, а не от корня NFS. Наконец, указывается буква диска, на которую будет примонтирован ресурс. Адрес NFS-сервера в данном случае равен 192.168.233.184.
Если все выполнено правильно, то в проводнике появится новый сетевой диск с указанной буквой.
Для отключения ресурса используется команда umount, а для автоматического подключения при загрузке компьютера можно воспользоваться PowerShell. Для этого используется команда New-PSdrive, где указывается буква диска, путь к ресурсу и опция -Persist, которая указывает на постоянное подключение ресурса. Для отключения ресурса в PowerShell используется команда Remove-PSdrive.
Чтобы просмотреть список всех смонтированных NFS-ресурсов, можно использовать команду mount.
Если мы подключаемся анонимно, Windows использует UID/GID = -2. Если на NFS-сервере используется all_squash, то это не имеет особого значения. В противном случае, можно указать другие идентификаторы, изменяя значения параметров AnonymousUid и AnonymousGid в системном реестре, ветка HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default. После внесения изменений нужно перезагрузить компьютер.
Начиная с самого безопасного аспекта, регистр имени файла может вызвать проблемы в операционной системе Linux, так как она чувствительна к регистру. Например, файлы TEST.txt и test.txt будут считаться разными файлами. Если вы работаете с этими файлами в пределах NFS-ресурса, то не возникнет проблем, вы можете даже одновременно открыть оба файла, внести изменения и сохранить их. Это возможно потому, что NFS - это сетевая файловая система, а не протокол удаленного доступа.
Однако возникнут проблемы, если вы захотите скопировать эти файлы на свою систему. Неопытный пользователь может ненароком перезаписать важный локальный файл.
Однако следующая проблема намного серьезнее и в настоящее время не имеет приемлемого решения. Современные системы Linux работают с кодировкой UTF-8, в то время как Windows все еще использует региональные кодовые страницы, такие как CP-1251 для русского языка. Это приводит к тому, что имена файлов, содержащие символы национальных алфавитов, отображаются "крякозябрами". При этом сами файлы доступны и могут быть изменены.
Если мы, используя Windows, поместим файл с именем, содержащим символы национальных алфавитов, на NFS-ресурс, то в системе Linux мы увидим квадратики.
В качестве решения можно попробовать включить поддержку UTF-8 в Windows, но это пока находится в бета-версии. Эта опция доступна в разделе языковых настроек панели управления.
Однако это решение может вызвать больше проблем, чем оно решает. Многие современные программы не знают о кодировке UTF-8 и не могут с ней работать, что может привести к появлению квадратиков в самых неожиданных местах вашей системы.
Поэтому при использовании NFS-клиента для Windows необходимо хорошо понимать все плюсы, минусы и возможные проблемы. В целом поддержка NFS в Windows - это хорошо, так как упрощает поддержку гетерогенных сред.