Install nfs client windows

Подключаем NFS шару в Windows Server 2012 R2

Сегодня мы разберемся, как установить и настроить клиент 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).

Все перечисленные выше компоненты системы можно установить всего одной командой Powershell:

После окончания установки, запустите консоль 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:

В этом примере мы смонтировали под буквой Z: каталог NFS, расположенный на сервере lx01.abc.lab.

После монтирования, подключенный таким образом каталог на NFS сервере доступен в системе как отдельный диск с буквой Z:\ .

Смонтировать NFS шару можно и с помощью Powershell:

Отключить смонтированный каталог можно так:

Использование клиента NFS в Windows 10 редакции Professional

Администрируя серверы на базе ОС 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, поэтому пришлось отбросить эти мысли.

Читайте также:  Драйверы для asus rog xonar phoebus для windows 10

Недавно, читая обсуждения на форумах 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«. Простейший пример анонимного подключения к сетевому каталогу выглядит так:

  • «-o anon» — подключаться с правами анонимного пользователя;
  • «KOM-FS01» — имя NFS-сервера;
  • «mnt\vdo-vd1\ovirt-iso-domain» — локальный путь к каталогу на NFS-сервере;
  • «I» — буква диска Windows

Другие доступные параметры и ключи утилиты, можно посмотреть командой «mount /?«. Например, при подключении мы явно можем указать имя пользователь и пароль на NFS-сервере.

При открытии свойств каталогов и файлов в подключённом NFS-каталоге мы увидим специальную вкладку «Атрибуты NFS» с соответствующими атрибутами, в том числе и информацию о текущих разрешениях на каталог/файл, которыми, в случае достаточных прав, мы можем управлять.

При повторном выполнении команды mount без указания параметров, мы получим сведения о текущий подключениях NFS-клиента и свойствах этих подключений:

Здесь мы сможем увидеть то, с какими UID и GUID, выполнено подключение. Для анонимных подключений это по умолчанию -2/-2. Если по какой-то причине у нас возникнет необходимость изменить эти идентификаторы для всех анонимных клиентских подключений, то мы можем добавить пару отсутствующих по умолчанию параметров реестра типа DWORD (32-бита):

В значениях созданных параметров можно записать нужные UID и GUID, которые будут использоваться при всех анонимных подключениях. На скриншоте ниже используется пример со значениями 1000:1000 (десятичное).

Если мы хотим, чтобы все анонимные подключения использовали root-овые идентификаторы, то в соответствующих параметрах реестра нужно указать AnonymousUid = 0 и AnonymousGid = 0. Указание root-овых идентификаторов может быть полезно в случае, если, например, нам требуется не только чтение, но запись в подключенном NFS-каталоге, а удалённый NFS-сервер разрешает запись только root-пользователю и/или членам группы root.

Для вступления изменений в силу потребуется выполнить остановку и повторный запуск службы клиента NFS из ранее упомянутой оснастки «Службы для NFS» (nfsmgmt.msc).

Либо, если перезапуск компьютера не составляет проблемы, то для вступления изменений в силу можно выполнить и перезагрузку клиентского компьютера.

Здесь хочу сделать маленькое отступление относительно перезапуска службы клиента NFS и поделиться своими наблюдениями.

Мои попытки перезапускать системную службу «Клиент для NFS» (NfsClnt) через стандартные механизмы, такие как оснастку управления службами services.msc или утилиту «net«, показали, что это по какой-то причине приводит к невозможности запуска службы после её остановки. Поэтому для перезапуска NFS-клиента лучше использовать именно «родную» оснастку. Хотя, опять же, замечено, что многократные остановки/запуски службы в оснастке «Службы для NFS» также могут привести к неадекватной работе NFS-клиента. В результате чего, например, утилита «mount» может перестать подключать NFS-каталоги, выдавая ошибку сети:

Читайте также:  Linux переименовать пользователя консоль

В таких случаях помогает только перезагрузка клиентского компьютера, после которой всё снова начинает работать.

После того, как нужные нам изменения внесены в реестр и служба клиента NFS успешно перезапущена, снова попытаемся подключить NFS-каталог и посмотрим командой «mount» сведения о подключениях.

