I am exporting my /opt/target directory via NFS but I would like the nfs clients to be able to mount it as /target. i.e. I would like showmount -e to show /target not /opt/target. Can that be done?
4 Answers
What you want is how NFSv4 works. In NFSv4, all the directories exported are from a single pseudo-filesystem where the real directories are mounted with --bind
. See the Ubuntu NFSv4 Howto for an example.

- 12,184
- 7
- 48
- 69
I'm pretty sure NFS does not allow for aliases. Symlinking is probably best, and it'll save you from moving the export as a whole to an illogical location (/target).
The original suggestion here was to symlink /opt/target to /target and then export /target. NFS supports this and I don't know of any good reasons not to use symlinks this way.

- 10,409
- 2
- 35
- 47
-
I have done this and it works well as long as you remember that symlinks in the exported directory will not be translated. If you've got a relative link to ../../../bar and your NFS mount is a symlink to /foo, then anything looking at /foo/bar will actually try to look in /foo/../../../bar – Matt Simmons Jun 17 '09 at 14:54
-
I looked far and wide for 'aliasing' but did not find anything for NFS. I also originally entered an answer which suggested symlinking, however when I did showmount -e it showed the original directory anyway, so symlinking does not appear to work as an 'alias' either. – Dave Drager Jun 17 '09 at 14:57
Since for me wzzrd's answer didn't work and Kamil Kisiel's answer refers to an external source I'll describe here how it exactly works for the op's use case:
sudo mkdir /target
sudo mount --bind /opt/target /target
sudo exportfs -arv
results in output:
exporting 192.168.178.90/24:/target

- 131
- 2
You would need to change the path on the server. I'm not sure if you can export via a symlink, otherwise you'd need to move the path physically on the server. Looking at the man page for exports, you might be able to use the "refer" option.

- 23,497
- 2
- 46
- 73