[[!meta copyright="Copyright © 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] Translator acting as a NFS client. Only NFSv2/v3 is currently supported. [[!tag open_issue_hurd]]There are a few unmerged changes on a former GSoC project's topic-branch. #### A setup example (2025-12-21), Linux server This example has the **NFS server on a Linux system** and the **NFS client on a GNU hurd-amd64 system**. Specifically, the Linux system is a *Devuan 5 (daedalus)*, which thus corresponds to *Debian 12 (bookworm)* with the *nfs-kernel-server* package version *1:2.6.2-4+deb12u1*; the hurd-amd64 is from the *debian port snapshot dated 2025-08-07*, and running in a QEMU VM on the server host. It all ran OOTB with only two specific configuration changes: 1. The configuration file **/etc/default/nfs-kernel-server** is changed by adding **"-u"** for the NFSD startup variable RPCNFSDCOUNT, so as to enable UDP for the NFS server (it is disabled by default). The configuration line will thus read: **RPCNFSDCOUNT="-u 8"** The nfs-kernel-server needs to be restarted following the configuration change. Also, the export configuration file, **/etc/exports**, needs to be set up to nominate path(s) to export and which clients are allowed to use them. (See "man exports" on the Linux system for its details) 2. The **/hurd/nfs translator** is started with argument **"--nfs-program=3"** so as to make it use NFSv3 (the default is NFSv2). The startup command used thus has the following form: **settrans $LOCAL /hurd/nfs -s --nfs-program=3 $REMOTE $SERVER** where $LOCAL is a local existing pathname, e.g. */nfs*, $REMOTE is the exported path on the server, e.g. */home/rrq/shared*, and $SERVER is the server hostname or IP address, e.g. *172.18.46.1*. Note that the *"-s"* argument is an optional author's choice, to let the **nfs** translator exit if it fails to connect on the first 3 attempts. Its default, without "-s", is to keep trying. # See Also * [[libnetfs: `io_map`|open_issues/libnetfs_io_map]] issue * [[open_issues/libnfs]]