I was testing using the rootdir setting in nfs.config to allow using export paths that would normally conflict with local systems directories with NFS v3. The idea was to support re-exporting a source NFS server such as NetApp that might exports arbitrary paths such as /home without overwriting the /home directory on the NFS server, and even support exporting a root directory similar to NFS v4. While testing I ran into an issue where the NFS server would fail to start. During start up, the NFS server would log the error: $ systemctl status nfs-server.service systemd[1]: Starting NFS server and services... exportfs[2307]: exportfs: Failed to stat /srv/nfs/usr/bin: No such file or directory systemd[1]: nfs-server.service: Control process exited, code=exited, status=1/FAILURE $ cat nfs.config [exports] rootdir=/srv/nfs $ cat /etc/exports / 10.0.0.0/8(rw,sync,wdelay,no_root_squash,no_all_squash,no_subtree_check,sec=sys,secure,fsid=0,nohide) /assets 10.0.0.0/8(rw,sync,wdelay,no_root_squash,no_all_squash,no_subtree_check,sec=sys,secure,fsid=10,nohide) /bin 10.0.0.0/8(rw,sync,wdelay,no_root_squash,no_all_squash,no_subtree_check,sec=sys,secure,fsid=30,nohide) /software 10.0.0.0/8(rw,sync,wdelay,no_root_squash,no_all_squash,no_subtree_check,sec=sys,secure,fsid=40,nohide) If I create the directory /srv/nfs/usr/bin then the NFS server will start. Listing the actual exports shows that a different path was exported compared to the path from /etc/exports. $ exportfs -s / 10.0.0.0/8(sync,wdelay,nohide,no_subtree_check,fsid=0,sec=sys,rw,secure,no_root_squash,no_all_squ> /assets 10.0.0.0/8(sync,wdelay,nohide,no_subtree_check,fsid=10,sec=sys,rw,secure,no_root_squash,no_> /usr/bin 10.0.0.0/8(sync,wdelay,nohide,no_subtree_check,fsid=30,sec=sys,rw,secure,no_root_squash,no> /software 10.0.0.0/8(sync,wdelay,nohide,no_subtree_check,fsid=40,sec=sys,rw,secure,no_root_squash,n> To test this further I create a symlink from /software to /usr/lib. Once again the server failed to start because it could not find /srv/nfs/usr/lib. Reading through the source, I think the issue is in the getexportent function in support/nfs/exports.c. /* resolve symlinks */ if (realpath(ee.e_path, rpath) != NULL) { rpath[sizeof (rpath) - 1] = '\0'; strncpy(ee.e_path, rpath, sizeof (ee.e_path) - 1); ee.e_path[sizeof (ee.e_path) - 1] = '\0'; } It appears this function does not take into account the rootdir property when resolving e_path. This was tested on Ubuntu 20.04 with the 5.11.8-051108-generic kernel. nfs-utils version is 2.5.3.