Cómo compartir carpetas en red con Raspberry Pi

Como hacer un NAS con Raspberry Pi

Las raspberry pi valen para un montón de cosas, desde hacer de pc de escritorio de bajo consumo (y bajos recursos), hasta domotizar y controlar nuestro hogar. En este artículo te enseño cómo usar una raspberry pi para compartir discos duros en la red, es decir, un NAS.

Puedes tener diferentes motivos para querer usar una Raspberry Pi como NAS, pero el más interesante puede que sea por el bajo consumo de las mismas, además de poder tener los discos duros permanentemente conectados a la red sin tener que mantener tu ordenador en marcha. Además, puedes aprovecharlo para otras cosas como crear un gestor de torrent para que sea la raspberry la que se encargue de hacer el trabajo y no tu pc.

Esto te permitirá en primer lugar ahorrar en la factura de la luz, y en segundo lugar alargar la vida de los componentes de tu equipo, ya que no será necesario que lo tengas encendido 24h si quieres por ejemplo reproducir desde la tele o cualquier smartphone alguno de los contenidos que tengas en los discos duros, o simplemente tenerlos accesibles por red.

Uno de los puntos fuertes de hacer un nas con raspberry pi es que mediante samba la gestión y permisos de usuarios es muy sencilla, y podrás tener por ejemplo una cuenta para tí con permisos totales, y otra cuenta para el resto de usuarios de tu red que solo puedan leer los archivos (para evitar disgustos y borrados accidentales).

Cómomontar un NAS con Raspberry Pi

Antes de meternos en materia necesitarás saber cómo conectar y montar discos duros usb a la raspberry pi, una vez lo tengas claro necesitarás tener tu raspberry con su sistema operativo (en este caso una Raspberry Pi 3 con Raspbian minimal, que también he montado en una Raspberry Pi B), y un disco duro usb de 2,5 o 3,5 pulgadas.

Léete también  Whatsapp te pedirá el email dentro de nada

Recuerda que los discos duros de 2,5 se alimentan del mismo usb, por lo que necesitarás un transformador o fuente de alimentación para la raspberry que sea capaz de soportar el amperaje. Para la Pi 3 lo ideal son 3 Amperios, ya que tiene un consumo mayor que las anteriores, aunque puedes ver cómo conectar una fuente de alimentación de pc a la raspberry pi que suele sacar 2 Amperios y también funciona bien, además de que así puedes conectar los discos duros directamente a ésta.

Ahora que lo tenemos todo nos podemos poner manos a la obra. Conecta los discos duros que quieras usar en tu raspberry pi, móntalos como explico en el tutorial que he enlazado al principio de esta sección y una vez los tengas los pasos serán los siguientes.

En primer lugar, si vas a utilizar archivos de más de 4GB (y si son películas es más que probable), necesitarás instalar un par de cosas para que tu raspberry pueda leer y escribir en particiones ntfs:

sudo apt-get install ntfs-3g

Esto nos permitirá poder gestionar las particiones ntfs, que es el primer paso en el tutorial de conectar discos duros a la raspberry. Nuestro siguiente paso va a ser instalar el servidor de samba, que será el encargado de compartir los discos duros de la raspberry con nuestra red windows.

sudo apt-get install samba samba-common-bin

Una vez instalado y con los discos duros montados, por ejemplo en /var/hdd, vamos a pasar a configurar samba para que los comparta en la red. Para esto tendremos que editar el archivo de configuración de smb:

sudo nano /etc/samba/smb.conf

En el tendremos que revisar la configuración de workgroup = XXX. Para saber cual tenemos que poner nos iremos al menú inicio y dependiendo de nuestro sistema operativo haremos lo siguiente:

  • Windows 10 y 8.1: botón derecho sobre el botón de inicio o pulsamos win+x y en el menú que saldrá le damos a sistema. Ahí veremos que en grupo de trabajo nos pondrá por ejemplo «WORKGROUP«.
  • Windows 7 y Vista: win+x o Click sobre el menú de inicio, botón derecho en equipo y propiedades en el menú que aparece.
  • Windows XP: Botón derecho sobre Mi PC y propiedades.
Léete también  ¿Necesito un protector de pantalla en mi Móvil?

