NFS server on Synology 101g+

Update

Synology now supports SSH logins and NFS services via a patch and firmware upgrade respectively. You're most probably better off using the officially provided packages and patches instead of the one described on this page.

Telnet

First we need to enable telnet access to the box. There is a package that can be installed via the Synology upgrade function. Get syno-telnet-r3.zip from http://oinkzwurgl.org/diskstation and extract enabletelnet.pat. Then, from the web GUI:

Tools - Update -upload enabletelnet.pat

After that you should be able to telnet into the box: 

telnet nas1 root/synopass

ipkg

Next is to install the ipkg package management system. See here for a list of available packages.

Copy ds101-bootstrap_0.1-8_powerpc.xsh to /public, then telnet into the NAS:

telnet nas1 (root / synopass)

Bootstrap the ipkg package management system:

nas1> sh ds101-bootstrap_0.1-8_powerpc.xsh
DS-101 Bootstrap extracting archive... please wait
bootstrap
bootstrap/bootstrap.ipk
bootstrap/ipkg.ipk
bootstrap/openssl.ipk
bootstrap/wget-ssl.ipk
bootstrap/bootstrap.sh
bootstrap/ipkg.sh
Creating temporary ipkg repository...
Installing DS101(g)-bootstrap package...
Unpacking bootstrap.ipk...Done.
Configuring bootstrap.ipk...
Adding /opt/lib to dynamic linker configuration...
Regenerating dynamic linker cache...
Modifying /etc/profile...
Modifying /etc/rc.local
Done.
Installing IPKG package... (Ignore missing md5sum warning)
Unpacking ipkg.ipk...Done.
Configuring ipkg.ipk..../ipkg.sh: 1170: md5sum: not found
Done.
Removing temporary ipkg repository...
Instaling OpenSSL..
Installing openssl (0.9.7d-4) to root...
Configuring openssl
Successfully terminated.
Instaling wget-SSL...
Installing wget-ssl (1.10-1) to root...
Configuring wget-ssl
Successfully terminated.
Creating /opt/etc/ipkg/cross-feed.conf...
Setup complete...

BusyBox v1.00-pre2 (2006.02.14-03:44+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Update the package database 

nas1> ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/Packages.gz
Updated list of available packages in /opt/var/lib/ipkg/cross
Successfully terminated.

NFS

Once ipkg is installed we can install the required NFS packages. We will need the nfsd.o Kernel module as well as the nfs-utils package. The NFS packages are here.

nas1> ipkg install kernel-modules-nfsd
Installing kernel-modules-nfsd (2.4.22-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/kernel-modules-nfsd_2.4.22-2_powerpc.ipk
Configuring kernel-modules-nfsd
Successfully terminated.

This installs the Kernel module into /opt/lib/modules/nfsd.o. Load it with:

insmod /opt/lib/modules/nfsd.o

Now install the nfs-utils package:

nas1> ipkg install nfs-utils
Installing nfs-utils (1.0.7-5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/nfs-utils_1.0.7-5_powerpc.ipk
Configuring nfs-utils

To complete the installation, you must edit /opt/etc/exports,
and then run /opt/etc/init.d/S56nfs-utils to start the nfs server.

Successfully terminated.

Add your network to /etc/hosts.allow:

cat <<EOF>>/etc/hosts.allow

rtmap: 192.168.5.0/255.255.255.0
lockd: 192.168.5.0/255.255.255.0
mountd: 192.168.5.0/255.255.255.0
rquoted: 192.168.5.0/255.255.255.0
statd: 192.168.5.0/255.255.255.0
EOF

Now start portmap and the NFS server

/opt/etc/init.d/S55portmap

/opt/etc/init.d/S56nfs-utils

You should now be able to mount the shared volume from any box in the 192.168.5.0/24 network.

Add the following line to /etc/fstab on a client machine:

nas1:/volume1/public /mnt/nas1/public nfs rw 0 0

Then create the mount point:

sudo mkdir -p /mnt/nas1/public

and mount the NFS share:

sudo mount /mnt/nas1/public

SSH

Enabling SSH is just as easy. Install openssh package:

ipkg install openssh

 And, from a client machine:

ssh admin@nas1