Serve 9P from a FreeNAS jail
Note that this is unauthenticated, which is why you should 1) only do this on your home network, and 2) only point it at a new, purpose-made ZFS dataset rather than one which contains anything you care about.
Create a new jail
Make a new jail in FreeNAS. Be sure to select IPv4 autoconfigure/vnet (no NAT), because we need to connect to it from the LAN. Set up whatever dhcp/dns config is appropriate for your network–I named mine fs.floren.lan. Edit the jail and set it to start automatically.
Set up the storage
Create a new dataset named Harvey on one of your pools. This is what we’ll be serving over 9P. Edit the jail’s mount points, add a mount point using the new Harvey dataset as the source and /mnt as the destination.
Start a 9P server
In the jail, run these commands:
pkg install go pkg install git (installing git apparently pulls in python AND perl which is impressive) go get github.com/harvey-os/go/cmd/ufs ./go/bin/ufs -root /mnt/ -addr ":564" # This is just to test that it works
From your Harvey/Plan 9 system:
srv fs.floren.lan fs mount -c /srv/fs /n/fs
Start 9P automatically
Once you’ve verified that this is working, the lazy way to start UFS automatically in the jail is to create
/etc/rc.local, set it executable, and put the following in it:
#!/bin/sh /root/go/bin/ufs -root /mnt -addr ":564"
If you’re running Plan 9/9legacy/9front/9atom (i.e. not Harvey), you may wish to add
-user glenda to the ufs invocation above.