Turn Raspberry into a small NAS with samba
I got a Raspberry Pi Model B. It’s cheap and I want to do some experiments for fun.
Experiment \#1: I have a 1T external HDD (FAT) and I want to turn Raspberry into a very basic NAS.
I used:
- 1 External USB HDD (with external power supply)
- 1 ethernet cable CAT. 5 (10/100) or better
- 1 HDMI cable and monitor / tv
- 1 smartphone microusb battery charger
- 1 SDHC (for the OS)
- Raspbian “wheezy” (tested on 2012-08-16 release)
- 1 modem router for connectivity (4 port)
- 1 Windows PC plugged to the router
I flashed Raspbian into a class 10 SDHC, I follow this useful howto about to turn on HDMI instead of TV and voilà, I got a down-scaled debian system into a silent, little board that I charge with the smartphone charger via microusb (5V, 700mA).
I plug a wireless mouse and keyboard on the first USB port, and then I plug my external drive on the second. Debian read the FAT partition well (mounted on /media/MYDRIVE), but now I have to turn it into a wannabe-NAS.
Shall we dance? With Samba!
I plug the RJ-45 ethernet connector from my modem router into the Raspberry Pi and I follow this howto in Italian.
$ is a pi console (Start \> Accessories \> LXTerminal)
\# is a root console (Start \> Accessories \> Root terminal)
# adduser guest --home=/home/public --shell=/bin/false --disabled-password # sudo chmod -R 0700 /home/public # chown -R guest.guest /home/public $ sudo apt-get install samba smbfs
Then I have a new user “guest” with no password authentication. The howto covers the creation of a shared home (/home/public) but I do something slightly different (WORKGROUP is my local network name):
editing /etc/samba/smb.conf
## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of workgroup = WORKGROUP ####### Authentication ####### security = share obey pam restrictions = yes guest account = guest invalid users = root
And now the most interesting part:
[MYDRIVE] comment = Mydrive read only = no locking = no path = /media/MYDRIVE guest ok = yes force user = pi
Where /media/MYDRIVE is the path to your external usb drive.
And then:
# /etc/init.d/samba restart
to apply.
As this howto explains, the “force user” allows a user (i.e. guest) to get the files from a device mounted by another user (i.e. pi, the default raspbian user).
Have fun
Now on the Windows machine on the Network panel I look for RASPBERRYPI and inside it I find the “mydrive” folder, with all the files from MYDRIVE within. I play a 720p video without slowdown. And so, the cheap NAS experiment is successfully completed.