====== Share ZFS datasets with NFS ======
Thanks to [[/MarkJohnston|MarkJohnston]] for recommending this configuration.
===== Host =====
Add the following lines to ''%%/etc/rc.conf%%'':
nfs_server_enable="YES"
mountd_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
rpcbind_enable="YES"
Set the ''%%sharenfs%%'' property to the dataset you want to share. Replace
the IP and ''%%pool/dataset%%'' with your desired values. ZFS properties
are documented in
[[https://man.freebsd.org/cgi/man.cgi?query=zfsprops&sektion=7&manpath=freebsd-release|zfsprops(8)]]:
# zfs set sharenfs='ro=192.168.1.0/24,-alldirs' pool/dataset
Start the NFS server:
# service nfsd start
# service mountd reload
===== Guest =====
Acquire the host's IP address using ifconfig(8) on it first. We'll
assume it's 192.168.1.5.
Mount the filesystem. ''%%/foo%%'' corresponds to the actual mount
point of the dataset in the host:
# mkdir -p /mnt/foo
# mount -t nfs 192.168.1.5:/foo /mnt/foo
If and when done, unmount it:
# umount /mnt/foo
In case you want the filesystem to be mounted on boot,
add the following line to ''%%/etc/fstab%%'':
192.168.1.5:/foo /mnt/foo nfs ro 0 0
===== Further reading =====
* [[https://docs.freebsd.org/en/books/handbook/network-servers/|FreeBSD Handbook: Network Servers]]