Содержание
Windows 10
В Unix-подобных операционных системах подключить каталога NFS (Network File System) довольно просто, однако если вам понадобится использовать NFS шару в Windows, придется выполнить ряд дополнительных действий. В этой статье мы покажем, как в Windows 10 подключить NFS каталог, который находинся на UNIX системе. Все описанные инструкции будут работать в Windows 10 Pro (версия 10.0.14393 и выше).
Содержание:Установка клиента NFS (службы для NFS)</li>Как разрешить запись в NFS каталог анонимному пользователю</li>Как подключить NFS каталог в Windows 10</li></ul>
Установка клиента NFS (службы для NFS)
В первую очередь в Windows 10 нужно установить клиент NFS. Для установки необходимо выполнить следующие шаги:
- Откройте раздел «Programs and Features».
- Щелкните по пункту «Turn Windows features on or off».
- В появившемся списке в разделе Services for NFS включите NFS клиента (Client for NFS), а затем нажмите «ОК».
- После установки нажмите кнопку «Close» и вернитесь на рабочий стол.
Как разрешить запись в NFS каталог анонимному пользователю
По умолчанию при подключении NFS каталога с UNIX системы, анонимному пользователю (anonymous) предоставляются права только на чтение. Чтобы предоставить анонимным пользователям право записи, необходимо изменить значения UID и GID, которые используются для монтирования NFS каталога в Windows. Пример стандартных настроек представлен на рисунке ниже.
Чтобы изменить значение полей UID и GID, нам потребуется внести изменения в реестр Windows.
- Откройте редактор реестра regedit.
- Перейдите в ветку реестра — HKEY_LOCAL_MACHINESOFTWAREMicrosoftClientForNFSCurrentVersionDefault.
- В каталоге «Default» создайте новый параметр типа DWORD (32бит) с именем AnonymousUid и назначьте UID, назначенный на каталог в UNIX, к которому открыт доступ через NFS.
- В ветке Default создайте ещё один параметр DWORD (32-бит) с именем AnonymousGid и назначьте GID, назначенный данному каталогу в UNIX.
- Для того, чтобы изменения вступили в силу вам необходимо перезапустить клиент NFS или перезагрузить компьютер.
Список подключенных NFS каталогов и параметры монтирования можно вывести с помощью команды Mount без параметров.
Результат работы команды mount теперь должен выглядеть следующим образом:
Local Remote Properties-------------------------------------------------------------------------------Z: \10.1.1.211mntvms UID=0, GID=0rsize=1078756, wsize=1078756mount=soft, timeout=1.6retry=1, locking=yesfileaccess=755, lang=ANSIcasesensitive=nosec=sys
Обратите внимание на значение полей UID и GID, которое равно 0. UID=0, GID=0 — означает, что общий ресурс монтируется под пользователем root.
Как подключить NFS каталог в Windows 10
Смонтировать NFS каталог в Windows 10 можно с помощью команды mount. Например, смонтируем NFS каталог и назначим ему букву диска Z:. Предположим, что ваше NAS устройство находится в той же сети, что и ваш компьютер с установленной операционной системы Windows, а IP-адрес устройства — 10.1.1.211. С помощью следующей команды можно смонтировать общий ресурс NFS в /mnt/vms.
Mount –o anon \10.1.1.211mntvms Z:
Z: is now successfully connected to \10.1.1.211mntvmsThe command completed successfully
.
Теперь общий ресурс создан, и мы можем получить доступ к данным. В нашем примере сетевой ресурс (диск) обозначается буквой «Z».
На этом настройка NFS завершена и вы сможете сохранять данные на свое NAS устройство через смонтированный NFS каталог. Обратите внимание, что при в первый раз открытие этого каталога выполняется довольно долго.
Администрируя серверы на базе ОС Linux в среде, где в качестве основной клиентской ОС используется Windows, время от времени приходится сталкиваться с необходимостью что-либо скопировать с клиентской Windows на Linux-систему или наоборот, с Linux-системы на Windows. Чаще всего для этого используются возможности протоколов SSH/SCP с помощью таких инструментов, как например, утилита pscp.exe. Но когда приходится сталкиваться с файловыми Linux-серверами, позволяющими использовать возможности протокола NFS, мы можем задаться вопросами типа “может ли клиентская ОС Windows выступать в качестве NFS-клиента?”, “есть ли в клиентской ОС Windows какая-то встроенная реализация клиента NFS?”. Именно такие вопросы у меня возникли в период времени, который совпал с периодом, когда мы перебирались с Windows 8.1 на первый релиз Windows 10. Информация, которую в тот момент удалось найти по этому вопросу, заключалась в том, что функциональность NFS-клиента имеют только “старшие” редакции клиентских ОС Windows, такие как Windows 7 Ultimate/Enterprise, Windows 8/8.1 Enterprise и Windows 10 Enterprise. Однако в нашем случае использовалась ОС Windows 10 редакции Professional, поэтому пришлось отбросить эти мысли.
Недавно, читая обсуждения на форумах TechNet, я столкнулся с информацией о том, что с какого-то момента времени в ОС Windows 10 редакции Professional появилась возможность использовать функционал NFS-клиента. По информации из некоторых источников такая возможность появилась в Windows 10 версии 1607 (10.0.14393 / Anniversary Update).
Решив проверить эту информацию на имеющейся у меня под руками Windows 10 1803 (10.0.17134 / April 2018 Update) редакции Professional, я обнаружил, что теперь у нас действительно имеется возможность использования этого функционала.
Чтобы включить NFS-клиента, можем воспользоваться оснасткой управления программами и компонентами appwiz.cpl. Здесь в перечне “компонентов Windows” можно найти доступные к включению “Службы для NFS“.
После завершения установки компонент в Панели управления в разделе “Администрирование” появится оснастка “Службыдля NFS” (nfsmgmt.msc), в которой мы сможем управлять некоторым параметрами работы NFS-клиента.
Предполагаем, что на стороне NFS сервера уже настроены разрешения для доступа с клиентской системы, например, явно разрешён доступ по IP адресу клиента. Простейший пример установки и настройки NFS-сервера на стороне CentOS Linux можно найти в статье Вики “Установка и настройка сервера и клиента NFS в CentOS Linux 7.2”.
После настройки прав доступа на стороне NFS-сервера переходим на Windows 10 и выполняем подключение сетевого каталога с помощью утилиты “mount“. Простейший пример анонимного подключения к сетевому каталогу выглядит так:
mount -o anon\KOM-FS01mntvdo-vd1ovirt-iso-domain I:
где:
- “-o anon” – подключаться с правами анонимного пользователя;
- “KOM-FS01” – имя NFS-сервера;
- “mntvdo-vd1ovirt-iso-domain” – локальный путь к каталогу на NFS-сервере;
- “I” – буква диска Windows
Другие доступные параметры и ключи утилиты, можно посмотреть командой “mount /?“. Например, при подключении мы явно можем указать имя пользователь и пароль на NFS-сервере.
При открытии свойств каталогов и файлов в подключённом NFS-каталоге мы увидим специальную вкладку “Атрибуты NFS” с соответствующими атрибутами, в том числе и информацию о текущих разрешениях на каталог/файл, которыми, в случае достаточных прав, мы можем управлять.
При повторном выполнении команды mount без указания параметров, мы получим сведения о текущий подключениях NFS-клиента и свойствах этих подключений:
Здесь мы сможем увидеть то, с какими UID и GUID, выполнено подключение. Для анонимных подключений это по умолчанию -2/-2. Если по какой-то причине у нас возникнет необходимость изменить эти идентификаторы для всех анонимных клиентских подключений, то мы можем добавить пару отсутствующих по умолчанию параметров реестра типа DWORD (32-бита):
- AnonymousUid
- AnonymousGid
в ключ реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftClientForNFSCurrentVersionDefault
В значениях созданных параметров можно записать нужные UID и GUID, которые будут использоваться при всех анонимных подключениях. На скриншоте ниже используется пример со значениями 1000:1000 (десятичное).
Если мы хотим, чтобы все анонимные подключения использовали root-овые идентификаторы, то в соответствующих параметрах реестра нужно указать AnonymousUid = и AnonymousGid = . Указание root-овых идентификаторов может быть полезно в случае, если, например, нам требуется не только чтение, но запись в подключенном NFS-каталоге, а удалённый NFS-сервер разрешает запись только root-пользователю и/или членам группы root.
Для вступления изменений в силу потребуется выполнить остановку и повторный запуск службы клиента NFS из ранее упомянутой оснастки “Службы для NFS” (nfsmgmt.msc).
Либо, если перезапуск компьютера не составляет проблемы, то для вступления изменений в силу можно выполнить и перезагрузку клиентского компьютера.
Здесь хочу сделать маленькое отступление относительно перезапуска службы клиента NFS и поделиться своими наблюдениями.
Мои попытки перезапускать системную службу “Клиент для NFS” (NfsClnt) через стандартные механизмы, такие как оснастку управления службами services.msc или утилиту “net“, показали, что это по какой-то причине приводит к невозможности запуска службы после её остановки. Поэтому для перезапуска NFS-клиента лучше использовать именно “родную” оснастку. Хотя, опять же, замечено, что многократные остановки/запуски службы в оснастке “Службы для NFS” также могут привести к неадекватной работе NFS-клиента. В результате чего, например, утилита “mount” может перестать подключать NFS-каталоги, выдавая ошибку сети:
В таких случаях помогает только перезагрузка клиентского компьютера, после которой всё снова начинает работать.
После того, как нужные нам изменения внесены в реестр и служба клиента NFS успешно перезапущена, снова попытаемся подключить NFS-каталог и посмотрим командой “mount” сведения о подключениях.
Как видим, теперь в качестве идентификаторов безопасности выступают именно те, что были ранее нами указаны в реестре.
Отключение подключенных по протоколу NFS сетевых ресурсов выполняется также просто, как и подключение, только с помощью другой утилиты – “umount“
В общем это хорошо, что теперь у пользователей ОС Windows 10 редакции Professional есть штатная возможность работать с сетевыми файловыми ресурсами по протоколу NFS. Будем использовать это в работе.
Недавно задался вопросом: «А возможно ли примонтировать удаленную файловую систему Linux сервера по протоколу NFS к Windows 10?». Оказывается можно, даже более того… для этого есть стандартные средства.
Первым делом пойдем в Панель управления -> Приложения -> (справа выбираем ссылку) Программы и компоненты -> (в открывшемся окне слева) Включение или отключение компонентов Windows -> (в списке находим) Службы для NFS. Выделяем все компоненты и нажимает кнопку ОК.
Далее открываем меню «Пуск» и начинаем вводить «NFS». Выбираем пункт «Службы для NFS».
Либо идем в «Администрирование» и там выбираем «Службы для NFS».
В открывшимся окне выбираем «Клиент для NFS» -> Свойства. Выставляем разрешения для файлов которые будут по умолчанию.
По стандарту подключение к NFS в Windows происходит под анонимным пользователем UID и GID которого -2:-2
Нам же нужно подключаться к NFS под пользователем которому даны права со стороны сервера. Предположим пользователь 1000:1000
(по стандарту первый пользователь во многих системах на базе linux).
Идем в «Пуск» и вводим «regedit». Переходим по адресу:
Создаем два DWORD ключа:
- AnonymousUid
- AnonymousGid
C десятичным значением: 1000 (у обоих)
Собственно, с настройкой все. Переходим в файловый медеждер (эксплорер/»этот компьютер») и в строку браузера вводим следующее:
«-o anon» — подключаемся как аноним
«\192.168.1.171homealexfolder» — директория на сервере
«I:» — диск для монтирования в windows
Так же, через командную строку доступна информация по примонтированным фс: mount
Отключение примонтированной фс: umount I:
Сегодня мы разберемся, как установить и настроить клиент NFS (Network File System) в Windows Server 2012 R2 / Windows 8. Итак, чтобы подключить каталог (шару) с NFS сервера в Windows Server 2012 R2 / Win 8, нужно, как и в предыдущих версиях Windows, установить отдельный компонент — клиент NFS (Client for NFS). Дополнительно, для возможности управления настройками NFS подключения, можно установить компонент служб NFS (Services for Network File System).
Клиент NFS входит в состав ОС Microsoft, начиная с Windows 7. В Windows 2012 / 8 клиент NFS получил небольшие изменения. Теперь NFS клиент поддерживает аутентификацию по протоколу Krb5p — Kerberos версии 5 (в дополнение к Krb5 и Krb5i, поддержка которых появилась еще в Windows 7), поддерживаются большие NFS пакеты – до 1024KB (в Win 7 максимальный размер пакета 32KB)
Клиент NFS можно установить через GUI или с помощью Powershell. Для установки в графическом режиме, откройте консоль Server Manager и выберите компонент (Features) под названием Client for NFS.
По умолчанию вместе с этим компонентом не устанавливается графическая консоль управления NFS, чтобы исправить это, установим опцию Services for Network File System Management Tools в разделе Remote Server Administration Tools -> Role Administration Tools -> File Services Tools.
Для установки NFS-клиента в Windows 8 нужно активировать компонент Services for NFS ->Client for NFS, через установку/удаление компонентов (Turn Windows features on or off) в Панели управления (Control Panel -> Programs -> Programs and Features).
Примечание. В отличии от Windows 7, в которой NFS клиент присутствовал в редакциях Enterprise и Ultimate, в Windows 8 клиент Network File System поддерживается только в старшой версии — Windows 8 Enterprise.
Все перечисленные выше компоненты системы можно установить всего одной командой Powershell:
Install-WindowsFeature NFS-Client, RSAT-NFS-Admin
После окончания установки, запустите консоль Services for Network File System Managemen и откройте окно свойств NFS клиента (Client for NFS).
В настройках NFS клиента можно задать:
- Используемый транспортный протокол (Transport protocols) – по умолчанию TCP+UDP
- Тип монтирования NFS шар: hard или soft
- На вкладке File Permissions указываются дефолтные права для создаваемых папок и файлов на NFS шарах
- На вкладке Security указываются протоколы аутентификации, с помощью которых можно аутентифицироваться на NFS сервере
После настройки установки, администраторы смогут смонтировать NFS каталог с помощью команды mount:
Mount \lx01.abc.labnfs z:
В этом примере мы смонтировали под буквой Z: каталог NFS, расположенный на сервере lx01.abc.lab.
После монтирования, подключенный таким образом каталог на NFS сервере доступен в системе как отдельный диск с буквой Z: .
Смонтировать NFS шару можно и с помощью Powershell:
New-PSdrive -PSProvider FileSystem -Name Z -Root \lx01.abc.labnfs
Примечание. Подключенный таким образом nfs каталог будет доступен только внутри сессии Powershell, в которой была выполнена команда монтирования. Чтобы смонтировать NFS каталог в системе на постоянной основе, в конце Powershell команды нужно добавить ключ –Persist.
Отключить смонтированный каталог можно так:
Remove-PSdrive -Name Y
Используемые источники:
- https://vmblog.ru/kak-podklyuchit-nfs-katalog-v-windows-10/
- https://blog.it-kb.ru/2018/10/16/using-the-nfs-client-in-windows-10-professional-edition/
- https://webnoob.ru/linux/klient-nfs-dlya-windows-10-professional-enterprise/
- https://winitpro.ru/index.php/2014/08/19/podklyuchaem-nfs-sharu-v-windows-server-2012-r2/