Как видим, теперь в качестве идентификаторов безопасности выступают именно те, что были ранее нами указаны в реестре.

Отключение подключенных по протоколу NFS сетевых ресурсов выполняется также просто, как и подключение, только с помощью другой утилиты – «umount«

В общем это хорошо, что теперь у пользователей ОС Windows 10 редакции Professional есть штатная возможность работать с сетевыми файловыми ресурсами по протоколу NFS. Будем использовать это в работе.

Клиент NFS для Windows 10 (Professional, Enterprise)

Недавно задался вопросом: «А возможно ли примонтировать удаленную файловую систему Linux сервера по протоколу NFS к Windows 10?». Оказывается можно, даже более того… для этого есть стандартные средства.

Первым делом пойдем в Панель управления -> Приложения -> (справа выбираем ссылку) Программы и компоненты -> (в открывшемся окне слева) Включение или отключение компонентов Windows -> (в списке находим) Службы для NFS. Выделяем все компоненты и нажимает кнопку ОК.

Далее открываем меню «Пуск» и начинаем вводить «NFS». Выбираем пункт «Службы для NFS».

Либо идем в «Администрирование» и там выбираем «Службы для NFS».

В открывшимся окне выбираем «Клиент для NFS» -> Свойства. Выставляем разрешения для файлов которые будут по умолчанию.

По стандарту подключение к NFS в Windows происходит под анонимным пользователем UID и GID которого -2:-2

Нам же нужно подключаться к NFS под пользователем которому даны права со стороны сервера. Предположим пользователь 1000:1000

(по стандарту первый пользователь во многих системах на базе linux).

Идем в «Пуск» и вводим «regedit». Переходим по адресу:

Install nfs client windows

Windows NFS 4.1 Client Instructions

  • Windows Vista, Windows Server 2008 R2, or Windows 7 (Windows XP and previous versions are not supported)
  • Microsoft Visual Studio 2010
  • Windows Driver Development Kit (WinDDK 6000 or later)
  • ms-nfs41-client source code:
    > https://github.com/kofemann/ms-nfs41-client.git

Building the rpc library and nfs client daemon

  • WinDDK does not include the ldap library, so we build the rpc library and nfs client daemon with Visual Studio 2010.
  1. Open Windows Explorer and navigate to ms-nfs41-client\build.vc10.
  2. Make a copy of env.props.example, and rename it to env.props.
  3. Open env.props in a text editor, and verify that the value in C:\WinDDK\7600.16385.0 points to your WinDDK installation.
  4. Open the solution file ms-nfs41-client.sln in Visual Studio 2010.
  5. Select the desired configuration and platform (accessible via Build->Configuration Manager).
  6. Right-click on the daemon project and select Build. The project and its dependencies should build without errors. The resulting binaries, nfsd.exe and libtirpc.dll, can be found under **ms-nfs41-client\build.vc10\x64\Debug**.

Building the driver and utilities

  1. From the Start menu, open the WinDDK ‘Checked Build Environment’ for the target platform.
  2. Change directory to ms-nfs41-client and type build . All projects should build without errors.