windows-10-workgroup

Justo debajo veremos una opción que se llama wins support, la marcaremos como yes:

wins support = yes

Si está comentada le quitas el # y la cambias de no a yes, con eso será suficiente. Ahora bajaremos hasta el final del archivo, donde indica ###Share Definitions###. Justo después de esta línea introduciremos lo siguiente:

#======================= Share Definitions =======================
[pihdd]

comment=Pi HDD
path=/var/hdd
browseable=yes
writeable=yes
create mask=0777
directory mask=0777
only guest=no
public=no

Y esto es para lo que sirve cada opción:

  • [nombre]: el nombre con el que queremos que aparezca la unidad compartida.
  • Comment: detalles o descripción de la carpeta
  • Path: punto de montaje de la unidad, en este caso hemos dicho /var/hdd
  • Browseable: si queremos que se pueda navegar por ella en la red
  • Writeable: si queremos que se pueda escribir en ella o solo leer
  • Create mask y directory mask: permisos de lectura y escritura, 0777 para acceso total, 0444 solo lectura.
  • Only guest: no para solicitar usuario y yes para poder acceder sin poner usuario
  • Public: para dejar la carpeta como pública o privada
  • Otras opciones
    • valid users @users: necesario para usar la siguiente opción
    • force user = pi: te permite dar acceso a un único usuario en lugar de a cualquiera que tenga permisos de autentificación.

Si quieres tener diferentes niveles de seguridad en una carpeta puedes crear dos accesos de red al mismo punto de montaje, uno con permisos completos para tí y otro solo lectura para los demás con otro nombre.

samba-shared-definitions

Una vez lo tenemos listo tienes que dar acceso a un usuario, y si no quieres que sea pi (el predeterminado de raspbian) debes crearlo, por ejemplo:

sudo useradd vichaunter

Con esto creas un usuario sin ningún permiso, y ahora le darás permisos para acceder a samba con una contraseña:

sudo smbpasswd -a vichaunter

Con eso le asignas una contraseña para samba a nuestro nuevo usuario, y para que todos los cambios tengan efecto ahora tienes que reiniciar el servidor de samba:

sudo service samba restart
o
/etc/init.d/smbd restart

En este momento si abres el explorador de archivos y vas a la carpeta de red (en la columna izquierda) debería aparecerte la raspberry con el nombre que le hayas dado. En caso de no verla puedes escribir en la barra de direcciones del explorador \\xxx.xxx.xxx.xxx (donde las x son la ip de tu raspberry).

Léete también  Como subir varias imágenes o archivos con un formulario en php

Al entrar verás cada carpeta que hayas creado en smb.conf y podrás acceder a ellas con el usuario que has creado y la contraseña asignada. Mi proyecto es crear un NAS de almacenamiento con 10 HDD mediante usb para backups, gestor de torrent y almacenamiento-streaming de vídeo (sí ya se que solo da 10MB por la red, pero para ver vídeos o copiar backups podría ser suficiente y sino siempre puedes usar un banana pi).

Solucionar error al ejecutar samba

smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
Loaded: loaded (/etc/init.d/smbd)
Active: failed (Result: exit-code) since Sun 2017-03-05 11:27:30 UTC; 7s ago
Process: 1290 ExecStart=/etc/init.d/smbd start (code=exited, status=1/FAILURE)

Mar 05 11:27:30 raspberrypi smbd[1290]: Starting SMB/CIFS daemon: smbd failed!
Mar 05 11:27:30 raspberrypi systemd[1]: smbd.service: control process exited, code=exited status=1
Mar 05 11:27:30 raspberrypi systemd[1]: Failed to start LSB: start Samba SMB/CIFS daemon (smbd).
Mar 05 11:27:30 raspberrypi systemd[1]: Unit smbd.service entered failed state.

Por lo general errores como este suelen ser por que has puesto algo mal en la configuración. Lo mejor es que revises /etc/samba/smb.conf y veas que realmente no has puesto algún nombre a medias. Puede que te hayas dejado el título de alguna carpeta compartida, o algún símbolo.

¿Cuantos discos duros tienes conectados? Si tienes dudas o problemas deja un comentario.


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.