Difference between revisions of "R-Pi NAS"
m (→How does it work?) |
(Described low and high power NAS) |
||
Line 19: | Line 19: | ||
Warning: Make sure that you store your important files in more than one location. If the hard disk connected to the RPi becomes faulty, you may not be able to access your files. | Warning: Make sure that you store your important files in more than one location. If the hard disk connected to the RPi becomes faulty, you may not be able to access your files. | ||
+ | |||
+ | Note: There are two major classes of Network Attached Storage | ||
+ | # Low-power NAS. This is used as a safe or convenient place to store files for very occasional access. The priority is on low cost and low energy usage. This guide is suitable for this type of NAS. | ||
+ | # High-power NAS. This is used to provide instant access to files or to stream HD video. The priority is speed. This guide is NOT suitable for this type of NAS. | ||
=What do you need?= | =What do you need?= |
Revision as of 07:10, 8 March 2012
Back to RPi Projects.
Raspberry Pi Network Attached Storage
These instructions have not been tested on a Raspberry Pi yet.
These instructions were tested in a Debian environment. Anybody willing to submit a version in the empty Fedora chapter below?
If you wish to test these instructions using Ubuntu in place of the RPi, you can use the Debian instructions if you enter superuser mode first, by entering the command
sudo -i
Contents
- 1 What does it do?
- 2 What do you need?
- 3 What skill level is required?
- 4 How does it work?
- 5 Overview of this project
- 6 Configure a Samba server on Fedora RPi
- 7 Configure a Samba server on Debian RPi
- 7.1 Before you start
- 7.2 Move home directory to a large USB disk
- 7.3 Connect the RPi to a network
- 7.4 Install the samba software
- 7.5 Check if the RPi has a network host name defined
- 7.6 Enable security on the Samba server on the RPi
- 7.7 Configure private storage areas on the RPi
- 7.8 Configure a public storage area on the RPi
- 8 Configuring the Samba client on a Windows PC
- 9 Configuring the Samba client on a Linux PC
- 10 Configuring the Samba client on a Mac
- 11 Configuring the Samba client on an Android smartphone
What does it do?
This project configures your Raspberry Pi to share files with any other computer on your local network. You can add a large hard disk to the RPi and use this to store your important files/photos/videos in a central location.
The files on your RPi can be easily accessed from any type of computer which is connected to your network, for example a Windows PC, a Linux PC, A Mac, a smartphone, etc. In a classroom, each student can have access to a private area, and also a public area for sharing files.
Warning: Make sure that you store your important files in more than one location. If the hard disk connected to the RPi becomes faulty, you may not be able to access your files.
Note: There are two major classes of Network Attached Storage
- Low-power NAS. This is used as a safe or convenient place to store files for very occasional access. The priority is on low cost and low energy usage. This guide is suitable for this type of NAS.
- High-power NAS. This is used to provide instant access to files or to stream HD video. The priority is speed. This guide is NOT suitable for this type of NAS.
What do you need?
- A Raspberry Pi, model B.
- A boot SD card for the Raspberry Pi.
- A large USB-connected hard drive.
- An Ethernet cable to connect to the local network.
What skill level is required?
This project does not require and coding or compilation. Very basic Linux and networking knowledge would be useful, but not essential.
You need to...
- Edit configuration files on the RPi
- Enter basic Linux commands to configure users and passwords
- Use standard tools (Windows/Linux/Mac) to add a network drive to your PC
- Join computers together using ethernet cables
How does it work?
The RPi is configured as a Samba server and can expose its files to any Samba client. Samba was originally a Windows-only protocol named Server Message Block (SMB), but has become popular for other operating systems.
There are other methods possible (for example ftp) but Samba is very popular because it is built into Windows and Mac OS X, and is very easy to install in all versions of Linux.
The end effect is that the PC user will be able to read and write to a new drive which appears to be locally-attached but is actually attached to the RPi.
Note that Samba is is very easy to use but is not suitable for high performance. You may not be able to access high-definition video quickly enough using Samba.
Overview of this project
This project includes instructions to configure the Samba server (where the files are stored centrally) and the Samba client (the user's computer). You must follow the instructions for one of the following servers and at least one of the following clients.
- Configure a Samba server on Fedora RPi
- Configure a Samba server on Debian RPi
- Configuring the Samba client on a Windows PC
- Configuring the Samba client on a Linux PC
- Configuring the Samba client on a Mac
- Configuring the Samba client on an Android smartphone
Configure a Samba server on Fedora RPi
Not available yet. Anybody is welcome to copy the Debian instructions into this section and edit as necessary.
Configure a Samba server on Debian RPi
Before you start
To follow the instructions below, you must enter commands into a terminal. You must open a terminal before starting the instructions below. If necessary, search the internet for instructions by using search terms like "open terminal Gnome" or "open terminal LXDE" etc depending on your chosen desktop environment.
You may find it useful to open a web browser on the RPi so you can copy commands from this web page and paste them into the terminal. This saves a lot of work and errors. Most terminal programs allow you to paste by using a menu selections "Edit" then "Paste".
If you do not understand a command, do not paste it in blindly. You can learn more about commands by reading the manual, by using the "man" command. For example, to find out more about the mkdir command, give the command "man mkdir". Press "q" to exit the man program.
Move home directory to a large USB disk
This section has not been decided yet. Only important if the user wishes to use a large external disk
How to do this easily? Lots of ways, but we need one that is guaranteed to work for an absolute beginner.
See the "discussion" tab for more details.
Connect the RPi to a network
Check that you have an internet connection.
Command:
ping www.google.com
Expect something like
64 bytes from a.b.c.d: icmp_seq=n ttl=n time=n 64 bytes from a.b.c.d: icmp_seq=n ttl=n time=n 64 bytes from a.b.c.d: icmp_seq=n ttl=n time=n
Press Control-C to stop the ping program
If you do not see the above response, you do not have an internet connection, so this must be fixed before you can continue.
Install the samba software
Command:
apt-get install samba
Expect:
Do you want to continue? [Y/n]
Answer by pressing "y", then the [enter] key.
Make a copy of your samba configuration file, just in case something goes wrong with later instructions.
Command:
cp /etc/samba/smb.conf /etc/samba/smb.conf.old
Check if the RPi has a network host name defined
Command:
cat /etc/hostname
Expect something like:
RaspberryPi
If you want to change the hostname
Command:
echo bigdisk > /etc/hostname hostname bigdisk nano /etc/hosts
In the file /etc/hosts change any occurrence of the old host name to the new host name. Note that you must use the arrow keys to move around in the nano editor, you cannot use the mouse.
Save the edited file
Press Control-X Press y Press [enter]
Note: Do not use special characters in your host name. To be safe, only use letters and numbers. Never use quotation marks or spaces in an example like "John's Disk".
Examples later use a host name of "bigdisk". If you select a different host name, please remember this when using the later examples.
Restart the RPi to force it to use the new host name. Warning: First, close any other programs that you may have running on the RPi.
Command:
init 6
Enable security on the Samba server on the RPi
Note: This section is optional, but highly recommended. It forces the samba server to ask for a username and password before allowing another computer to connect.
Edit the samba configuration file
nano /etc/samba/smb.conf
Search for the section marked ##### Authentication #####
Change the text
; security = user
to
security = user
Note that you must use the arrow keys to move around in the nano editor, you cannot use the mouse.
Save the edited file
Press Control-X Press y Press [enter]
Restart samba to use the new configuration file.
restart smdb
Expect:
smdb start/running, process n
Configure private storage areas on the RPi
Configure samba to allow each user to access his home directory.
nano /etc/samba/smb.conf
Search for the section starting [homes]
For each line in this section which begin with the ";" character, delete the ";" character.
The important lines should now look like
[homes] comment = Home Directories browseable = no read only = yes create mask = 0700 directory mask = 0700 valid users = %S
In the [homes] section, change from
read only = yes
to
read only = no
Save the edited file
Press Control-X Press y Press [enter]
Restart samba to use the new configuration file.
restart smdb
Expect:
smdb start/running, process n
If the required user does not already exist, add a new user
useradd john -m -G users passwd john
You will be asked to enter the new password twice.
Allow this user to be a samba user
smbpasswd -a john
You will be asked to enter the new password twice.
Configure a public storage area on the RPi
This section is optional. If you have more than one user, you may wish to define a public area where everybody can share files.
Create a directory to store public files
mkdir /home/shares mkdir /home/shares/public chown -R root:users /home/shares/public chmod -R ug+rwx,o+rx-w /home/shares/public
Edit the samba configuration file
nano /etc/samba/smd.conf
At the end of the file, add the following lines
[public] comment = Public Storage path = /home/shares/public valid users = @users force group = users create mask = 0660 directory mask = 0771 read only = no
Save the edited file
Press Control-X Press y Press [enter]
Restart samba to use the new configuration file.
restart smdb
Expect:
smdb start/running, process n
Configuring the Samba client on a Windows PC
A Windows PC uses Samba automatically, no extra software is required.
In Windows, Network Attached Storage is known as a "network drive". Open up the Windows help and search for the term "network drive", you should see something like
If you follow the instructions, you will be asked to select a drive letter (Z: is default but you can select anything available) and the path to the network drive. (The following screen may be slightly different depending on your version of Windows)
Enter the path to the RPi and click on "Finish". The path is in the format \\computer_name\directory. In this example, the computer name is "bigdisk" and the user wishes to attach to the directory "john". Note that you may also enter the computer name in IP address format, such as "192.168.0.2".
If you enabled security on the RPi server, you will be asked for a username and a password.
This must be a valid username and password on the RPi server. To access a public area, any username is acceptable. To access a private area, the username must match the last part of the folder path (the part after the \ character).
Note that a Windows user can attach to multiple network drives at the same time. It is quite common for a user to attach to his private files (commonly drive H: is used to represent a home directory) and also attach to a public storage (commonly drive P: is used to represent a public drive).
Configuring the Samba client on a Linux PC
Not started yet.
Basic plan is to use the standard Linux package smbclient
Configuring the Samba client on a Mac
Not started yet.
Configuring the Samba client on an Android smartphone
There are multiple Samba clients for Android. The following shows only one example, but you can search for the text "samba" in the Android Market to find other apps.
Install the app "File Expert".
Open the app "File Expert"
Click on "Network"
Click on "Create new account"
Leave server domain empty
Set computer name to "bigdisk"
Set nickname to "john"
Set username to "john"
Set password to the password for John's account
Click on "Okay"
|