Signing the driver

  1. Open a WinDDK ‘Checked Build Environment’ as Administrator in this directory (right click and ‘Run as administrator’).
  2. Create a certificate for test-signing the driver (Creating Test Certificates):
    > makecert /pe /ss PrivateCertStore /n CN=nfs41_driver nfs41_driver.cer
  3. Use the certificate to sign nfs41_driver.sys (Test-Signing a Driver File):
    > signtool sign /v /s PrivateCertStore /n nfs41_driver /t http://timestamp.verisign.com/scripts/timestamp.dll path\to\nfs41_driver.sys
  • ms-nfs41-client binaries: nfs41_driver.sys, nfs41_np.dll, libtirpc.dll, nfs_install.exe, nfsd.exe, nfs_mount.exe
  • ms-nfs41-client configuration files: nfs41_driver.cer, nfs41rdr.inf, install.bat, uninstall.bat, etc_netconfig, ms-nfs41-idmap.conf
  • Microsoft Visual Studio 2010, or Microsoft Visual C++ 2010 Redistributable Libraries (x86 or x64). An installer for the redistributable libraries are included with binary releases.
  1. Copy or extract all ms-nfs41-client binaries and configuration files into a directory that’s convenient for testing.
  2. Run vcredist_x.exe* to install the Visual C++ Redistributable Libraries.
  3. Double-click on nfs41_driver.cer and select ‘Install Certificate’, then place it in the ‘Trusted Root Certificate Authorities’ store.
  4. Open a command prompt as Administrator in this directory.
  5. Install the driver and update the registry:
    > install.bat
  6. Copy configuration files:
    > mkdir C:\etc
    > copy etc_netconfig C:\etc\netconfig
    > copy ms-nfs41-idmap.conf C:\etc\
  7. Allow windows to load test-signed drivers:
    > bcdedit /set testsigning on
  8. Reboot.
  • The Windows DFS client interferes with some requests, indicated by long delays during operation. See http://support.microsoft.com/kb/171386 for more information.
  1. Open regedit.exe and navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Mup .
  2. Add a DWORD value named DisableDfs with a value of 1.
  • C:\etc\ms-nfs41-idmap.conf from Installation step 7.
  1. Open C:\etc\ms-nfs41-idmap.conf in a text editor.
  2. Uncomment the ldap_hostname and ldap_base lines, and configure as appropriate to match your ldap server configuration (we’ll add suggestions later).
  • If you’ve installed the binary distribution, you’ll find two versions of the nfs client daemon: nfsd.exe and nfsd_debug.exe. nfsd.exe is built to run as a service, and does not provide easy access to debug output. We strongly recommend trying nfsd_debug.exe first (using the Instructions below) to verify that you can start the daemon and mount/unmount an nfs share. You can then close nfsd_debug.exe and start running nfsd.exe as a service with:
    > nfsd.exe -install .
  1. From a Windows command prompt, run nfsd.exe to start the nfs client daemon. Leave this running in the background until all mapped drives are unmounted.
    Usage:
    > nfsd.exe -d [—noldap]
    • determines the log verbosity (1, 2, 3 or 0 to disable)
    • —noldap disables id mapping and uses a default uid=666 and gid=777
    • —uid, —gid changes the default uid/gid when no mapping is available (must be nonzero)
  1. From a Windows command prompt run nfs_mount.exe to mount a share:
    > nfs_mount.exe Z: :\
  2. To specify the security flavor, add the ‘sec=’ mount option with sys, krb5, krb5i, or krb5p:
    > nfs_mount.exe -o sec= Z: :\
  3. You can later unmount with:
    > nfs_mount.exe -d Z
  • Cygwin, including packages gcc-core, make, time, tirpc, git
  • Connectathon Test Suite
  • ms-nfs41-client source code (patches for connectathon are located in ms-nfs41-client\tests)
  1. Extract nfstests.zip into a directory that’s convenient for testing (i.e. cthon04).
  2. Open a Cygwin shell, and change directory to cthon04.
  3. Create a git repository to track changes:
    > git init
    > git add *
    > git commit -m «files from nfstests.zip»
  4. Apply all cthon patches:
    > git am /path/to/ms-nfs41-client/tests/*.patch
  5. Build the tests:
    > make
  6. Run the test suite on a mounted directory:
    > ./runtests -a -t z:/testdir
  • krb5p security with AES keys do not work against the linux server, as it does not support gss krb5 v2 tokens with rotated data.
  • When recovering opens and locks outside of the server’s grace period, client does not check whether the file has been modified by another client.
  • If nfsd.exe is restarted while a drive is mapped, that drive needs to be remounted before further use.
  • Symbolic links are not supported in Cygwin. Connectathon’s basic test8 and special test nfsidem have been commented out.
  • Does not allow renaming a file on top of an existing open file. Connectathon’s special test op_ren has been commented out.
  • Extended attributes are supported with some limitations: a) the server must support NFS Named Attributes, b) the order of listings cannot be guaranteed by NFS, and c) the EaSize field cannot be reported for directory queries of FileBothDirInformation, FileFullDirInfo, or FileIdFullDirInfo.
Читайте также:  Photosmart 7600 windows 10

About

NFSv4.1/pNFS client for Windows 7 developed by CITI, UMICH.

Оцените статью