Saturday, June 23, 2012

Raspberry Pi -- Installing Samba (Windows Share) File server

Having successfully run Debian Wheezy on my Raspberry Pi, I went forward with my initial idea of setting up a low cost power efficient file server for accessing my external hard disks from my Windows7 desktop, HP-Mini running Ubuntu and Mac Mini running OS X Lion (yeah I do like bragging about my machines :D ).

This turned out to be pretty straight forward.

As expected, the external Seagate USB disk immediately got recognized and appeared as /dev/sda
[  579.948350] usb 1-1.2: New USB device found, idVendor=0bc2, idProduct=3001
[  579.948384] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  579.948405] usb 1-1.2: Product: FreeAgent
[  579.948421] usb 1-1.2: Manufacturer: Seagate
[  579.948447] usb 1-1.2: SerialNumber: 2GEX323R
[  579.967638] scsi0 : usb-storage 1-1.2:1.0
[  580.970520] scsi 0:0:0:0: Direct-Access     Seagate  FreeAgent        102D PQ: 0 ANSI: 4
[  589.142942] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[  589.144669] sd 0:0:0:0: [sda] Write Protect is off
[  589.144717] sd 0:0:0:0: [sda] Mode Sense: 1c 00 00 00
[  589.146298] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  589.171762]  sda: sda1
[  589.180680] sd 0:0:0:0: [sda] Attached SCSI disk

Next step is to create a mount point
pi@raspberrypi ~ $ sudo mkdir /media/terradisk
Add the correct entry to /etc/fstab (edit this with your preferred editor)
pi@raspberrypi ~ $ sudo vim /etc/fstab
So that it looks like the following,

And mount it
pi@raspberrypi ~ $ sudo mount -a
The new usb drive should now show up
Next install samba,
pi@raspberrypi ~ $ sudo apt-get install samba samba-common-bin
Once finished, open the samba configuration file
pi@raspberrypi ~ $ sudo vim /etc/samba/smb.conf
and edit as follows.
In the Authentication section, uncomment
   security = user
and add the following section in the end
comment = Data Dump on Sam Raspberry Pi
path = /media/terradisk
writeable = yes
guest ok  = no
Remember to change
with the share name you want and
path = /media/terradisk
with the path to wherever you mounted your external disk.
Add the smb password for the default pi user
pi@raspberrypi ~ $ sudo smbpasswd -a pi
Set permissions so that pi user can access the share,
pi@raspberrypi ~ $ sudo chown -R pi:pi /media/terradisk/
Restart samba
pi@raspberrypi ~ $ sudo /etc/init.d/samba restart
And done!
Try accessing the share,

 And it works!


abhidg said...

So you finally gave up on the green-on-black terminal colour scheme :)

sourcejedi said...

Are all your USB drives desktop-class, or are they low-power laptop-class drives?

I've just rescued a laptop-class drive connected to a SheevaPlug (also ARM), which was apparently half-way towards killing itself after half a year. I'd be interested to know what smartctl says about Load_Cycle_Count on your drive(s).