Skip to content

Instantly share code, notes, and snippets.

@JamesSkemp
Last active January 18, 2021 19:06
Show Gist options
  • Save JamesSkemp/62fe5c445157fa7297cb to your computer and use it in GitHub Desktop.
Save JamesSkemp/62fe5c445157fa7297cb to your computer and use it in GitHub Desktop.
Raspberry Pi 2 Samba server w/ a Seagate Backup Plus Slim 1TB

Setting up a Raspberry Pi 2 Samba server (in early January 2016)

The following is how I configured a Raspberry Pi 2 as a samba server, using a Seagate Backup Plus Slim, 1TB, drive.

For ease I purchased the CanaKit Raspberry Pi 2 Complete Starter Kit. It runs about $70 and includes enough to get up and running with the Raspberry Pi 2, with the Pi itself, a nice case, power supply, HDMI cable, WiFi adapter, and SD card with NOOBS/Raspbian installer.

For the hard drive I opted to purchase a Seagate Backup Plus Slim 1TB Portable External Hard Drive, since I've had good enough luck with Seagate in the past, and reviews are generally favorable. This ran me $60. I confirmed that it worked fine on my Windows 10 machine, and was already formatted to NTFS.

Unfortunately, once I received the Pi and drive I found that the power supply/Pi wasn't putting off enough power to keep the drive running. After looking at the options, including tweaking the Pi to pass through more power through the USB connector, I opted to pick up a powered USB hub instead (especially since I was considering setting up a camera at some point in the future).

For this I went with the AmazonBasics 4 Port USB 3.0 Hub with 5V/2.5A power adapter for about $17. Reviews are quite favorable, and I didn't see any indication that it wouldn't work. Once I received the included manual does note that Windows 2000 through 8 are required, or Mac OS X. However, as you'll see there were no issues.

Before powering my Raspberry Pi 2 up I went ahead and plugged the USB Hub into the Pi, and the Seagate Backup Plus into the HUB. I powered up the HUB first, and then powered up the Pi.

While it was a couple years old, How to Turn a Raspberry Pi into a Low-Power Network Storage Device worked fairly well for the setup steps.

Setup commands

Unless otherwise noted, all commands were run on the Raspberry Pi 2 itself, at the command line, outside of Raspbian.

While the guide suggests installing ntfs-3g, this was already installed on my Pi.

sudo apt-get install ntfs-3g

Getting a listing of the disks, sudo fdisk -l, returned /dev/sda1 for the name of the Seagate drive. So, despite a moment of worry, the Amazon USB Hub worked perfectly fine.

The next step was to setup the drive. I opted for all lowercase when doing so.

sudo mkdir /media/usbhdd1

Next was the mounting of the drive.

sudo mount -t auto /dev/sda1 /media/usbhdd1

Within the directory I setup a new shares directory.

sudo mkdir /media/usbhdd1/shares

When I first tried to install Samba I received a number of errors. A quick update resolved the issues.

sudo apt-get update

Then I was able to install Samba.

sudo apt-get install samba samba-common-bin

Backup the Samba configuration, just in case, and then open the config in nano.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
sudo nano /etc/samba/smb.conf

My Windows 10 machine was already on the WORKGROUP workgroup, so I didn't have to touch this, but verify workgroup is set as needed.

Contrary to the guide I was unable to find a security line in the Authenication section, so I skipped that for now, and promised to try to get in without authenticating before I went too far.

At the bottom of the config I added the following:

[Backup1]
comment = Backup Folder
path = /media/usbhdd1/shares
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no

CTRL+X will exit, and allow you to save. Press Enter to just overwrite the existing file.

Restart the Samba service:

sudo /etc/init.d/samba restart

Now setup a user account in UNIX and then for Samba. Yes, this means entering the password 4 times. Personally, I'm a fan of Preshing's xkcd Password Generator and storing the credentials in KeePass.

sudo useradd backups -m -G users
sudo passwd backups
sudo smbpasswd -a backups

For ease I then determined the ip of the Raspberry Pi.

ifconfig

And then I just browsed to that directly in Windows explorer (\\192.168.x.x). Thankfully I was prompted for credentials when I tried to access the Backup1 directory. Entering the credentials I had created above worked great.

The next step was to put some data in the directory. Over my wireless network speeds weren't fantastic, but it worked fine.

I verified the files had been copied over:

cd /media/usbhdd1/shares
ls

Next was a step I almost forgot, which was to have the Raspberry Pi automatically mount the drive after rebooting. The config first needed to be opened in nano, sudo nano /etc/fstab, and then I had to add the following, which I did so at the end of the file.

/dev/sda1    /media/usbhdd1     auto    noatime     0       0

Ctrl + x as usual to exit, save, and overwrite the existing file.

Finally, restart the Raspberry Pi itself to verify that I could still get to the share after it came back up.

sudo reboot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment